Validation
Every write checked against the field rules in the schema.
autoValidate()
One starting source of truth. Get your database, API and UI …with validation, authorization, pagination, live updates, migrations, typed clients and forms derived, not written.
Every write checked against the field rules in the schema.
autoValidate()
Who can read and write a row is declared on the model.
@@gate
Limits, offsets and cursors on every list, with no slicing in memory.
$after
Lists change on screen when the rows change.
announce()
The schema is diffed against the live database. You never write a migration file.
The browser knows every service, field and filter.
ServiceTypes
The right control, label and options per field, and server errors on the right input.
@label
Every write is logged, with protected fields redacted.
An MCP endpoint over your app, with the gate as the permission model.
mcp()
Sensitive fields are sealed at the data boundary.
@encrypted
The UI shows only the actions allowed now, and the server refuses the rest.
@@transitions
Two people editing one record cannot overwrite each other.
x-version
Who sees what, per field rather than per row.
$readAs
Nobody filters or sorts on a field they cannot read.
$checkWhere
One app, many tenants, each kept to its own data.
resolveTenancy
Browse and edit every model from the schema alone.
Litestone Studio
A real app over a real database, in every test.
createTestEnv