Open-Source PHP CMS

No build.
No database.
No drama.

atoll is a modern flat-file CMS with island architecture. PHP 8.2+, no Node, no Docker — upload and go.

Terminal
# Create a new project$git clone https://github.com/atoll-cms/atoll-starter my-site$cd my-site && composer install# Start the development server$php bin/atoll serve Starting atoll-cms on http://localhost:8080# Check for core updates$php bin/atoll core:check ✓ Core v1.4.2 — up to date
0 KB
Client-JS by Default
PHP 8.2+
Only Requirement
MIT
Open Source Licence
<50ms
Cached Response
Features

Everything you need. Nothing you don't.

atoll delivers the tools for professional websites without the complexity of modern frameworks.

Zero JavaScript

Your HTML is served without a single byte of JavaScript. No React, no Vue, no bundle — just blazing-fast HTML.

Island Architecture

Interactive widgets are only hydrated when they become visible. Search, gallery, forms — all as isolated islands.

Flat-File Storage

All content is Markdown with YAML frontmatter. Git-versionable, no database, no migrations. Copy files = backup.

Shared Hosting

PHP 8.2, a folder, done. No Node.js, no Docker, no CI/CD needed. Works on any €5/month host.

Secure by Default

CSRF protection, rate limiting, CSP headers, signed updates, IP-based admin access control. Security is not a plugin.

One-Click Updates

Core updates with a single CLI command. Signed releases, automatic backups before every update, instant rollback on issues.

Architecture

Core and project cleanly separated

atoll separates the updatable core from your project files. Updates never overwrite your content, themes or plugins.

Your project, your rules

The core provides the CMS engine, admin panel, routing and security. Everything you customise — templates, themes, plugins, content — lives in your project folder and is never touched by updates.

  • Templates override core defaults — your own layouts and components always take priority
  • Theme system with fallback chain — Site → Theme → Core Theme → Default
  • Plugin hooks instead of monkey-patching — clean event-based extension
  • Signed core updates — one command, backup included, rollback any time
Project structure
my-site/ ├── content/# Your content │ ├── pages/# Markdown pages │ ├── blog/# Blog collections │ └── data/# YAML data files ├── templates/# Your overrides ├── themes/# Installed themes ├── plugins/# Installed plugins ├── core/# Updatable core │ ├── src/# CMS engine │ ├── admin/# Admin panel │ └── themes/# Default theme ├── config.yaml# Configuration └── index.php# Entry point
Comparison

How atoll fits in

Every tool has its strengths. Here's where atoll shines.

FeatureatollWordPressKirbyHugo
LanguagePHP 8.2+PHP 7.4+PHP 8.1+Go
DatabaseNoneMySQL requiredNoneNone
Admin PanelIncludedIncludedFrom €99None
Island ArchitectureYesNoNoNo
Build step requiredNoNoNoYes
Shared HostingYesYesYesNo
Signed UpdatesYesNoNoN/A
PriceFree (MIT)Free (GPL)From €99Free (Apache)
Getting Started

Your website in three steps

No complicated setup. No toolchain study. Just get going.

Clone the project

The starter comes with everything — core, default theme, example pages.

git clone https://github.com/atoll-cms/atoll-starter my-site
cd my-site && composer install

Start the server

One command starts the development server with auto-reload.

php bin/atoll dev 8080 # Open in browser:
# http://localhost:8080

Write content

Create Markdown files, set frontmatter, done.

---
title: My Page
excerpt: A short description.
--- # Welcome
Write content in Markdown.

Ready for a CMS without drama?

atoll is open source, free and actively maintained. Start your first project now.

MIT License · 100% Open Source