Getting Started
/
Introduction
Introduction
React API Stack is the next-generation full-stack framework for apps — one TypeScript source of truth becomes a typed React client and a serverless engine on object storage.
View as Markdown
llms.txt
React API Stack is a full-stack framework for building apps that scale to millions — without running a database server. You author your data model once, in TypeScript, and the framework generates a fully typed React client on top and a stateless Rust engine underneath that persists every model as an Apache Iceberg table on object storage.
The database is object storage. Compute and storage are fully separated — like a SurrealDB-Gen-3 architecture — so the same engine runs on a Lambda, on your laptop, or inside the browser compiled to WebAssembly.
Why it exists
Modern apps drown in glue: hand-written types that drift from the API, a database to provision and scale, a second client-side store to keep in sync, and a design system wired component by component. React API Stack collapses all of that into one authoring model and one compile step.
One source of truth. Author a resource in TypeScript — or just a plain interface — and the compiler infers everything else, including foreign keys, from the type system.
Typed end-to-end. The generated React hooks share their types with the API contract. Zero hand-written types, zero drift.
No server to run. Storage is Parquet + Iceberg metadata on S3. Compute is stateless and scales to zero.
Runs anywhere. The very same engine runs on the server, or locally in the browser over WASM for offline-first dev.
The three surfaces
A single resource definition drives three surfaces at once:
Surface
What you get
API exposure
TypeScript resource → rastack compile → OpenAPI → typed React hooks.
Database storage
A stateless Rust API that persists each model as an Iceberg table (Parquet + snapshots) on object storage.
DevOps
Serverless Rust on AWS Lambda with S3 as the system of record — scale-to-zero, infrastructure-as-code.
What a resource becomes
This is the whole loop. Author a resource:
resources/airports.ts
ts · copy
1
import
{
resource
,
s
}
from
"rastack/define"
;
2
3
export
const
Airport
=
resource
(
"airports"
,
"airport"
,
{
4
code
:
s
.
string
({
maxLength
:
3
,
unique
:
true
}),
5
name
:
s
.
string
({
maxLength
:
120
}),
6
},
{
search
:
[
"code"
,
"name"
]
});
Compile it, generate the client, and consume fully typed hooks in React:
app/airports.tsx
tsx · copy
1
import
{
useListAirports
,
useCreateAirport
}
from
"@/entities"
;
2
3
const
{
data
:
airports
}
=
useListAirports
({
country
:
"JP"
});
4
5
const
create
=
useCreateAirport
();
6
create
.
mutate
({
code
:
"HND"
});
// ✓ typesafe
Tip
Ready to build? Head to Installation to add rastack to your project, then follow the Quick Start.
Build with AI
Every page is available as clean Markdown for LLMs and coding agents. Point one at the files below to build on top of React API Stack.
React API Stack · alpha · built to scale to millions