Built against today's PHP flaws
Typed PHP 8.2+, strict headers, Argon2id, prepared statements everywhere. No compatibility layer for 2010.
French CMS · PHP 8.2+ · no dependencies
A dependency-free PHP CMS with built-in AI, llms.txt and a live studio. One zip, ten minutes, and you own it.
Live demo
A real render, not a screenshot: pick a theme, switch device, scroll.
Demo content, real theme — the page below loads the same stylesheet your site would.
Fortress vs WordPress
WordPress, Joomla and Drupal grew up on PHP as it was fifteen years ago. Fortress is written from zero on the PHP of today: the same comfort, none of the inherited surface.
Public documentation of each project, October 2026. No benchmark, just defaults.
New generation
Every CMS still in use carries the compromises of its first decade. Starting over is not a detail: it is what finally makes a clean platform possible.
Typed PHP 8.2+, strict headers, Argon2id, prepared statements everywhere. No compatibility layer for 2010.
No decade of plugins to audit. The security is in the code you download, not in a checklist of extensions.
Four languages, AI on demand, llms.txt and a live studio: publish, and be read by humans and machines.
Security
Nonce-based headers, no inline script, no CDN.
Modern hashing, TOTP ready, rate-limited sign-in.
Every query, SQLite or MySQL, without exception.
Every write recorded with user, IP and time.
Sovereignty
No telemetry, no third-party fonts, no external call.
Your server, your jurisdiction, one folder to upload.
Small codebase, written threat model, no black box.
Built in
Your key, your provider, your rules.
Global index and one file per article.
Record video or a podcast in the editor.
Themes
Pick a structure, then a single tint. Black and white stays; the tint is the only colour on the page.
The calm baseline: white ground, hairline grid, wide measure.
For essays: narrow measure, heavier rules, drop cap.
Large type, asymmetric bento grids, tinted panels.
A gallery theme: full-frame images, mono captions, almost no chrome. The photograph is the layout.
The look of this site applied to a blog: centred hero, hairline table, numbered posts.
Monochrome and quiet: flat rows, thin rules, no covers in the way.
Themes and tints switch from the dashboard. No rebuild, no plugin, no page cache to clear. All themes ↗
Languages
Installation
The same moves as WordPress: drop it in, open the site, answer four screens. Except there is no Composer, no npm and no plugin update to babysit.
Upload the contents of the ZIP to your web root, or to a subfolder. There is no build step.
The only permission to set: storage/ belongs to the PHP user and is not world-readable.
index.php redirects itself to install.php. No command to run, no config file to write by hand.
Environment, database (SQLite by default, MySQL if you prefer), site name and languages, administrator account.
Enable 2FA, then Force HTTPS in Settings → Security. install.lock prevents any reinstall.
Copy storage/app.db, storage/config.php and storage/uploads/. That is the whole state of the site.
Upload the folder, run the installer, write. Nothing to compile, nothing to subscribe to.