KodePress#
KodePress is a block-based website CMS built on Laravel and MySQL. It is designed so that a non-technical owner can build and run a complete website — pages, blog, menus, mega menus, header, footer, theme — from the admin panel alone, without touching code.
Design target: a brand-new user publishes their first page within 10 minutes, with no training.
- Stack: Laravel 11 · PHP 8.3 · MySQL 8 · Blade · Livewire 3 · Alpine.js · Vite
- Hosting target: shared cPanel with SSH only — no Redis, no queue workers, no Docker, no root
- Languages: Bengali (bn) + English (en) out of the box, every label translated
- Core idea: everything is a block — pages, headers, footers and mega-menu panels all use the same section/column/block tree and the same editor
Status#
This repository currently contains documentation only. No application code has been generated yet. Implementation is planned in phases — see docs/16-roadmap-phases.md.
The documentation is published for review at https://demo.kodepress.com (private preview,
noindex). When the application exists it takes that document root and the docs move to /docs.
Hosting, the deploy command and the request path are described in ops/README.md.
| Item | State |
|---|---|
| Specification / documentation | Complete (this docs/ tree) |
| Phase 0 — project setup | Not started |
| Phase 1 — core page builder | Not started |
| Phase 2 — content features | Not started |
| Phase 3 — navigation & layout parts | Not started |
| Phase 4 — simplification & control | Not started |
| Phase 5 — scale (multi-site, plugins) | Not started |
Documentation#
Start at docs/README.md. The short version:
| Document | What it answers |
|---|---|
| 01 Overview | What KodePress is, who it is for, what it will not do |
| 02 Architecture | Stack, request lifecycle, folder layout, runtime constraints |
| 03 Database schema | Every table, column, index and foreign key (MySQL 8 DDL) |
| 04 Block system | The block folder contract and the content JSON format |
| 05 Page builder | Editor UX, autosave, undo/redo, publish |
| 06 Blog, taxonomy & SEO | Posts, categories, tags, sitemap, redirects |
| 07 Navigation & mega menu | Menu manager, item types, visibility, mega panels |
| 08 Header & footer | Template parts, presets, assignment conditions |
| 09 Theme tokens | Design tokens and generated CSS |
| 10 Media & forms | Media library, image pipeline, form builder |
| 11 Roles & security | Four roles, permissions, hardening rules |
| 12 Internationalisation | bn/en, URL strategy, Bengali typography |
| 13 Caching & performance | HTML file cache and invalidation rules |
| 14 Installation & deployment | Local setup and cPanel deploy (git-only) |
| 15 Testing & QA | Test strategy, per-phase suites, acceptance checklist |
| 16 Roadmap / phases | Phase 0–5 scope and exit criteria |
| 17 Extensibility | Adding blocks, block packs, plugin system |
| 18 Glossary | Terms used across these documents |
| ADRs | Decisions and why they were taken |
Conventions for contributors (and for Claude Code)#
Project rules live in CLAUDE.md. They are binding: Laravel conventions only, no placeholder code, every string translated, and nothing that needs a service the shared host does not have.
Source of this specification#
Derived from easy-cms-claude-code-prompt.docx (the original "Easy CMS" master prompt, kept in this
folder for reference). Where this documentation and the docx disagree, this documentation wins;
the differences are recorded in docs/adr/README.md.
KodePress documentation · generated from the Markdown sources by
tools/build-docs-site.py · internal preview, not indexed.