Tools

Drizzle ORM

Type-safe database queries without the ORM bloat.

Drizzle hits the sweet spot between raw SQL and heavy ORMs. You get full TypeScript inference from your schema, and the queries still read like SQL — no magic, no hidden behavior.

Schema definitions are just TypeScript, migrations are straightforward, and the query builder doesn't try to abstract away the database. Type safety is non-negotiable for me: I do not tolerate any or unchecked unknown values in data flows; unknown input is parsed into typed schema before processing.

Works well with the rest of my stack (Bun, Nuxt, TanStack Query) and doesn't fight against edge deployments.

When I use it

  • TypeScript projects with SQL databases (including SQLite), from prototypes to production systems.
  • Backends that need both query-builder ergonomics and raw SQL escape hatches.
  • Teams that want predictable migrations without heavyweight ORM behavior.

When I avoid it

  • Projects without SQL databases (for example Redis-only data layers where Drizzle is not the right abstraction).
  • Legacy codebases deeply coupled to another ORM where migration is not currently viable.

One real example

I use Drizzle in both small prototypes and larger products to keep schema and query behavior type-safe from the start, then scale without changing data-access conventions.