Skip to content
Solutions B2B SaaS

Retire the admin panel. Keep everything it could do.

Ask who this account is and four systems answer differently. Ask support to fix it and an admin page writes straight to production.

Explore the platform

The systems you already run, the objects your product declares, and the work your team gets back.

Stripe
PostgreSQL
Zendesk
Salesforce
Snowflake
Bijection
Account
Workspace
Subscription
Seat
Invoice
Support ticket
Account lookup
Plan changes
Usage against billing
Incident follow-up

These marks name the kinds of system a source declaration reaches — a picture of the ecosystem, not a fixed menu, and nothing here implies a partnership.

Stop patching production by hand. Declare the change.

Four answers become one record

Product database, billing, CRM and support desk join into one account object with declared links between them.

The admin page, declared

Every write that page could do becomes a named Action: declared effects, one author, a review rule.

One definition of churn risk

Churn risk has one definition, in a Function that hands back the figure with the rows it counted.

What teams build. On day one.

Four places this work turns into declared objects, governed reads, and reviewed changes.

Account lookup

One Function answers who this account is — plan, seats, usage, open tickets, unpaid invoices — instead of four systems answering their own part.

Plan changes

Extending a trial or moving a plan stops being a database update: past your threshold, the requester runs the Action but cannot approve it.

Usage against billing

Compare metered usage with what was billed as a governed read with the records attached, instead of the quarterly export somebody rebuilds by hand.

Incident follow-up

After an outage, a Function lists the accounts affected and their commitments; issuing the credits is one reviewed Action that records each.

How it runs. End to end.

The same path every product takes: connect what exists, declare what it means, then publish the reads and the changes.

  1. 01

    Connect the systems you already ship with

    Product database, billing, CRM, support desk: each becomes a read-only source captured on a schedule, so an answer is as of the last pull, not this second.

  2. 02

    Declare the customer your company argues about

    Account, workspace, subscription, seat and the links between them are modelled once, in product source that goes through review like the rest of your code.

  3. 03

    Publish the reads and the writes

    Entitlement and health become named Functions; credits and plan moves become Actions with declared effects. Your internal app, your team and your agents call the same ones.

  4. 04

    Let agents work inside the same limits

    An agent working your support queue gets the same Functions and Actions your team does — no database credential of its own, and no authority you lack.

Common questions.

A warehouse answers questions and cannot safely change anything, so the change still happens in the admin page. Here the read and the write are declared in one model, and each answer names the capture it came from. It does not replace the warehouse for analytics — keep your reporting there.

It will if nobody owns it. The model sits in product source beside your application code and changes through review, which is a commitment rather than a free lunch. Model the handful of objects your teams argue about and leave the rest in the systems that own them.

Review is a rule on each Action, not a setting on the platform. Declare which changes need a different approver — a plan move above a threshold, a credit over a limit — and let the routine ones run the moment support asks. Both leave the same record.

Bring us a process.
We'll build it with you.

A business process, the systems it touches, and the rules it needs to follow.