Self-host the MIT-licensed, Go-native engine free forever. One ~45 MB image, real SQL tables on PostgreSQL, MySQL, or MSSQL. Add a license key to switch on any of 49 plugins. No lock-in, no phone-home, and no surprise bill.
Built for indie devs, bootstrapped SaaS, and teams who'd rather own the stack than rent it.
Be the first to know · No spam · Unsubscribe any time
# One image. Free without a key, paid with one. FROM ghcr.io/lyeve/cms:latest # Optional: sets which plugins activate at boot ENV CMS_LICENSE_KEY=cms_live_xxxxxxxxxxxx
That's the entire upgrade path. Rebuild and restart. Done.
Visual schema builder. Instant REST and GraphQL. A content editor that feels like the admin you'd build yourself, packed into one ~45 MB image.
Visual schema editor with field types, relations, and indexes.
CRUD records with search, filtering, and status workflows.
Upload, browse, and manage files with S3 or local storage.
All 49 plugins ship inside one image. Your license key decides which ones turn on at boot. No sidecar, no CDN download. It idles around 80 MB, cold-starts in under 200 ms, and runs fine on a $5 VPS.
Every collection becomes a real table, not a JSONB blob. Query it with plain SQL, index anything, and dump it with your database's own tools. The same schema runs on PostgreSQL, MySQL, or MSSQL.
REST API, schema builder, RBAC, MFA, drafts, revisions, locales. All MIT licensed, all complete, free for as long as you run it.
Add CMS_LICENSE_KEY to your env. The JWT decides which compiled-in plugins activate. No sidecar, no CDN download, no operator.
No account, no signup, no cloud console. Pull an image, point it at your database, and you have a CMS. Paid plugins are one env var away.
docker run ghcr.io/lyeve/cms, point it at PostgreSQL, MySQL, or MSSQL, and you have a running CMS. No account, no signup.
Design schemas in the visual builder and they turn into real SQL tables, with an auto REST API, RBAC, drafts, and locales. All free, all yours.
Add CMS_LICENSE_KEY and the key unlocks the plugins you bought, like GraphQL, AI, SSO, and S3. No redeploy, no sidecar, no CDN download.
No trial period. No feature degradation. The core never expires. You get a production-grade CMS before spending a cent.
Full CRUD, cursor pagination, filtering, full-text search. Auto-generated from your schema.
Drag-drop canvas with pan/zoom, all field types, belongs_to / has_many / many_to_many relations.
Role-level and policy-level access control. Field-level masks per role.
Stream live content events per schema. Backpressure-safe, 1000 concurrent clients per replica.
Per-record _status column, revision history, single-tenant or multi-tenant safe.
Per-record _locale column, sys_locales table, content reads scoped by header or query param.
Local filesystem driver out of the box. Stdlib JPEG/PNG resize. Add S3 plugin later if you need it.
Google and GitHub PKCE, JWKS validation, TOTP with backup codes. All in the free engine.
Single dialect adapter. One codebase, three databases. Pick the one you already run.
cms schema export / apply, migrations, seed, generate. Full schema-as-code workflow.
Every mutation in sys_audit_log. OpenTelemetry tracing, Prometheus metrics, JSON logging.
sys_jobs table + cron scheduler. POST any URL on a schedule with a JSON payload.
Every plugin is its own monthly subscription, priced by how much it takes to build, from $0.25/mo. Stack them and save: 10% off at two plugins, up to 30% off at six. The whole catalog, all in, is $19.95/mo. One image ships them all, and your license key decides what switches on. You get a 7-day offline grace and a 7-day cancel grace, and your data is never touched.
FROM ghcr.io/lyeve/cms:latest # Always required ENV DATABASE_URL=postgres://... ENV JWT_SECRET=change-me-32chars # Add this to activate paid plugins ENV CMS_LICENSE_KEY=cms_live_...
Argon2id, MFA, RBAC, audit log, signed webhooks, JWT rotation. None of these live behind a paid tier. They ship with the free engine.
Found a vulnerability? Email [email protected] rather than opening a public GitHub issue.
Around 80 MB idle, against 400 to 500 MB for Strapi, Directus, and Payload. Here's where we win, where we tie, and where they still beat us.
| Feature | LyEve ← you | Strapi | Directus | Payload |
|---|---|---|---|---|
| Runtime | Go | Node.js | Node.js | Node.js |
| Engine license | MIT | MIT | BSL 1.1 ⚠ | MIT |
| REST API | ✓ free | ✓ free | ✓ free | ✓ free |
| GraphQL | $1.50 /mo | ✓ plugin | ✓ free | ✓ free |
| gRPC | $1.00 /mo | ✗ | ✗ | ✗ |
| Multi-tenant | $3.00 /mo | manual | manual | manual |
| Per-plugin pricing | ✓ | ✗ | ✗ | ✗ |
| Volume discount | up to 30% off | ✗ | ✗ | ✗ |
| Indie / OSS discount | ✓ program | ✗ | ✗ | ✗ |
| MFA / TOTP | ✓ free | cloud only | ✓ | ✗ |
| Audit log | ✓ free | enterprise | ✓ | partial |
| Idle RAM (est.)(Approximate at idle) | ~80 MB | ~500 MB | ~400 MB | ~400 MB |
| Container size | ~45 MB | ~320 MB | ~220 MB | ~180 MB |
| License activation | ENV var | dashboard | dashboard | N/A |
⚠ BSL 1.1 = Business Source License. Not OSI open source; converts to MIT after 4 years.
Container size and RAM estimates are approximate at idle with a minimal schema. Actual usage varies.
Side by side with Strapi, Directus, and Payload. Click any bar to read the methodology behind it.
Idle RAM
Empty database, no traffic, default config.
~80 MB
idle RAM
on a $5 VPS
< 50 ms
p99 REST + GraphQL
at 1000 RPS
< 100 ms
plugin activation
in-process, no subprocess
Checkout is handled end to end by PayPal. Pay with your PayPal balance or any major credit or debit card. We never see or store your card details. Both subscriptions and one-time purchases work, and you can cancel anytime from the customer portal.
More payment methods are on the roadmap.
v1.0 is live. Billing, licensing, and the customer portal are in production. Below is the unedited list of what's done and what's next.
Indie maker, multi-tenant SaaS, or all-in. Each preset is just a plugin cart underneath. Change one click and the price changes with it.
Self-hosted. MIT core. Written in Go. Stored in real SQL tables. Your data, your infrastructure, your rules.
No spam · launch notification only · unsubscribe any time