v1.7 Commands now ship from Composer, read the release notes

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']);
    });
};

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.

Browse every command
$ 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

Build your next site with FloCMS.

Runs anywhere PHP 8.1 runs, from your laptop to cPanel.

Esc