Architecture
ADR 0001 — Stack and unified platform
- Date: 2026-06-09
- Status: Accepted
Context
Feedback Studios (a team of 2, semi-technical profile) wants to unify web + dashboard (currently PHP) + Chatwoot + n8n + a future client portal on a coherent, elegant base, self-hosted, subscription-free and scalable with Claude Code.
Decision
- TypeScript / Next.js monorepo (Turborepo) as the single base for web, dashboard and portal. It is the stack with which Claude Code is most effective and it unifies the language.
- Payload CMS (MIT, fully self-host) as CMS + backend + auth + API, within the same Next.js. Avoids subscription-based SaaS CMS (Sanity/Storyblok/Contentful).
- PostgreSQL self-host as the database.
- Coolify (open-source) to deploy everything on our own VPS.
- Existing n8n and Chatwoot are kept and connected via webhooks/API.
- Public website starting from the Azurio template (one-time purchase on ThemeForest).
Rejected alternatives
- WordPress/Bricks for our own website: you cannot "convert" a Next.js to WP without rebuilding it and losing the motion/craft. (The "editable in builder" rule applies to client websites, not to our own platform.)
- SaaS CMS (Sanity/Storyblok) and managed hosting (Vercel/Neon): they imply recurring subscriptions; rejected due to the cost requirement.
Consequences
- (+) A single codebase and language; maximum leverage with Claude Code; zero fees.
- (−) Migrating the PHP dashboard → Next.js is real work (done in phases).