Mini CMS

A template-first CMS built as an aspect on the Mini PHP framework. Inline editing, media library, auto CRUD, and an admin panel — layered on a plain Mini app without changing how the app works.

Template-first

Content lives inside your PHP templates as cms_text(), cms_html(), and cms_image() calls. The developer defines the structure; the admin edits the values. No database schemas, no content types to configure.

Filesystem storage

Content is stored as JSON and HTML files under _content/. This means git diff shows exactly what changed, branches can carry different content, and a coding agent can edit content directly on disk.

Context-aware

Reusable partials get their own content scope automatically. Embed the same card template three times on a page — each instance stores its content independently, no slug collisions.

Quick start

composer create-project fubber/mini-cms-starter my-site
cd my-site
mini serve

Log in at /login with the default credentials. Every page is inline-editable: long-press (or click Edit in the sidebar) to activate edit mode, make changes, then Save.

For coding agents

This documentation site is itself a Mini CMS site. The pages you see here are the default starter content. An AI coding agent working on a Mini CMS project should:

  1. Read the view templates in _views/ to understand page structure
  2. Read _content/routes.php to see all registered pages
  3. Edit _content/ JSON and HTML files to modify content directly
  4. Use git carefully — content files are versioned, and a bad reset destroys real data

See the Git Workflow page for detailed guidance.