What Bones

Postgres and Drizzle

The default relational database, and an ORM that reads like SQL.

Why PostgreSQL

PostgreSQL is the safe default. Newer databases — CockroachDB, Turso, SurrealDB, Gel — were considered. None gave a reason to leave Postgres's ecosystem and hosting options.

  • Development runs Postgres 18 in Docker.
  • Tests get their own throwaway Postgres from Testcontainers, migrated fresh each run. They never touch your dev data.
  • Production is planned for Amazon RDS. See AWS.

Why Drizzle

Drizzle is a lightweight ORM:

  • SQL-shaped. Queries read like the SQL they produce.
  • No engine binary. Unlike Prisma, there's no separate query engine to ship.
  • Strong inference. Row types come straight from the schema.
  • Migrations included. drizzle-kit generates SQL migrations from schema changes.

Prisma was the turnkey alternative, with a bigger ecosystem and a GUI. Drizzle was the more current pick, and drizzle-kit studio covers the GUI.

Used in