Developer Documentation
Welcome to the LusterCMS developer documentation. This section covers everything you need to build plugins, themes, and integrations.
Architecture Overviewβ
LusterCMS is built with a modern, modular architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (Next.js) β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β Admin UI β β Editor β β Plugins UI β β
β β (React) β β (Puck) β β (Dynamic) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β API Layer β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β GraphQL (Strawberry) β REST (FastAPI) β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Backend (Python) β
β βββββββββββββ βββββββββββββ βββββββββββββ βββββββββββ β
β β Core β β Plugins β β AI β β Hooks β β
β β Services β β (Pluggy) β β Service β β System β β
β βββββββββββββ βββββββββββββ βββββββββββββ βββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Layer β
β βββββββββββββ βββββββββββββ βββββββββββββ β
β β PostgreSQLβ β Redis β β Y.js β β
β β (Data) β β (Cache) β β (Collab) β β
β βββββββββββββ βββββββββββββ βββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Tech Stackβ
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, React 18, TypeScript, MUI |
| Editor | Puck (visual builder) |
| API | FastAPI, Strawberry GraphQL |
| Backend | Python 3.11+, SQLAlchemy 2.0 |
| Plugins | Pluggy (hook system) |
| Database | PostgreSQL 15+ |
| Cache | Redis |
| Collaboration | Y.js, WebSocket |
| AI | OpenAI, Anthropic (configurable) |
Key Conceptsβ
Pluginsβ
Plugins extend LusterCMS without modifying core code:
- Add new admin pages
- Extend GraphQL/REST APIs
- Hook into content lifecycle
- Create custom blocks
Themesβ
Themes control the visual appearance:
- Define color schemes
- Configure typography
- Create block styles
- Build page templates
Hooksβ
The hook system allows plugins to:
- React to content events
- Modify data before/after operations
- Extend core functionality
β Hooks Reference
APIβ
Two API options:
- GraphQL β Primary API for all operations
- REST β Helper endpoints for specific tasks
β API Reference
Quick Linksβ
π Build a Plugin
Create your first plugin
π¨ Create a Theme
Design custom themes
π API Reference
GraphQL & REST docs
β¨οΈ CLI Tools
Command line utilities
Development Environmentβ
Prerequisitesβ
- Python 3.11+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 15+ (or use Docker)
Quick Startβ
# Clone the repository
git clone https://github.com/lustercms/lustercms.git
cd lustercms
# Start with Docker
docker compose up -d
# Or run locally
pip install -r requirements.txt
npm install
python main.py # Backend
npm run dev # Frontend
Environment Variablesβ
Key variables to configure:
DATABASE_URL=postgresql://user:pass@localhost/lustercms
REDIS_URL=redis://localhost:6379
OPENAI_API_KEY=sk-...
SECRET_KEY=your-secret-key
See Environment Variables for full list.
Getting Helpβ
- Documentation β You're here!
- GitHub Issues β Bug reports and feature requests
- Email β hello@lustercms.com
π Ready to Build?
Start with the Plugin Development Guide to create your first extension.