Work / Trunk / Wiki / Decisions
2026-07-23-nextjs
Decisioncanonicalverified 2026-10-04
DECISION.2026-07-23.NEXTJSNext.js 16 (App Router)
Decision
Next.js 16 App Router for both website and workspace. Route Handlers as the API surface. Server Components for reads, Server Actions and tRPC for writes.
Why
- One codebase serves marketing (SEO) and app (interactive).
- Vercel scale-to-zero → cheap for idle tenants.
- Tailwind 4 + Server Components composes cleanly with our design surface (dogfoodable primitives).
Rejected alternatives.
- Rails + Hotwire — great SSR, wrong for the canvas-heavy Design/Journey surfaces.
- Remix — merged into React Router; less deployment optionality.
- Elixir + LiveView — best runtime, wrong hiring pool.
Impact
- Both apps were to be Next.js; the API surface, Route Handlers plus tRPC.
- Related: 2026-07-23-turborepo · 2026-07-23-drizzle-over-prisma · 2026-07-23-trpc-over-graphql.
Status
Accepted 2026-07-23, with delta D-0002. 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-nextjs, written 2026-07-23 and moved here on 2026-10-04. The text is the note's own; only the headings changed.