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 signup, sessions, identity JWTs, and user API keys for headless apps.
Frontend Templates
Next.js, Nuxt, and Astro starters with importable Elmapi project packages.
Content Modeling
Collections, 16 field types, relations, groups, singletons, and templates.
Content Versioning
Immutable publish snapshots, draft editing, revert, and discard unpublished changes.
AI & Content Tools
Chat assistant, inline AI tools, one-click translation, BYOK providers.
API & Developer Experience
REST API, JS SDK 1.0, OpenAPI docs, publish/versions, and rate limiting.
Asset Management
Media library, WebP, direct S3 upload, cropping, and usage tracking.
Multi-Project Architecture
Unlimited isolated projects from one install with packages and cloning.
Localization
Multilingual content with translation groups, AI translation, and API locale support.
Webhooks & Automation
Event-driven HTTP callbacks with signed payloads and delivery logs.
Users & Permissions
Roles, granular permissions, project-scoped access, and API token security.
MCP Server
Manage your CMS from Cursor, Claude Code, or any MCP-compatible AI editor.
Deployment & Infrastructure
Self-hosted on Laravel Cloud, Forge, VPS, shared hosting, or Docker.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Next.js
React framework with SSR, ISR, and static generation. Webhook-based revalidation documented.
Nuxt
Vue framework with server routes and hybrid rendering. Full integration guide available.
Astro
Content-focused framework with partial hydration. Fetch content at build time or on demand.
Vue
Progressive JavaScript framework. Use the JS SDK or fetch from the API directly in your components.
Svelte
Lightweight compiler framework. Works with SvelteKit for server-side rendering and API routes.
React Native
Build mobile apps with content from your CMS. Use the JS SDK for type-safe queries on iOS and Android.
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.