Skip to content

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.