The PHP framework that stays light.
FloCMS gives you routing, a template engine, a versioned JSON API and a command line that does the busywork, without the weight. Built for real websites, including the ones that live on shared hosting.
composer create-project hostkurd/flocms my-site
return static function (Router $router): void {
$router->version('v1', function ($router) {
// Public, rate limited, safe to retry
$router->post('/contact', [ContactController::class, 'store'])
->middleware('throttle:forms', 'idempotent');
// Token or admin session, with a permission
$router->group('/users', function ($router) {
$router->get('', [UsersController::class, 'index']);
$router->get('/{id:\d+}', [UsersController::class, 'show']);
}, ['auth:users.manage']);
});
};
$ php flo make:route Blog
Created models/BlogModel.php
Created controllers/BlogController.php
Created views/blog/index.html
$ php flo migrate
$ php flo user:create --role=super-admin
$ php flo doctor
What's in the box
Everything a website needs. Nothing it has to carry.
Routing
Clean URLs map straight to controllers and actions, with language prefixes built in.
Flo Template Engine
Readable templates with layouts, partials and @csrf, compiled and cached automatically.
The php flo CLI
Generators, migrations, seeders, a scheduler, maintenance mode and user management from one command.
Versioned JSON API
Routes under /api/v1 with tokens, rate limits, idempotency, CORS and OpenAPI 3.1 output.
Secure by default
Roles and permissions, CSRF protection, login throttling and session freshness out of the box.
Multilingual
Language files and URL prefixes for any locale, with right-to-left themes for Arabic and Kurdish.
php flo
From empty folder to live site in a few commands.
Generate a controller, model and view together, run migrations, create your first admin, and check the whole installation before you deploy. Every command explains itself with php flo help.
$ php flo make:route Blog
Created models/BlogModel.php
Created controllers/BlogController.php
Created views/blog/index.html
$ php flo make:migration create_posts_table && php flo migrate
$ php flo user:create --role=super-admin
$ php flo doctor
The ecosystem
Small packages. Pinned versions.
Each site upgrades when you decide. Every package is installed through Composer and documented on this site.
Build your next site with FloCMS.
Runs anywhere PHP 8.1 runs, from your laptop to cPanel.