START WHERE YOU ARE
Start simply. Grow without changing your habits.
Choose the smallest useful path, then keep the same runtime and query habits as your app grows.
Use the database directly
Connect to SQLite, PostgreSQL, MySQL, or D1. Run SQL, schema plans, migrations, transactions, and table queries without a generated registry.
Start direct 02Generate your domain model
When your domain settles, annotate models and generate definitions, DTOs, repositories, relations, and typed query helpers.
Follow Quick Start 03Make database work visible
Add ordered interceptors and OpenTelemetry across queries, mutations, raw SQL, migrations, streams, and transactions.
See observabilityWHY ORMED
Keep the database visible. Use generated code where it removes repetition.
Typed where it helps
Generated models, repositories, relations, and codecs give domain code useful contracts without hiding the database.
Direct when it matters
Use table queries, raw SQL, schema plans, and transactions when a model would add ceremony.
Traceable in production
Structured events and ordered interceptors make database behavior visible in logs and traces.
SUPPORTED BACKENDS
One API across the databases you already use.
READY TO START