enlivenapp/fizl3

Fizl3 - Simple, lightweight CMS

Maintainers

Package info

github.com/enlivenapp/Fizl3

Type:project

pkg:composer/enlivenapp/fizl3

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

3.0.0 2026-05-07 08:35 UTC

This package is auto-updated.

Last update: 2026-05-07 08:48:57 UTC


README

Stable? Not Quite Yet License PHP Version Monthly Downloads Total Downloads GitHub Issues Contributors Latest Release Contributions Welcome

Fizl3

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:

  • about serves at /about
  • about/team serves at /about/team
  • home is 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.