ADR 0002: Website and portal as two apps, one brand
- Status: Accepted
- Date: 2026-09-11 (documents a decision from mid 2026)
Context
The public site needs fast, SEO-friendly bilingual pages and rich animation. The operations backend needs authenticated multi-tenant CRUD, background jobs, audited admin actions and rapid server-rendered iteration. One codebase would force one framework to do both jobs badly.
Decision
Two applications: keferboeck.com on Next.js for the public site, and the portal on Rails 8 with Hotwire for operations at hub.keferboeck.com. They integrate over a small server-to-server API (shared secret header) and a read only database bridge, never by sharing code.
Consequences
Each app uses the tool that fits. The seam is explicit and testable. The price is two deploys and two stacks to keep healthy, mitigated by identical Kamal workflows.