Release notes
FloCMS follows semantic versioning. The project skeleton has its own version (2.0.0) and requires the framework packages, each with its own version, with caret ranges such as ^2.8.0; composer.lock records the exact versions a project installs. The full history is in the changelog. Moving an existing site to a new release is described in the upgrade guide.
Core 2.9.0
Released October 24, 2026. A core release; the skeleton is unchanged.
- SQLite for websites. With
DB_TYPE=sqlitein.env(ordb.typein the configuration),App::db()opens the SQLite file named byDB_NAME, so pages, models and the admin panel can run on SQLite, not onlyphp flo. See database.
Existing sites get it with composer update hostkurd/flocms-core.
2.0.0
Released October 23, 2026. Requires core 2.8.0.
- Choose what you build.
composer create-projectends by asking what the project is: a website with the admin panel (the default), a website only, an admin panel only, an API with the admin panel, or an API only.php flo setupadds just the packages that choice needs. See choose what you build. - The API is optional. flocms-api is no longer installed by default, and
public/api.phpandapi/left the skeleton.php flo api:install(flocms-api 1.3) writes them when you add the API. See building an API. - A home setting.
Config::set('home', 'site')decides what/shows: the website, the admin panel (admin) or a short JSON welcome (api). - Rate limits and client IPs in core. Login throttling and maintenance mode use core 2.8's
FloCMS\Core\RateLimitandFloCMS\Core\Securityclasses, so a website without the API has them. flocms-api 1.3 keeps its old class names as aliases.
Existing sites keep working as they are. See from 1.8 to 2.0.
1.8.8
Released October 21, 2026. Requires core 2.6.0.
- Ready for the admin panel's Pages: the home page can be a page chosen in the panel, and both layouts print
page_meta()andblocks_assets(). Without flocms-admin nothing changes. Core 2.6 addsApp::fallbackUsing(); see extending from a package.
1.8.7
Released October 18, 2026. Requires core 2.4.0.
- Roles at runtime. Core 2.4's
Auth::loadRolesUsing()lets a package supply roles and permissions, and role levels decide who may manage whom. The admin login asksAuth::hasAdminAccess(), so a role added in the admin panel can sign in at once.
1.8.6
Released October 18, 2026.
- The Admin role (2) gets
activity.view, for the admin panel's activity log.
1.8.5
Released October 17, 2026.
- A migration for the
settingstable thatConfig::getSetting(), maintenance mode and the admin panel's settings pages share. See configuration.
1.8.4
Released October 16, 2026.
- Caret ranges. The framework packages are required from a tested minimum (
^2.3.2,^1.2.1, …) instead of exact versions, so adding a package such as flocms-admin can bring the newer release it needs.composer.lockstill fixes the versions a project installs. - flocms-uploader 1.2.1: the Imagick driver no longer pads resized images to a square.
1.8.3
Released October 14, 2026.
- The admin layout's
langanddirfollow the active language. An optionalauth.login_viewsetting lets a package present the login page; the login itself is unchanged.
1.8.2
Released October 13, 2026. Requires core 2.3.2.
- Controllers may return a
FloCMS\Core\Http\Response(JSON, a fragment or an empty response) instead of a view. See extending from a package. - A malformed CSRF token answers 419, and a signed-in user without admin access can log out and sign in as someone else (core 2.3.1).
1.8.0
Released October 12, 2026.
- The admin screens move to a package. The skeleton keeps signing in, the users table, roles,
php flo user:*and a small/adminpage. The unfinished user pages ofUsersControllerwere removed; manage users with flocms-admin, theuser:*commands or your own admin./adminfollows theadmin.homesetting, which the admin panel sets to its dashboard.
1.7.8
Released October 12, 2026.
- The admin layout loads its stylesheets and scripts with
template_asset(), so the login page and dashboard are styled again.
1.7.7
Released October 12, 2026. Requires core 2.3.0.
- Packages can supply controllers with
App::resolveControllersUsing(). Your own controllers always come first. See extending from a package.
1.7.6
Released October 12, 2026. Requires core 2.2.3.
- The
maxvalidation rule passes on a missing or empty value, so an empty required field shows only its "required" message.minis unchanged.
1.7.5
Released October 11, 2026.
- Multi-word page controllers. Requires
hostkurd/flocms-core2.2.2:/blog-postrunsBlogPostControllerand rendersviews/blog-post/, which is whatphp flo make:route BlogPostgenerates. In 1.7.4 these URLs answered 404. - Template directives accept parentheses.
@if(count($posts) > 0),@foreach(array_slice($posts, 0, 3) as $post)and@lang('key', ['name' => strtoupper($name)])compile correctly, and@forelse ... @empty ... @endforelseworks. Existing templates compile to the same PHP as before. - Security: single-use captcha codes. Requires
hostkurd/flocms-captcha1.1.0, now pinned exactly like the other packages:verify()removes the code on every check, so a code can't be guessed by retrying or reused by submitting the form again.
Existing sites get both with:
composer require hostkurd/flocms-core:2.2.2 hostkurd/flocms-captcha:1.1.0
1.7.4
Released October 11, 2026.
- Security. Requires
hostkurd/flocms-core2.2.1: only public, non-static actions on your controllers or your own base controllers can be reached from a URL. Methods inherited fromFloCMS\Core\Controllerare blocked. Before, a URL could reach that base controller's methods. APP_VERSIONand the version checks in the test suite now match the release.
Existing sites get the security fix with:
composer require hostkurd/flocms-core:2.2.1
1.7.3
Released October 11, 2026.
- Admin dashboard. Logging in redirects to
/admin/, which answered 404. It is now a small dashboard with the signed-in user, their role, a link to user management for roles allowed to manage users, and log out. - Role display names live in
config/config.php(Config::set('roles', ...)), shared by the dashboard and user management.
1.7.2
Released October 10, 2026.
- Requires
hostkurd/flocms-cli2.0.1, which fixes the hidden password prompt on Windows inuser:createanduser:password.
1.7.1
Released October 10, 2026.
- Welcome page. A new minimal design with the animated FloCMS logo. It still renders when a wrong
APP_URLbreaks theme asset links. - One-click APP_URL fix. On an
APP_URLmismatch, a local install offers a button that writes the detected URL to.env.
1.7.0
Released October 10, 2026.
- Commands come from Composer. The root
flofile is a three-line launcher for flocms-cli, socomposer updatedelivers new commands and fixes.php flo help <command>explains any command. - Your own commands. Classes in
commands/are commands, starting withphp flo login:unlock. - Migrations and seeders in
database/. The users table and the API tables are migrations. - Scheduler. One cron job runs the tasks in
config/schedule.php. - Maintenance mode with
php flo downandphp flo up. composer create-projectworks on PHP 8.1 again.
To upgrade an existing site, see the upgrade guide.