Architecture Overview
Pubvana CMS is a self-hosted blogging and content platform built on CodeIgniter 4.7 with Shield 1.3 for authentication. It follows strict MVC conventions and is designed to be extended through three first-class extension mechanisms: Plugins, Themes, and Widgets.
This section documents the core architecture so that developers understand the foundation before building extensions.
Foundation
- Framework: CodeIgniter 4.7 (Composer-managed)
- Auth: Shield 1.3 — handles users, groups, tokens, session-based login, and 2FA
- PHP: 8.1+
- Database: MySQL 5.7+ / MariaDB 10.3+
- Template engine: Custom .tpl engine (Pubvana-specific, not Twig or Blade)
Extension Points
| Type | Location | Language | Purpose |
|---|---|---|---|
| Plugin | plugins/{PluginName}/ | PHP + .tpl | Full MVC packages — routes, controllers, models, admin UI |
| Theme | themes/{folder}/ | .tpl + CSS/JS | Visual presentation layer — no PHP |
| Widget | widgets/{folder}/ | .tpl + JSON | Data-driven sidebar/content blocks |
Each extension type is self-contained in its own directory, auto-discovered by the system, and managed through the admin UI.
Key Subsections
- CodeIgniter 4 Foundation — CI4 concepts Pubvana relies on
- Request Lifecycle — step-by-step from HTTP request to rendered response
- Directory Structure — full annotated project tree
- Extension Points — detailed breakdown of plugin, theme, and widget systems