Skip to content

Work / Trunk / Wiki / Decisions

2026-07-23-drizzle-over-prisma

Decisioncanonicalverified 2026-10-04

DECISION.2026-07-23.DRIZZLE-OVER-PRISMA

Drizzle over Prisma

Decision

Drizzle ORM.

Why

  • Cold start — Prisma ships an engine binary; Drizzle is just SQL + types. On Neon/Vercel serverless the difference is ~200ms per cold request.
  • SQL-first — every domain query in Trunk touches tenant_id; Drizzle's SQL-shaped DSL keeps that explicit. Prisma's middleware for tenant scoping is clunky.
  • Bundle size — Drizzle is measured in kilobytes; Prisma in megabytes.

Impact

Trade-offs.

  • Fewer batteries: no built-in seed runner, no Studio. We'll write our own seed script (tools/seed-self-example).
  • Newer ecosystem — some IDE integrations still catching up.

Related: 2026-07-23-nextjs.

Status

Accepted 2026-07-23. The implementation this chose was removed from the repository on 2026-08-12, when it became design-only. The decision has not been revisited since.

Sources

  • The memory note decision-drizzle-over-prisma, written 2026-07-23 and moved here on 2026-10-04. The text is the note's own; only the headings changed.