Prisma è il nostro ORM di default da anni. Negli ultimi 12 mesi Drizzle è cresciuto al punto di essere una scelta seria. Vediamo come decidiamo nei progetti nuovi.
Prisma
Punti di forza:
- Schema dichiarativo (
schema.prisma) leggibile come un DBML. - Migration generator automatico, robusto.
- Studio: explorer dati visuale.
- Ecosistema enorme: dovunque sai trovare risposte.
Limiti:
- Un binary engine (Rust) come dipendenza, non sempre compatibile con edge runtime al 100%.
- Bundle pesante per Lambda freddo.
- Query complesse rich-types possono diventare verbose.
Drizzle
Punti di forza:
- Schema in TypeScript puro: i tipi sono la fonte di verità.
- SQL-builder: query molto vicine al SQL nativo, perfette per chi pensa relazionale.
- Niente engine binario: gira su edge runtime (Vercel Edge, Cloudflare Workers) senza problemi.
- Bundle minimale.
Limiti:
- Migration tool (
drizzle-kit) maturato ma meno robusto di Prisma su scenari complessi. - Niente Studio integrato — ottimi tool terzi (Drizzle Studio, TablePlus).
- Ecosistema più giovane: meno articoli, meno SO.
Come scegliamo
| Caso | Scelta |
|---|---|
| App Next.js standard, team mid | Prisma |
| App edge-runtime native (Cloudflare, Vercel Edge) | Drizzle |
| Workers/Lambda freddi, latenza critica | Drizzle |
| Team che vive in SQL, query complesse | Drizzle |
| Onboarding rapido, tooling visuale | Prisma |
Posizione attuale
Per il 70% dei nostri progetti, Prisma. Per app SaaS edge-native, Drizzle. Non c'è un perdente — sono due scelte diverse per due esigenze diverse.