Platform · Canon

Nine surfaces. Twelve doctrines.

The cross-cutting needs every business application has and keeps rebuilding badly, written as contracts with acceptance gates.

THE SURFACES

Adopted in coupling order.

Each wave depends on the one before it. Money comes last, deliberately.

01
Identity & config

Tenancy

Every record is stamped with a tenant. Companies are standalone, with their own modules and reports.

02
Identity & config

Config

Credentials and per-tenant settings held as data, read by RBAC and Integration.

03
Identity & config

RBAC

Every write is authorised. Deny by default, from the first endpoint.

04
Work & evidence

Workflow

Routing, approval, escalation, and the queue that is the application.

05
Work & evidence

Documents

Required evidence blocks progress until it is present.

06
Work & evidence

Experience

The data-table contract, the eight states, export and print.

07
The outside world

Integration

Code mapping, an outbox, and the gate that stops a dev box writing to production.

08
The outside world

Runtime AI

Grounded-or-nothing drafting. A draft never becomes a posted document without a named human.

09
Money, last

Accounting

Control accounts and dimensional sub-ledgers. Corrections are new documents, never edits.

THE DOCTRINES

Each one exists because something went wrong.

They are not style. Breaking one produces a specific, observed class of bug.

D1

Deny by default

D2

Append-only on anything financial or evidentiary

D3

Idempotency by source id, not by server id

D4

Missing data is a finding, never a licence to invent

D5

Config is data, not code

D6

Prove newness, not liveness

D7

A control that can report a false result is worse than no control

D8

Held is not blocked

D9

Route to a position, never to a person

D10

Timestamps are capture time, not sync time

D11

One engine, channel-resolved input

D12

State the denominator

COMMON VS SPECIFIC

The contract is common. The binding is not.

Accounting, integration and UI exist as shared patterns only. Chart of accounts, connectors and palette values are specific to each product or tenant, and Config is what carries that difference.

Next step

Build on a foundation you can trust.

Tell us about your domain and we will show you how the platform fits.

Talk to us →