Strapi 5 as headless CMS with a semantic DTO boundary
Strapi 5 owns content; the Next.js frontend consumes it through a single CmsGateway and page normalizer, never leaking CMS shapes into components.
Clinic staff need to edit content without a developer, and the legacy MODX schema could not be exposed directly to the frontend. A semantic DTO boundary (ADR-001) isolates Strapi schema changes from the UI and gave the migration tooling a stable target.