ADR-003: Server Actions naar Hono API
Beslissing
Section titled “Beslissing”Alle server-side logica wordt verplaatst naar een standalone Hono 4.7 API op Cloudflare Workers, bereikbaar op api.builtwithbeam.com.
Context
Section titled “Context”Next.js server actions waren gekoppeld aan het dashboard. Met de migratie naar Vite SPA (ADR-002) is een aparte API nodig die door alle clients gedeeld kan worden: dashboard, publieke site, en toekomstige mobile app.
Overwegingen
Section titled “Overwegingen”Hono (gekozen):
- Native Cloudflare Workers support
- TypeScript-first met typed middleware
- Lichtgewicht (~14KB)
- Zod validatie integratie
- Middleware chaining (CORS, auth, rate limit, logging)
tRPC:
- End-to-end type safety
- Tight coupling met frontend — moeilijker voor meerdere clients
- Geen REST endpoints voor externe integraties
Express/Fastify:
- Niet compatible met Workers runtime (Node.js APIs)
Gevolgen
Section titled “Gevolgen”- 8 route modules: pages, patterns, media, team, domains, stock-photos, cache, health
- Bearer token auth via Supabase
getUser() - Typed client wrapper in dashboard (
api-client.ts) - Rate limiting per user (100/min general, 20/min uploads)
- Structured JSON logging met request IDs
- Cron triggers voor domain polling en media cleanup