Custom platform · CMS architecture

Cairn Base and CMS

Cairn Content System

Directing the development of a lightweight publishing system that adds structured editing, validation, revisions, and immutable releases to the Cairn frontend.

Role
Product direction · Architecture · Agent orchestration
Focus
Structured content · Publishing workflow · Validation · Operational safety

01 · Overview

Give a static system an editing layer.

Cairn began as a component-driven PHP frontend with pages defined through structured data. The CMS initiative extends that foundation with an editor-friendly content workflow while preserving the reliability and performance of the public site. The system is being developed through a human-led, AI-assisted process in which I define requirements, evaluate architecture, review implementation, and direct QA.

02 · The challenge

Add editing without weakening the frontend.

A traditional database-backed CMS would undermine one of Cairn’s core advantages: simple, predictable public requests. The editing system therefore needed to support drafts, revisions, previews, validation, media, publishing, and rollback while keeping mutable administrative data away from the public rendering path. It also needed safeguards against invalid content, unsafe migrations, filesystem mistakes, and partial releases.

03 · What I built

Separate editing from publishing.

I directed an architecture in which editors work with mutable drafts stored in SQLite, revisions preserve immutable content history, and publishing produces immutable PHP release files for the public frontend. The project includes a structured content registry, page and section schemas, human-readable validation, migration and preflight tooling, runtime configuration, release activation concepts, optimistic locking, and test fixtures for valid and invalid states.

04 · Result

A safer path from draft to release.

The current foundation establishes a clear boundary between private editing operations and the public website. Content can be validated before publication, revisions and releases can be treated as immutable records, and the public renderer can consume a single activated release without querying the editorial database. The remaining work centers on completing the editor interface and production publishing experience.