Skip to content

Repository files navigation

Lucid CMS

Tests NPM Version NPM Downloads License


Caution

Lucid CMS is currently in alpha. AI access will launch alongside the beta release. Until then, expect breaking changes while APIs and product surfaces are finalized.


Lucid CMS is a TypeScript-first headless CMS for teams that need flexible content modeling, polished editorial workflows, and control over where their content platform runs.

Developers get a code-first collection system, typed APIs for consuming content, runtime and database adapters, and plugin support for shaping Lucid around real project needs. For content teams, Lucid provides a modern editing experience with media management, release review, scheduled publishing, localization, and AI content tools.

✨ Features

  • Model content your way: code-defined collections, reusable bricks, custom fields and localization.
  • Manage publishing with confidence: environments, revisions, workflow stages, release review, approvals, and scheduled publishing.
  • Organize teams: roles, granular permissions, and integrations.
  • Handle media and email properly: folders, private media, shareable links, image processing, cropping, email logs, previews, and redaction policies.
  • Extend it for your project: plugins, service hooks, toolkit, and custom routes let you add content behavior, integrations, and side effects.
  • Choose your infrastructure: Node.js or Cloudflare Workers, PostgreSQL, LibSQL, SQLite, D1, queues, KV, email, storage.
  • Use AI where it helps: generate and edit images, generate alt text, create custom field values, and track AI usage.

AI features require a subscription with Lucid. This is planned to become publicly available with the beta release.

⚙️ Runtime Adapters

  • Node.js for traditional servers, VPS deployments, local development, and full Node runtime access.
  • Cloudflare Workers for edge deployments with generated Wrangler configuration, bindings, scheduled handlers, and queue handlers.

💾 Database Adapters

🔌 First-Party Plugins

  • Pages: adds hierarchical documents, slugs, parent pages, and computed full slugs for website page collections.
  • Filesystem: stores uploaded media on the local filesystem.
  • S3: stores media in AWS S3, Cloudflare R2, or another S3-compatible provider.
  • Cloudflare R2: uses a Cloudflare R2 binding with optional S3-compatible HTTP fallback.
  • Sharp: uses Sharp for Lucid's on-demand image processing.
  • Cloudflare Images: uses the Cloudflare Images binding for on-demand image processing in Workers.
  • Nodemailer: sends email through a custom Nodemailer transport.
  • Resend: sends email through Resend and supports Resend webhooks for delivery tracking.
  • GitHub Auth: adds GitHub as an authentication provider.
  • Google Auth: adds Google as an authentication provider.
  • Microsoft Auth: adds Microsoft as an authentication provider.
  • Worker Queues: registers a Node worker-thread queue adapter for background jobs and scheduled work.
  • Cloudflare Queues: registers a Cloudflare Queues adapter.
  • SQLite KV: registers a local SQLite-backed KV adapter.
  • Redis: registers a Redis-backed KV adapter.
  • Cloudflare KV: registers a Cloudflare KV adapter.
  • Redirects: adds a manually managed, environment-aware redirects collection for website integrations.

🧩 Framework And Client Packages

  • Astro: the official integration for running Lucid alongside Astro.
  • Client: typed client for public document, media, and locale endpoints.
  • Rich Text: shared Tiptap extensions and rich text conversion utilities.

🏁 Getting Started

Follow the installation guide for the full setup flow.

For a local Node.js project, the smallest useful setup is typically:

npm install @lucidcms/core @lucidcms/runtime-node @lucidcms/db-sqlite @lucidcms/plugin-filesystem

Then create a lucid.config.ts file with a runtime, database adapter, secrets, media settings, and collections. SQLite plus the filesystem plugin is the fastest way to explore Lucid locally without external infrastructure.

Or deploy our Cloudflare template by clicking the button below.

Deploy to Cloudflare

📊 Anonymous Telemetry

Telemetry is enabled by default and sends anonymised technical data about the Lucid version, setup, enabled features, coarse project size, and whether dev, serve, or build succeeds. Events use a random project identifier and never include content, names, paths, environment values, user data, secrets, error messages, or stack traces.

Disable it with telemetry: false in your Lucid config, or set LUCID_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1.

📄 Licensing

Lucid CMS is licensed under the MIT License.

About

Lucid CMS helps teams build and manage structured content with flexible TypeScript configuration, polished publishing workflows, and deep extensibility.

Topics

Resources

Stars

22 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages