ElmapiCMS 4.0

Everything ElmapiCMS can do for your team

A self-hosted headless CMS with Authentication, frontend templates, content versioning, built-in AI, asset management, REST API, webhooks, multi-project architecture, and MCP integration. All included out of the box.

Authentication

End-user auth for memberships, accounts, and gated apps

Ship signup and sessions for members, customers, and learners. Identity JWTs stay separate from project API tokens used for content.

End-User Authentication

Signup, sign-in, refresh, and logout APIs for members, customers, and learners.

Identity-Only JWTs

Authentication tokens identify the user. CMS content and admin routes stay on Sanctum project tokens with explicit abilities.

User API Keys

Issue uak_ keys for your own apps, with introspection from a project token. Suspend users and cap concurrent sessions.

Email Verification & Settings

Optional email verification, dedicated Authentication settings pages, and session controls for production apps.

Frontend Templates

Start from a working site, not an empty schema

Importable Elmapi project packages paired with Next.js, Nuxt, and Astro frontends. Browse demos and filter by framework or capability.

Next.js, Nuxt, and Astro

Production starters across the major meta-frameworks, each with an importable Elmapi project package.

Auth-Ready Examples

Keenfold Academy (membership) and Sable Goods (storefront accounts) show Authentication wired into real apps.

i18n and Vertical Sites

Atlas Group for multilingual marketing, Cove for SaaS marketing, Hearthfold for restaurant, Meridian for agencies.

Browse and Filter

See titles, descriptions, screenshots, and demo URLs on the Templates page. Filter by framework and capability.

Content Modeling

Build schemas that match how your app actually works

Define collections with 16 field types, relations, groups, and singletons. Save structures as templates and reuse them across projects. Your API stays predictable as projects grow.

Collections

Define content schemas like Blog Posts, Products, or Pages. Each collection gets its own API endpoint automatically.

16 Field Types

Text, Long Text, Rich Text, Slug, Email, Password, Number, Enumeration, Boolean, Color, Date, Time, Media, Relation, JSON, and Field Group.

Relations

Link collections with one-to-one and one-to-many relationships. Relations are fully queryable through the API with filters and sorting.

Field Groups

Create nested and repeatable field sets inside a collection. Useful for FAQ sections, feature lists, or any repeating content block.

Single-Entry Collections

Define collections that hold exactly one entry — perfect for homepage content, site settings, or about page data.

Field Validations

Set fields as required, unique, or constrained by min/max values. Custom error messages keep your content clean and consistent.

Collection Templates

Save any collection structure as a reusable template. Apply it across projects to keep schemas consistent without rebuilding from scratch.

Drag-and-Drop Reordering

Reorder collections in the sidebar and fields within collections using drag-and-drop. Keep your workspace organized the way you want.

Lexical Rich Text Editor

Block-based editing with source code view, fullscreen mode, and media insertion directly from your asset library.

Content Versioning & Management

Edit drafts safely. Publish immutable snapshots.

Saving no longer flips live state. Publish, unpublish, discard drafts, and revert from version history, including singletons.

Draft vs Published Snapshots

Save as draft without changing the live API. Publish mints an immutable snapshot. state=published serves that snapshot, not dirty draft fields.

Version History

Preview old snapshots, revert, and add labels. Retention is configurable with CONTENT_VERSIONS_PER_ENTRY.

Trash & Restore

Soft-delete entries to a trash folder. Restore them any time or permanently delete when you're sure. Bulk trash and restore supported.

Duplicate Entries

Clone any entry with one click. The copy is saved as a draft so you can modify it without affecting the original.

Advanced Data Tables

Search, sort, and filter entries with column controls. Customize column visibility, page size, and sort order. Preferences are saved per user.

Bulk Publish & Actions

Bulk publish, unpublish, trash, delete, or restore. Manage content at scale without clicking through entries one by one.

AI & Content Tools

Generate, translate, and refine content right where you write

Built-in AI chat assistant, inline content tools on every text field, and one-click entry translation. Use your own API key from OpenAI, Anthropic, or Google Gemini.

AI Chat Assistant

A sidebar chat panel that can create projects, build collections with fields, manage entries, navigate the CMS, and answer questions — all through conversation.

Inline Content Tools

Click the sparkle icon on any text field to generate, rewrite, expand, summarize, translate, or fix grammar. Works in text, long text, and rich text fields.

Tone Rewriting

Rewrite content as Professional, Casual, Friendly, Formal, or Concise. Or provide custom instructions like "make it more persuasive" or "simplify for beginners".

One-Click Entry Translation

Translate an entire content entry to any locale with one click. AI translates all text fields, preserves rich text formatting, generates slugs, and copies media and relations.

Expand & Summarize

Turn brief notes into full paragraphs with Expand, or condense long content into key points with Summarize. Great for excerpts and meta descriptions.

BYOK — Bring Your Own Key

Use your own API key from OpenAI, Anthropic, or Google Gemini. No AI markup, no hidden fees, no vendor lock-in. Switch providers any time.

API & Developer Experience

Ship content to any frontend through a clean REST API

Every collection gets a JSON API automatically. Query with 13 filter operators, expand relations, paginate results, and integrate with the JavaScript SDK or OpenAPI docs.

REST Content API

Every collection gets a JSON API automatically. Query entries with filters, sorting, pagination, and relation expansion.

Advanced Filtering

13 filter operators including eq, gt, like, in, between, null, and more. Combine with AND/OR logic and filter across relations.

JavaScript SDK

The @elmapicms/js-sdk package gives you a type-safe client for querying content, managing assets, and working with entries from any JavaScript runtime.

Admin API

Programmatically create and manage collections, fields, and schema through the API. Automate CMS setup in CI/CD or build tooling on top.

OpenAPI / Swagger UI

Interactive API documentation built in. Explore endpoints, test queries, and see response schemas directly from your CMS instance.

API Tokens & Scoping

Issue tokens with scoped abilities — read, create, update, delete, admin. Control exactly what each integration or frontend can access.

Public API Option

Enable unauthenticated GET requests for public content. Skip tokens for marketing sites and blogs where content is already public.

Rate Limiting

Configurable API rate limiting via API_RATE_LIMIT_PER_MINUTE (default 300). Useful when local template builds hit 429s.

Publish & Versions API

Publish, unpublish, discard draft, and manage immutable versions from the API or the official JS SDK namespaces.

Asset Management

Keep media organized and ready for delivery

Upload, tag, crop, and manage files in a central library. Connect S3-compatible storage for production scale or use local storage for simpler setups.

Asset Library

A central media hub per project. Upload, preview, search, and manage images, videos, audio, and documents in one place.

WebP Optimization

New image uploads store an optimized WebP copy while keeping the original when available. Resize and rotate in the asset editor.

Direct S3 Upload

Optional presigned and multipart upload straight to S3 or Spaces for large files, bypassing PHP upload limits.

Image Cropping & Usage

Crop images in the CMS and see where each asset is used across content entries.

Grid & List Views

Toggle between grid and list layouts. Sort by name, size, date, or type. Filter by file type and date range for fast lookups.

API Asset Endpoints

List, get, upload, bulk upload/metadata, and delete assets through the REST API.

Multi-Project Architecture

Run unlimited projects from one installation

Each project is fully isolated with its own collections, entries, assets, and API keys. Spin up new projects from templates instead of rebuilding from scratch.

Unlimited Projects

Run as many isolated content projects as you need from a single ElmapiCMS installation. Each project has its own collections, entries, assets, and API keys.

Portable Packages

Export and import versioned project or collection packages (JSON or ZIP), including referenced assets and translation links.

Project Cloning

Duplicate a project's collection structure to quickly set up similar projects without manually recreating schemas and field configurations.

Your Own Templates

Save project and collection blueprints you reuse across clients, then kick off the next site without rebuilding fields by hand.

Localization

Ship multilingual content from one backend

Add locales, link translations, and deliver content by language through the API. AI translation handles the heavy lifting so your team can focus on quality.

Multiple Locales

Add any number of ISO locale codes per project. Set a default locale for new entries and manage content across languages from one backend.

Translation Groups

Link entries across locales in translation groups. Each translation is an independent entry, so you can customize content per locale without constraints.

AI-Powered Translation

Translate entire entries to any locale with one click. AI handles all text fields, preserves HTML formatting, generates proper slugs, and copies non-text fields.

API Locale Support

Fetch content by locale through API parameters. Query linked translations across locales to build multilingual frontends with consistent data.

Webhooks & Automation

Connect content events to your app and automation stack

Trigger external processes when content changes. Signed payloads, delivery logs, and automatic retries keep your integrations reliable.

Content Event Webhooks

Trigger HTTP POST requests when entries are created, updated, trashed, deleted, published, unpublished, or restored.

Signed Payloads

Optional HMAC SHA-256 signatures on every webhook delivery. Verify payloads on the receiving end to ensure requests come from your CMS.

Delivery Logs & Retries

View delivery attempts, responses, and status codes. Failed deliveries retry up to 3 times with exponential backoff automatically.

Collection & Source Filters

Configure webhooks to fire only for specific collections or sources (CMS dashboard vs API). Include full entry payloads or keep it lightweight.

Users & Permissions

Control who can access what, down to the field level

Create roles with granular permissions, scope access per project, and issue API tokens with specific abilities for each integration.

Roles & Permissions

Create custom roles with granular permissions for users, projects, collections, fields, content, assets, and settings.

Project-Scoped Access

Control which users can access which projects. Set per-project permissions so team members only see what they need.

API Token Security

Issue least-privilege tokens with specific abilities. Rotate tokens as needed and scope access to exactly what each integration requires.

Team Management

Add team members, assign roles, and manage profiles. Each user gets their own dashboard preferences and table settings.

MCP Server

Manage your CMS directly from Cursor or Claude Code

The official MCP server connects AI editors to your ElmapiCMS instance. Create collections, write content, and manage assets through natural language — without switching contexts.

Official npm Package

Install @elmapicms/mcp-server from npm and connect your AI editor in minutes. Configure per-project access with API tokens.

17 Built-In Tools

Manage projects, collections, fields, entries, and assets through natural language. The full CRUD lifecycle is available from your editor.

Schema-Aware Resources

Built-in documentation for field types, collection structures, and query syntax. Your AI editor understands your CMS schema without extra context.

Advanced MCP Queries

Use all 13 filter operators, OR groups, relation filtering, sorting, and pagination directly from Cursor or Claude Code.

Deployment & Infrastructure

Self-hosted with full source code and predictable pricing

Deploy anywhere your team is comfortable. One-time payment, no per-project fees, no user limits. You own the code and control the infrastructure.

Self-Hosted & Full Source Code

Run ElmapiCMS on your own infrastructure with complete source code access. Audit, extend, and customize anything you need.

Flexible Deployment

Deploy on Laravel Cloud, Forge + VPS, shared hosting (cPanel, Plesk), or Docker. Choose the setup that matches your team's existing workflow.

One-Time Pricing

Pay once, use forever. No per-project fees, no user limits, no recurring license costs. Just your hosting expenses.

Import & Export

Import and export projects, collections, and content as JSON, CSV, or Excel. Move data between environments or create backups with ease.

Frontend Compatibility

Works with the frameworks you already use

ElmapiCMS delivers content through a standard REST API, so it works with any frontend. Official guides and starter templates are available for the most popular frameworks.

Ready to see it in action?

Try the live demo, explore the documentation, or get ElmapiCMS and start building with unlimited projects from one self-hosted setup.