Describe your backend. Get a live URL.
You say what the backend has to do. Your agent writes it down as rules in plain English, and Typestate compiles those rules into real TypeScript, checks them, and serves them at a live URL. You read every rule before it goes live.
Start buildingSee how it works
Typestate takes a limited number of accounts at a time. You get an answer within one working day.
From your words to a live backend
Your rules are the part that belongs to your business. Everything around them comes with the platform and is running from the first deploy.
You and your agent
- Claude
- ChatGPT
- Copilot
- Cursor
- OpenClaw
- Hermes
- Lovable
- Replit
- Other MCP agents
Connect the agent you already use and start building your backend with it. Typestate is an MCP server, so your agent defines the data, writes the rules and deploys them, without you leaving the tool you are in.
Define
- One entity for each thing you store
- The rules each field enforces, declared with it
- One flow, in English, for each operation
- Tests written in your customer's own words
Check
- Compiled to TypeScript you never have to read
- Type checked, and repaired automatically if it fails
- Automated tests are generated and run
- What fails is refused, and the reason is in English
Ship
- Every change reaches you as English
- Nothing ships until you approve it
- Separate environments for development and production
- Live at your own URL, answering real requests
Comes with every backend
- People and access
- Signup, sign-in, sessions, API keys, access rules on every record, roles
- Data
- Storage, migrations, file uploads, retention
- Time and outside systems
- Scheduled jobs, webhooks, and connections to Stripe, Slack and the rest
- Running it
- Rate limits, CORS, secrets and configuration
- Your front end
- Static hosting, deploys and rollback
And you can see all of it
- Logs
- Traces
- Every outbound call, and replay
- Activity
- Every version of every rule
Your backend runs on Cloudflare Workers. It scales automatically, and you do not have to maintain anything.
This is what your backend is made of
A backend here is three things: what gets stored, what happens when somebody calls it, and what a change to either one looks like. There is one of each below. The subscription in them is invented, and the rules on it are the kind a real business has.
What gets stored: Entity
The sentence says what a subscription is. The list says what it stores and what each field will take. You give the platform both, so it never reads a field type out of the prose, and a wrong value is turned down with the name of the rule it broke.
A customer's subscription. It has the customer it belongs to, the plan name, whether it is billed monthly or annually, the date the current period ends, the amount paid for the current period, and whether it is still active.
Fields, declared with it
- customer
- belongs to Customer
- plan
- text, required
- billing_period
- monthly or annually
- period_ends
- date
- amount_paid
- money
- active
- true or false
What happens: Flow, and where it answers: Endpoint
Typestate compiled that paragraph into TypeScript, checked it, and served it at that address.
When a customer cancels, refund the unused part of the current period, counted in whole days from the cancellation date to the end of the period.
On an annual plan, refund nothing after the first fourteen days. Inside those fourteen days, refund the whole amount.
If the account has an unpaid invoice, refuse the cancellation and say which invoice is outstanding.
Otherwise mark the subscription cancelled at the end of the current period, keep access until then, and send a confirmation naming the refund amount and the date access ends.
Endpoint
POST https://api.yourcompany.com/subscriptions/cancel
What a change looks like, and who agrees to it
Nothing reaches production until somebody reads a change like this and approves it.
A change is a paragraph too. This one adds a rule the business always had and never wrote down.
On an annual plan, refund nothing after the first fourteen days. Inside those fourteen days, refund the whole amount.
If the customer took a discount for paying annually, subtract the part of that discount they have already used from the refund.
The contact form on this site runs on a definition written the same way. It is the source of truth for that form, and the code it compiled to cannot be edited by hand.
The English is the only thing anybody edits
A rule is a paragraph. Typestate compiles it, and it will not accept compiled code from anyone, so the paragraph is the only place the rule can change.
Every version is kept. You can read what a rule said on any day since it was written, and the difference between two versions is shown in English.
Places are limited while Typestate is in early access. Secure your place now.
The number of accounts open at one time is capped, so that every new backend gets proper attention while the platform is young. Paid plans are opened first.
- FreeEUR 0 a month
One backend, development only. 10,000 requests and about 100 changes a month, 250 MB of data.
Build something small and see whether it fits.
Join the waitlist - PersonalEUR 50 a month
One million requests a month, and 2 GB of data.
One person with one product.
Get started - TeamFrom EUR 500 a month
Ten million requests a month, and 20 GB of data.
One account, several people, shared projects and roles.
Get started
A request is anything that runs your backend, whether a person, a schedule or another system sent it. Files your site serves are free. A change is a rule written or edited.
Beyond that, EUR 25 for each further million requests and EUR 5 a GB. Prices are net of VAT.
Tell us what the backend has to do
Describe what you are building and what the backend has to do. You get a straight answer about whether this fits.
You hear back within one working day.
Hear about Typestate
Occasional email about what the platform can do and when places open. Nothing else, and one click to stop.
