Freehold CMS Architecture
Freehold CMS uses a shared Core for installation, administration and system services while focused modules own their routes, data and business responsibilities.
Core responsibilities
Core provides configuration, database access, routing, authentication, capabilities, request controls, module lifecycle, theme selection, shared settings and cache services. Cross-cutting behavior belongs here only when multiple capabilities genuinely need it.
Module and theme responsibilities
Modules declare identity, version and dependencies, then own their routes, schema, administration and cleanup. Themes present supported content and navigation regions without becoming the source of business records.
Architecture checks
- One front-controller request path.
- Shared authentication and capability checks.
- Manifest-driven module identity.
- Module-owned schema and routes.
- Theme-declared presentation regions.
- Explicit service and data boundaries.
Trace one real request
Follow a public request from the front controller through route resolution, authentication or capability work, module ownership, database access, template output and cache behavior. That concrete trace exposes accidental cross-module coupling faster than an abstract diagram alone.
Next: module packages
Continue with manifest identity, compatibility and dependencies.