Engine
Lightweight multi-template PHP CMS for small-business sites
- Three production-ready industry templates dentist, hair salon, modular homes
- Single Engine.php core class drives every template
- Admin panel dashboard, editor, media, messages, settings, setup
- File-based JSON storage no database required
- SEO sitemap.php + robots.php + animate.js scroll effects
- Strict types throughout PHP 8 hardening
Overview
Engine is the opposite of Dragon Island, a deliberately small PHP CMS aimed at landing pages for local businesses. One Engine.php core class, three pre-built templates (dentist, hair salon, modular homes), JSON for storage. Drop it on shared hosting and it just works.
Problem
Small businesses (dentists, salons, contractors) don't need WordPress. They need five pages, an editable header, a contact form and SEO that doesn't make them buy a plugin. Most "lightweight CMS" projects still pull a database and 200MB of vendor code.
Solution
Engine.php is the only class that matters, it reads JSON from admin/data/, renders templates and routes the admin panel. Each template is a separate directory (template-dentist/, template-hair-salon/, template-modular-homes/) sharing the same data contract.
Admin panel covers what real clients need: dashboard, content editor, media uploader, message inbox (contact form submissions), site settings, initial setup wizard. SEO basics ship out of the box: sitemap.php and robots.php generate dynamically. animate.js adds scroll-triggered reveals without dragging in a full library.
Tech rationale
- PHP 8 strict_types: catches type bugs at the boundary, no surprises
- JSON files instead of MySQL: backup is a tarball, deployment is rsync
- Vanilla JS: clients don't need build tools to make a copy change
- Per-template directory: designers can fork a template without touching core
.htaccessrouting: works on every shared host since 2005
Lessons learned
- "Boring tech" wins when the maintenance window is a single afternoon a year
- JSON storage scales further than you'd think for landing-page CMS use cases
- Separating templates as directories beats abstracting them into a theme engine