⚡ One specification, two stacks, MIT licensed

The Same Application
In Whichever Stack You Work

Sign-in, roles, an admin area and analytics, built once as a specification and implemented natively in each stack.
Learn it once. Get it wherever the job takes you.

✅ Authentication ✅ Roles and statuses ✅ Admin dashboard ✅ Analytics

Two Boilerplates, One Specification

Each one written in its own stack's plain idioms. Neither is a port of the other.

MVCLM PHP

PHP 8.1 MariaDB Tailwind v4 Apache

A small MVC framework in plain PHP with no packages, no service container and no build step. Seven classes in the core, one front controller, one readable routing table.

Runs on ordinary shared hosting. Copy the files, point the document root at the public folder, run one script.

MVCLM React-Django

React 19 Django 5.2 TypeScript PostgreSQL Docker

A typed React front end against a Django REST API, with cookie-based JWT authentication and the whole stack in Docker Compose: database, backend, frontend, nginx and certbot.

Clone it and run one command. The same command brings up local development and the production deployment.

What Every MVCLM Boilerplate Gives You

The same application, whichever one you clone.

Accounts That Already Work

Registration, sign-in against hashed passwords, remembered sessions, email verification, password reset by single-use link, and account self-delete behind a confirmation.

Roles and Account Statuses

Ordinary users, moderators and administrators, plus an account status that decides who may sign in. A suspended account is turned away at the door and signed out of any session it already holds.

An Admin Area, Not An Admin Plugin

A users list with search, sorting and pagination, a user edit page for role and status, and an analytics page with growth charts, breakdowns and key metrics. Written as part of the application, so you can change it.

Operational Switches

A demo mode that blocks destructive actions so you can put the thing on a public URL, a contact form with a honeypot and a Reply-To header, and a public layout beside a signed-in one.

Why One Specification Across Stacks

Most starter kits are tied to the stack that produced them, so moving between languages means learning somebody else's decisions all over again. MVCLM fixes the application instead of the language: the same roles, the same statuses, the same admin pages, the same demo mode. What changes is the idiom underneath. Once you know how one of them behaves, you know how the next one behaves, and the only thing left to learn is the stack itself.

Where They Are Not The Same

The specification is shared. The stacks are not, and pretending otherwise would waste your afternoon.

MVCLM PHP MVCLM React-Django
Sign in with Google Not included Included, alongside local accounts
Maintenance mode Not included Site-wide banner, gated auth endpoints
Settings changed at runtime Settings file, edited on the server App Settings page in the admin area
Public profile pages Included, optionally signed-in only Not included
Test data One script seeds the database Generate fake users from the admin area
What it runs on Ordinary shared hosting, Apache Docker Compose, nginx, Let's Encrypt
Build step None. The stylesheet ships built Vite, run inside the container
Database MySQL or MariaDB PostgreSQL 16

Both are MIT licensed, and both have a live demo you can sign into before you clone anything.