enlivenapp / fizl3
Fizl3 - Simple, lightweight CMS
Requires
- php: >=8.2
- ext-pdo: *
- ext-pdo_sqlite: *
- enlivenapp/vision: *
- flightphp/core: ^3.0
README
Fizl3
A simple, lightweight CMS built on FlightPHP, Vision template engine and SQLite. No complex setup, no heavy frameworks, just a simple, fast website.
Requirements
- PHP 8.2+
- PDO SQLite extension
- Apache or Nginx
Installation
Composer
composer create-project enlivenapp/fizl3 your-site
Zip
Download the latest release, extract it to your web root, and run:
composer install
First Run
On first run, Fizl3 automatically:
- Creates a SQLite database (zero configuration)
- Seeds a default admin user (
admin/admin) - Creates a published home page
Change the default password immediately via Settings in the admin panel.
Directory Structure
fizl/
├── app/ # Application code
│ ├── bootstrap.php # Routes, services, Vision tags
│ ├── Core/ # Database, Auth
│ ├── Controllers/ # Auth, Admin, Page controllers
│ ├── Models/ # Page, Setting models
│ └── Middleware/ # Auth middleware
├── config/
│ └── config.php # Database path, theme path, etc.
├── database/ # SQLite database (auto-created)
├── plugins/ # Drop-in plugins
├── public/ # Web root
│ ├── index.php # Entry point
│ ├── .htaccess # Apache rewrite rules
│ └── assets/ # Public CSS, JS, images
├── theme/ # Theme templates
│ ├── layouts/ # Layout templates (.tpl)
│ ├── partials/ # Reusable partials (.tpl)
│ └── 404.tpl # Custom 404 page
├── views/
│ └── admin/ # Admin panel templates
├── composer.json
├── nginx.conf.example # Nginx configuration example
└── LICENSE
Admin Panel
Access the admin panel at /admin. Default credentials:
- Username: admin
- Password: admin
Features
- Pages - Create, edit, and delete pages with a WYSIWYG editor (Jodit)
- SEO - Meta title and description per page
- Settings - Site title, description, password management
- Draft/Published - Control page visibility
Page Slugs
Each page has a unique slug that becomes its URL. Slugs support nested paths:
aboutserves at/aboutabout/teamserves at/about/teamhomeis the default home page (serves at/)
Slug uniqueness is enforced on save.
Theming
Themes use Vision templates (.tpl files). The theme directory contains layouts, partials, and a 404 template. Public assets (CSS, JS, images) live in public/assets/.
Vision Tags
Fizl3 registers these custom Vision tags for use in templates:
| Tag | Example | Output |
|---|---|---|
css |
{% css 'style.css' %} |
<link> tag |
js |
{% js 'app.js' %} |
<script> tag |
img |
{% img 'logo.png' 'Alt text' %} |
<img> tag |
site_url |
{% site_url 'about' %} |
/about |
current_year |
{% current_year %} |
2026 |
csrf |
{% csrf %} |
Hidden CSRF input field |
Template Inheritance
Layouts define blocks that page content fills:
{# layouts/default.tpl #}
<!DOCTYPE html>
<html>
<head><title>{{ page_title }} - {{ site_title }}</title></head>
<body>
{% include 'partials/header' %}
<main>
{% block content %}
{! content !}
{% endblock %}
</main>
{% include 'partials/footer' %}
</body>
</html>
Plugins
Fizl3 ships with two bundled plugins: Nav (manual navigation from a config file) and NavAuto (auto-generated navigation from published pages). You can also create your own.
See PLUGINS.md for full documentation, usage examples, and a guide to creating custom plugins.
Web Server Configuration
Apache
The included public/.htaccess handles URL rewriting. Ensure mod_rewrite is enabled and AllowOverride All is set for the public directory.
Nginx
See nginx.conf.example for a ready-to-use configuration.
HTTPS
HTTPS redirect rules are included (commented out) in public/.htaccess. For Nginx, the example config includes an HTTP-to-HTTPS redirect block. Uncomment or enable as needed for production.
Security
- Passwords hashed with bcrypt
- CSRF protection on all forms
- Rate limiting on login (10 attempts, 30-minute lockout)
- Session regeneration every 25 minutes
- 12-hour session timeout from last activity
- Secure, httponly, SameSite=Lax session cookies
- Auto-escaped template output (Vision)
- No arbitrary PHP execution in templates
Credits
Based on the original Fizl by Adam Fairholm.
License
MIT - see LICENSE for details.
