Get started with Rad
Run Rad, try the generated client workflow, and choose what to learn next.
Rad keeps your data model, database changes, and application client in one
workflow. Describe your tables in rad.schema.yaml, apply them with
rad schema migrate, then use the generated types and queries in your
application.
Rad is a research project. It is ready to try, but not ready for production or important data. Compatibility guarantees are not settled yet.
Run the demo
The repository includes a small team task tracker. With current Rust and Go toolchains plus Task installed, run this from the repository root:
$ task up
The first run compiles Rad, starts a clean local database, applies the tracker's schema, and runs the application through its generated client. The output walks through sign-up, nested board views, filters, aggregates, updates, deletes, unique constraints, and foreign keys.
When the demo finishes, Rad stays running. Open the administration UI at http://127.0.0.1:7238, or check that the project and database agree from a second terminal:
$ target/debug/rad schema --config examples/demo/rad.config.yaml status
...
Status: synchronized
$ target/debug/rad schema --config examples/demo/rad.config.yaml diff
No schema changes.
Press Ctrl+C in the first terminal when you're done.
What just happened
The demo uses the same project shape as an application:
rad.schema.yaml the data model you own
rad.config.yaml the database target and client generator settings
rad.state/ migration state managed by the Rad CLI
generated/ the typed application client
The schema file is the source of truth. rad schema migrate compares it with
the running database, reports what will change, applies supported changes, and
regenerates the configured client. Your application gets ordinary typed models
and query builders. It does not need SQL strings or a separate migration
framework.
The demo is deliberately more than a hello world. Open
examples/demo/rad.schema.yaml
to see the complete data model, then look at
examples/demo/main.go
to see the generated client in use.
Build something
Start with Schemas in Rad to learn how a schema-managed project fits together. Then follow Manage a schema to create a schema, preview the migration, apply it, and recover local state when a teammate gets there first.
Once the basic loop makes sense:
- Online schema changes explains what happens when a migration needs to scan or rewrite existing data.
- LIR explains the query model generated clients use instead of constructing SQL strings.
- Engine is the maintainer path through storage, the catalog, planning, and execution.
You can ignore the engine vocabulary until you want to understand or change the database itself. It is not required reading before creating a table.
Use Rad with an AI agent
The CLI ships one version-matched Agent Skills guide covering the complete project workflow:
$ rad skills get rad
Use rad skills get rad --full for detailed schema, operations, and generated
Go client references. Prefer --output json for finite commands and add
--non-interactive in unattended work so required confirmation becomes an
explicit error instead of a prompt.