Introduction

Introduction

Welcome to the ElmapiCMS documentation!

Thanks for purchasing ElmapiCMS. These docs help you install it, set it up, and build sites or apps with your content API.

Want to see what is new? Check the Changelog. Upgrading from 3.3? Read Upgrading to 4.0.

How you bought ElmapiCMS

Start with Installation in the sidebar. Bought on CodeCanyon? See For CodeCanyon buyers.

Topics like Configuration and Deployment are the same for every purchase type.

Key features (4.0)

ElmapiCMS is a self-hosted headless CMS for editors, developers, and AI tools.

Modern stack and UI

  • Built with Laravel 13, React, TypeScript, and Inertia.js
  • Needs PHP 8.4 or newer
  • Clean admin UI with dark mode
  • App-wide theme and font settings
  • Multiple projects, with roles and permissions for your team

Content modeling and editing

  • 16 field types, including text, rich text (Lexical, or optional markdown), media, relations, JSON, and more
  • Singletons for one-off pages (like a homepage), and regular collections for lists
  • Saving is not the same as publishing. When you save, you update a draft. Your live site keeps showing the last published version until you click Publish. Publish creates a saved snapshot you can revert to later.
  • Version history, revert, and discard draft changes
  • Bulk publish or unpublish from the content list
  • Duplicate entries, trash and restore, plus searchable tables with filters

Localization

  • Add languages (locales) and set a default
  • Link translations across locales in the dashboard or via the API
  • Singleton entries in new languages are linked automatically
  • Export and import keep translation links

Asset library

  • Grid and table views, search, and filters
  • Image resize, rotate, and crop
  • New images are stored as WebP (original kept when available)
  • See where an asset is used in your content
  • Optional direct upload to S3 or Spaces for large files
  • New SVG uploads are blocked (existing SVGs still work)

AI and agents

  • AI Assistant chat to create projects, collections, fields, and content
  • Inline tools to generate, rewrite, expand, summarize, fix grammar, and translate
  • Translate a full entry to another language in one step
  • MCP Server so Cursor, Claude Code, and similar tools can work with your CMS
  • Use your own key for OpenAI, Anthropic, or Google Gemini

API, auth, and automation

  • REST Content API with filtering, bulk actions, publish, and versions
  • Secure access with project API tokens
  • Authentication for end-user login in your app (signup, sign-in, refresh). Those tokens identify the user only. CMS content changes still use a project API token (usually from your server).
  • End-user API keys (uak_…) with an introspect endpoint
  • Webhooks to notify other services when content changes
  • JavaScript SDK 1.0 (@elmapicms/js-sdk)

Projects and templates

  • Clone projects and save your own templates
  • Import and export projects and collections

Where to go next

GoalDoc
InstallInstallation
Env and queuesEnvironment Variables, Webhook queues
Model contentCollections, Field Types
Edit and publishCreating & Editing Content
APIContent API
End-user authAuthentication
AI / MCPAI Features, MCP Server
Upgrade 3.3 to 4.0Upgrading to 4.0

Server requirements

ElmapiCMS 4.0 runs on Laravel 13 and React. You need:

  • PHP >= 8.4
  • PHP extensions: Ctype, cURL, DOM, Fileinfo, Filter, Hash, Mbstring, OpenSSL, PCRE, PDO, Session, Tokenizer, XML
  • Database: MySQL >= 8.0, MariaDB >= 10.5, or PostgreSQL >= 12.0
  • Web server: Nginx or Apache, serving the public/ folder
  • A queue worker in production (for webhooks, and for finishing direct uploads when that feature is on)
  • To build front-end assets: Composer >= 2.x, Node.js >= 18.x, npm >= 9.x (or pnpm/Yarn)

Folder structure overview

.
├── app/                  # Core Laravel application code
│   ├── Console/          # Artisan commands
│   ├── Events/           # Application events
│   ├── Http/             # Controllers, middleware, and requests
│   ├── Jobs/             # Background jobs (webhooks, upload finalize, ...)
│   ├── Listeners/        # Event listeners
│   ├── Models/           # Eloquent models
│   └── Providers/        # Service providers

├── bootstrap/            # Framework bootstrap
├── config/               # Configuration files
├── database/             # Migrations, factories, seeders
├── public/               # Web root

├── resources/            # Front-end source (React, TS, CSS)
│   ├── js/               # React / Inertia app
│   ├── css/              # Tailwind CSS
│   └── views/            # Blade shell for Inertia

├── routes/               # Routes
├── storage/              # Cache, logs, sessions, uploads
└── tests/                # Tests

Search documentation

Find guides and reference pages