My App

ADR-01: Stack technique

Better-T-Stack — Bun + Elysia + Next.js + Drizzle + PostgreSQL

Contexte

Wcare est un SaaS B2B avec deux interfaces (dashboard + page publique de signalement), un backend API, et des intégrations externes (WhatsApp, email). Le choix de stack doit privilégier la vélocité de développement, la type-safety, et la capacité à itérer vite.

Décision

Better-T-Stack — le stack de référence déjà maîtrisé.

CoucheChoixRaison
RuntimeBunPerformance, bundler intégré, natif TypeScript
BackendElysiaType-safe, léger, intégration tRPC native
APItRPCType-safety end-to-end, zéro code-gen
FrontendNext.js 16App Router, RSC, écosystème React mature
ORMDrizzleType-safe, SQL-first, migrations, léger
DBPostgreSQLRobuste, jsonb pour les customizations QR
AuthBetter AuthSessions, magic links, adapters Drizzle
UITailwind v4 + shadcnDesign system neo-brutalist personnalisé
MonorepoNx + Bun workspacesCache, task orchestration
Lint/FormatBiomeRapide, tout-en-un

Alternatives écartées

AlternativeRaison du rejet
Express/FastifyPas de type inference aussi poussée qu'Elysia
PrismaPlus lourd que Drizzle, code-gen obligatoire
REST purPerte de la type-safety end-to-end
MongoDBPas adapté aux relations du modèle (établissement → WC → signalement)
RemixMoins mature pour le B2B dashboard que Next.js

Conséquences

  • Positif : Stack déjà maîtrisé, itération rapide, DX excellente
  • Positif : Type-safety de la DB au frontend sans code-gen
  • Attention : Elysia et Bun sont encore jeunes — suivre les breaking changes
  • Attention : Next.js 16 a des API async à respecter (headers, cookies)

On this page