pstaender / blueprintcms
Blueprint CMS – a flat file CMS inspired by Kirby
Requires
- php: >=8.4
- adhocore/cli: ^1.9
- illuminate/support: ^13.38
- michelf/php-markdown: ^2.0
- notrab/dumbo: ^1.4
- psy/psysh: ^0.12.24
- symfony/var-dumper: *
- symfony/yaml: *
Requires (Dev)
- pestphp/pest: ^4.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-27 19:32:01 UTC
README
A flat file CMS for PHP, inspired by Kirby. Content lives in plain files (JSON and Markdown with YAML front matter), no database needed. Blueprints (YAML or PHP) describe the fields of pages, files, users and the site; they drive the templates' field methods, the validation and the admin panel.
Alpha: Blueprint CMS is in an early alpha state. APIs, file formats and the panel can still change without notice, and it isn't ready for production sites yet.
To get a first impression, have a look at the documentation of Blueprint CMS.
Features
- pages as folders or single files (
page.json,page.md,{slug}.md), drafts, listed and unlisted pages, redirects - blueprints with tabs, columns and many field types (text, markdown, blocks, layouts, structures, pickers, …)
- plain PHP templates with escaped field methods, snippets and partials
- an admin panel (Vue): page tree, page and file management, drag & drop, a markdown editor, users and roles, passkey login
- uids for pages, files and users, so references survive renamed slugs
- AVIF versions of content images
- a command line tool (
bin/blueprint) for users and maintenance
Requirements
PHP >= 8.4, Composer and Node.js (to build the panel).
Quick start
composer install composer panel:build # builds the panel into public/panel bin/blueprint user:create admin # asks for a password composer serve # http://localhost:8000, panel at /panel composer test
Documentation
The documentation is a Blueprint CMS site itself: its content is in docs/ (guides, reference, examples) and this repository's config renders it, so composer serve shows it at http://localhost:8000. Start with Getting started.
Releases
composer release suggests the next semantic version after the latest git tag (pre-releases like 0.1.0-alpha.1 → 0.1.0-alpha.2, 0.1.0-beta.1, 0.1.0) or takes your own (composer release 0.2.0). It writes the version into composer.json and panel/package.json, commits them and creates the tag v0.2.0; push it with git push && git push origin v0.2.0.