Work / Trunk / Wiki / Decisions
2026-07-23-drizzle-over-prisma
Decisioncanonicalverified 2026-10-04
DECISION.2026-07-23.DRIZZLE-OVER-PRISMADrizzle 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.