Overview
Building an application with Reboot is meant to feel a lot like building an application using in-memory data structures: you simply define data types and methods on those data types that you can call.
In Reboot, those data types are actually durable state, meaning that
when you update them they get persisted for you. And the methods are
of a specific kind, either a
reader, writer, transaction, workflow, or
UI.
The combination of these data types and methods is called durable data structures (think durable objects, but so much more).
API
With Reboot, you define the API for your durable data structures up front:
- Define your API using Pydantic — Python
- Define your API using Zod — TypeScript
The User type
One type name is special. A type named
User is auto-constructed for
each person who signs in, so it is where per-user state and per-user
methods belong. See Users and sign-in.
Code generation
Reboot generates:
- Type-safe, language-specific code for:
- Python and TypeScript servers
- Python and TypeScript clients
- React, shared by web, React Native, and MCP UIs
- MCP tools, from methods marked
mcp=Tool()and fromUIannotations
rbt dev run will automatically generate code from your API definition
files and reload your application when your API changes.