$ npm create tessera@latest
Define your schema.
Ship your backend.
Tessera turns a typed schema into a database, API, auth, and realtime. No glue code, no drift.
Teams shipping on Tessera
Northwind Labs
Loop & Co
Fieldnote
HALCYON
kiln
Marrow
oatmeal
BASALT
How it works
One schema, four steps to a live backend
Define it once. Tessera builds the database, the API, and the types, and keeps them in sync while you ship.
Customers
Trusted by teams shipping real products
From fintech dashboards to one-person SaaS, teams build their backends on Tessera. Hear from a few of them.
Read customer stories →
Northwind Labs
“We deleted about 6,000 lines of glue code the week we moved to Tessera. Backend setup went from three weeks to two days, and features ship three times faster because the types follow the schema.”

Priya Raman
CTO at Northwind Labs
Loop & Co.
“Preview environments per pull request changed how we review backend work. We shipped realtime editing without running a socket layer, and median sync sits at 40 ms.”
Marcus Lee
Staff Engineer at Loop & Co
fieldnote
“Types that go from the database all the way to the component. That alone sold us. One developer, one schema, twelve thousand users, and a first-year infra bill of zero.”

Jonas Berg
Founder at Fieldnote
…and loved by developers
Join 12,000 developers on Discord →

Maya Chen
@mayacodes
Wrote a schema, ran
tessera push, and had a typed API before my coffee cooled. @tessera is kind of unfair.
David Okafor
@d_okafor
Database branches per PR is the feature I didn’t know I needed. Reviewing migrations is boring now, in a good way.
JP
Jin Park
@jpark_dev
Renamed a column and the compiler pointed at all 14 places that broke. That’s the whole pitch for @tessera.

Lin Zhou
@lin_builds
Moved our realtime feed off a hand-rolled socket server. Deleted about 2k lines and nobody noticed except the on-call rotation.

Sam Ortiz
@sam_ships
The generated Python client matches the TypeScript one exactly. Our data team stopped asking me for endpoints.

Ada Novak
@ada_writes
Row-level rules right next to the table definition. Why wasn’t it always like this?

Nora Eriksen
@nora_eng
The @tessera migration planner caught a destructive change I would have shipped on a Friday.
KM
Kwame Mensah
@kwame_dev
38 ms median for subscriptions from Frankfurt. I checked twice.
Four building blocks.
One source of truth.
Database, auth, realtime, and functions share a single schema, so they never disagree.
Explore the platform →
Database
Postgres, with types that follow you. Every branch gets its own copy of the data.
Auth
Email, OAuth, or magic links, with access rules next to the data they protect.
Realtime
Every query can be a subscription, with presence and broadcast built in.
Functions
Server code without the servers. Attach a trigger and it runs close to your data.
Changelog
What’s new
Changelog
All releases →
Feature
2.0.0
Typed realtime queries
Subscribe to any query with full type inference.
Fix
1.9.2
Migration lock timeout
Long migrations no longer time out on large tables.
Feature
1.9.0
Database branching
Create isolated copies of your data per pull request.
From the blog
Read the blog →
Engineering
·
Why we generate types from schemas, not the other way around
The design decision behind Tessera’s type system.
Product
·
Introducing typed realtime queries
Subscribe to any query with full type inference.
Guides
·
Multi-tenant apps with row-level rules
A practical pattern for isolating customer data.
Ship your first endpoint
in ten minutes.
$ npm create tessera@latest
