Overview
Discover what makes WonderCMS powerful
WonderCMS is a minimalistic, flat‑file content management system written in pure PHP. From a technical standpoint it eliminates the need for a database server, web‑server configuration beyond standard PHP support, or any runtime dependencies. Content is stored in simple UTF‑8 text files (YAML/Markdown or plain PHP arrays), and the engine parses these files on every request, caching the parsed results in a small JSON blob to keep memory usage low. The core engine is only about 50 KB of code, which means it can be dropped into any LAMP/LEMP stack with a single `unzip` operation and immediately serves dynamic pages without any compile‑time steps.
Language & Runtime
Data Layer
Templating
Routing
Overview
WonderCMS is a minimalistic, flat‑file content management system written in pure PHP. From a technical standpoint it eliminates the need for a database server, web‑server configuration beyond standard PHP support, or any runtime dependencies. Content is stored in simple UTF‑8 text files (YAML/Markdown or plain PHP arrays), and the engine parses these files on every request, caching the parsed results in a small JSON blob to keep memory usage low. The core engine is only about 50 KB of code, which means it can be dropped into any LAMP/LEMP stack with a single unzip operation and immediately serves dynamic pages without any compile‑time steps.
Architecture
- Language & Runtime: PHP 8.1+ (fully backward‑compatible with 7.4) running on any web server that supports PHP as a module or CGI.
- Data Layer: Flat files stored under
content/– each article, page or taxonomy is a separate file. The system uses an internalcache/directory for JSON‑encoded metadata and optional compiled templates. - Templating: A tiny, built‑in template engine based on PHP’s output buffering. Templates are plain
.phpfiles that can include other templates and access a global$pageobject. No external templating libraries are required, keeping the footprint minimal. - Routing: A single‑file front controller (
index.php) maps URLs to content files using a simple globbing algorithm. Custom routes can be defined inconfig/routes.phpif needed. - Admin Interface: A lightweight MVC‑style admin panel built with vanilla PHP and minimal CSS/JS. It serves as both a content editor (in‑place Markdown editing with live preview) and an extension manager.
Core Capabilities
- REST‑like API:
/api/v1/exposes endpoints for retrieving, creating, updating and deleting content via JSON. Authentication is token‑based (X-API-Key) allowing integration with external services or headless front‑ends. - Webhooks: Plugins can register callbacks for events such as
post.published,page.updated, oruser.logged_in. These are invoked synchronously during the request lifecycle. - Plugin System: A hook‑based architecture lets developers drop a PHP file into
plugins/. Each plugin registers hooks in its own namespace, making it trivial to add features such as SEO metadata generators, analytics integrations, or custom form handlers. - Theming: Themes are simple directory structures under
themes/. A theme declares atheme.jsonwith metadata and optionally overrides core templates. The admin panel includes a one‑click theme installer that pulls packages from the official repository.
Deployment & Infrastructure
- Self‑Hosting: No database, no external services – just a web server and PHP. Suitable for shared hosting, VPS, Docker, or even static site generators that support dynamic PHP execution.
- Containerization: Official Docker image (
wondercms/wondercms) bundles Nginx, PHP‑FPM and the CMS files. Adocker-compose.ymlexample is provided in the repo, making it trivial to spin up a local dev environment or CI pipeline. - Scalability: Because the CMS serves static files after initial parsing, it can be fronted by a CDN. The lightweight cache ensures low memory usage even under high concurrency. Horizontal scaling is achieved by replicating the file system across nodes (e.g., using NFS or a distributed object store) and keeping the cache in Redis if desired.
Integration & Extensibility
- External APIs: The REST API can be consumed by headless front‑ends (React, Vue, Svelte) or static site generators that support dynamic content fetching. OAuth2 is supported via a third‑party plugin for authentication against external identity providers.
- Webhooks: External services can listen to content events, enabling automated deployments, search‑index updates, or notification workflows.
- Customization: Developers can extend the core by writing plugins that hook into any lifecycle event, modify request/response objects, or replace entire modules. The source code is fully open‑source (GPLv3), encouraging community contributions.
Developer Experience
- Configuration: Minimal – a single
config.phpwith path constants and API key generation. All advanced settings are optional and documented in the online docs. - Documentation: The official docs cover installation, API usage, plugin development, and migration scripts. Inline code comments are plentiful, and the GitHub repo hosts a wiki with best‑practice guides.
- Community: Over 50 contributors and thousands of downloads. The project maintains an active issue tracker, a Discord channel for real‑time support, and a quarterly newsletter.
Use Cases
- Personal Blogs: Fast page load times, zero database overhead make it ideal for solo developers who want a lightweight blogging platform.
- Documentation Sites: Markdown support, in‑place editing, and API access allow teams to maintain internal docs or public APIs with minimal friction.
- Static Site Generation: Use WonderCMS as a headless CMS to feed content into static site generators, then deploy the generated HTML to an edge CDN.
- Prototype & MVP: Quickly spin up a functional website or product landing page without provisioning a database, ideal for rapid prototyping.
Advantages
- Performance: Zero‑dependency architecture yields 100/100 PageSpeed scores on both desktop and mobile; the engine parses only a handful of
Open SourceReady to get started?
Join the community and start self-hosting WonderCMS today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Pi‑hole
Network‑wide ad blocking with your own DNS server

Exim
Flexible SMTP mail transfer agent for Unix
ghstats
Self-hosted data-analysis
pretix
Secure, multi‑language ticketing for any event
Chyrp Lite
Self‑hosted, lightweight blogging platform with responsive design
Dropserver
Your personal web app platform