Content Delivery Platform for engineering teams. Documentation, APIs, and dynamic content from a single source of truth. No databases. No JavaScript. Pure Lua on OpenResty.
Your documentation lives in GitHub. Legal pages are in your CMS. Help content is hardcoded in the app. No single source of truth.
Update docs? Update the website. Update the API response. Update the mobile app. Edit in three places, test in three places, deploy three times.
WordPress needs a database. Strapi needs Node.js. Contentful needs a SaaS subscription. You just want simple Markdown and a REST API.
Every documentation update requires a rebuild. Static site generators are slow. You need live content updates without waiting.
Most CMS systems are built for websites. You need content served as JSON to your backend, mobile apps, and internal tools.
Enterprise content platforms cost thousands per month. You're a small team. You shouldn't need to break the bank.
We rebuilt the CMS from the ground up for engineering teams. Single source of truth for documentation, legal pages, help content, and dynamic text. Edit once. Deploy everywhere.
📊 Visual: API Architecture Diagram
┌─────────────────────────┐
│ Admin Panel (Live Edit)│
└────────────┬────────────┘
│ Update content
▼
┌─────────────────────────┐
│ Lucretia Core │
│ (Pure Lua) │
└────┬────────────────┬───┘
│ │
▼ ▼
┌──────────┐ ┌──────────────┐
│ HTML │ │ JSON API │
│(Website) │ │(Your Apps) │
└──────────┘ └──────────────┘
Edit Markdown in the admin panel. See changes instantly. No rebuild. No deploy. Just hit save.
Get your content as JSON. Build custom UIs. Sync with mobile apps. Integrate anywhere.
Pure Lua. No Node.js. No Python. No Java. Just OpenResty (which you already run).
Rendered in Lua. Cached intelligently. Serve thousands of requests per second on a single server.
Built-in search engine. Index all content. Fast relevance ranking. No Elasticsearch needed.
Automatic sitemap.xml generation. Meta tags. Open Graph. Everything Google needs.
Intuitive file-manager-like UI. Edit categories. Manage posts. Version history. Draft/publish states.
SSO integration. Role-based access. Audit logs. API rate limiting. Multi-tenant support.
Deploy anywhere. Docker container. Kubernetes. Your laptop. Total control. Your data.
Use: Host technical docs + API reference on one platform. Serve both HTML (for humans) and JSON (for SDK autogeneration).
Use: Store "About Us", "Terms", "Help" content in one place. Fetch via API at runtime. Update without app release.
Use: Single source for Terms of Service, Privacy Policy, Cookie Policy. Embed on website. Serve to mobile apps. Track versions.
Use: Rich product descriptions. Serve to web + mobile. SEO-friendly HTML. API for apps.
Use: Internal wiki for your team. Customer-facing FAQ. Full-text search. No database required.
Use: Each service has its own content API. Federated documentation. Real-time updates across all services.
| Feature | Lucretia | Strapi | Contentful | MkDocs | WordPress |
|---|---|---|---|---|---|
| Live Editing | ✓ | ✓ | ✓ | ✗ | ✓ |
| REST API | ✓ | ✓ | ✓ | ✗ | ✓ |
| No Database | ✓ | ✗ | ✗ | ✓ | ✗ |
| Zero Dependencies | ✓ | ✗ (Node.js) | ✗ (SaaS) | ✗ (Python) | ✗ (PHP + MySQL) |
| Runs on nginx/OpenResty | ✓ | ✗ | ✗ | ✗ | ✗ |
| Full-Text Search | ✓ | ✗ (add-on) | ✗ (add-on) | ✓ | ✓ |
| SEO Auto-Generation | ✓ | ✗ | ✓ | ✗ | ✓ |
| Admin Panel | ✓ | ✓ | ✓ | ✗ | ✓ |
| Self-Hosted Cost | Free | Free | $$$ | Free | Free* |
| Hosting Complexity | Simple | Complex | N/A (SaaS) | Simple | Medium |
Pure Lua on OpenResty. No external runtime required.
GET /api/v1/pages/about?format=json { "id": "about", "title": "About Us", "content": "...", "html": "<h1>About Us</h1>...", "meta": { "updated_at": "2026-06-18T...", "version": 2 } }
A headless CMS is a backend-only content management system. It acts as a content repository, making content accessible via a REST API for display on any device or frontend, without being tied to a specific website theme or template.
For simple text-based content (docs, legal pages, help articles), a full database is overkill. Our file-based storage is Git-friendly, has zero latency for reads, and eliminates the complexity of managing a separate DB server.
Simply make a GET request to `/api/v1/pages/{slug}`. You can specify `?format=json` for raw data or `?format=html` for rendered content. The response includes the content, metadata (like last updated date), and SEO tags.
Yes. The core is written in pure Lua. The only external dependency is OpenResty itself, which provides the Nginx and LuaJIT environment. No Node.js, Python, or Java runtimes are required.