The PHP framework that stays light.
FloCMS gives you routing, a template engine, an admin panel, a versioned JSON API and a command line that does the busywork, without the weight. Install only the parts your project needs. 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']);
});
};
$ composer create-project hostkurd/flocms my-site
$ cd my-site
# website + admin panel, website only, admin only, API + admin, or API only
$ php flo setup --as=site-admin
$ 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 and templates
Clean URLs map straight to controllers, and readable templates have layouts, partials and @csrf, compiled and cached for you.
The php flo CLI
Generators, migrations, seeders, a scheduler, maintenance mode and user management from one command.
An admin panel
Describe a table in PHP and get its list, forms and permissions, plus users, media, settings and pages built from blocks.
A versioned JSON API
When you need one: 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 and admin 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. Locked versions.
Each site upgrades when you decide. Every package is installed through Composer, and a project adds only the ones it needs.
php flo command line and scheduler.
flocms-admin
The admin panel: resources, users, media, settings and pages.
flocms-api
Versioned JSON APIs with tokens, validation and resources.
flocms-reactive
Server-rendered interactive components, no build step.
flocms-uploader
Image, video and chunked uploads.
flocms-captcha
Self-hosted captcha for your forms.
Build your next site with FloCMS.
Runs anywhere PHP 8.1 runs, from your laptop to cPanel.