
ElmapiCMS
Self-Hosted Headless CMS for Building Content APIs
I’ve been building ElmapiCMS for a while. It’s a Laravel + React headless CMS for developers.
But something kept bothering me.
AI tools were exploding everywhere, yet most CMS platforms were just adding a simple “Generate text” button and calling it AI integration.
So I decided to go deeper and turn the CMS itself into something AI-native.
Here’s what changed.
1. From text generation to schema-aware AI
Instead of generating random paragraphs, I made the AI aware of:
Collection name
Field labels
Existing field values
Locale
Now when you generate content, the output is influenced by the actual structure of your data model.
That small shift made a big difference in quality and relevance.
2. Conversational schema creation
I added an AI Chat Assistant that can:
Create projects
Create collections
Define fields
Generate entries
You can describe a “blog with title, slug, content and author relation” and it scaffolds it.
This was technically much harder than adding content generation, because it touches schema integrity and validation.
3. One-click translation
Since the structure is already defined, I added full entry translation per locale.
Instead of translating field by field, you translate the whole entry in one action.
For agencies handling multilingual clients, this is powerful.
4. MCP server for AI-driven workflows
This was the most interesting part.
I implemented an MCP server so external AI agents can interact directly with the CMS:
Create collections
Modify schema
Insert content
Query structured data
The idea is to support vibecoding workflows, where AI doesn’t just write frontend code but can shape the backend in a controlled way.
5. The reality check
Technically, this is the strongest version I’ve built.
Commercially? Visibility is still hard.
Adding AI features does not magically solve distribution.
What I learned:
Depth matters more than surface AI features
Schema context dramatically improves output quality
Multi-provider support adds complexity fast
Distribution is harder than development
I’m still figuring out the go-to-market side.
If you’re building in the CMS, AI tooling, or developer infrastructure space, I’d love to hear from you.
For almost twenty years, my work revolved around client projects. Every new website, app, or internal tool had one thing in common: I had to build some kind of CMS backend for it.
Sometimes it was custom Laravel panels, sometimes it was WordPress with custom post types, sometimes hybrid setups. Over time, the problems repeated themselves.
Here are the main pain points that pushed me to build my own headless CMS.
1. Every project needed a CMS, but every CMS had to be rebuilt
Even when the requirements were similar, I kept writing the same migrations, controllers, CRUD logic, validation, media handling, user management, and API endpoints.
I tried to template it, but templates always drift. They solve the first few steps but not the ongoing complexity.
I wanted a backend where:
projects could be created in minutes
collections and fields didn’t require writing migrations
APIs were generated automatically
I could skip the entire “bootstrap phase” of backend development
2. WordPress and traditional CMSs didn’t fit modern workflows
WordPress can do a lot, but once you’re working with Vue, React, or a custom single page app, the friction grows.
I wanted a backend that didn’t care about what frontend framework I chose.
Use React? Fine.
Use Vue? Fine.
Use Next, Nuxt, Svelte, plain JS, or even mobile apps? Same API.
A single backend powering any frontend with no extra plugins, no weird data structures, no custom routing hacks.
3. Multi project support is rare
Most CMS solutions assume one site per install.
My workflow never worked like that. I often needed:
multiple client projects
a shared admin user system
isolated data per project
the ability to quickly create, test, or destroy projects
A multi project architecture was essential for me, and almost no lightweight CMS offered it.
4. I wanted consistency in API design
Every custom API I built had slightly different patterns. Different naming, different filtering operators, different pagination logic.
Over time this creates chaos.
I wanted:
consistent REST endpoints
predictable filtering and sorting
predictable responses
token-based access control that didn’t require rewriting policies every time
5. Speed of setup matters
When you work on client projects, the faster you get to “working prototype,” the better.
A backend setup that takes an hour is already too slow.
I wanted something I could install on shared hosting, VPS, or anything that runs PHP, and start building immediately.
After repeating the same frustrations over many years, I started building a tool for myself. It grew, improved, and eventually became ElmapiCMS.
I’ll share more about the architecture and decisions behind it in follow-up posts, but this post captures the core reasons it exists.
1 Like
Comment
ElmapiCMS 3.2 is here with a host of powerful new features and improvements that make content management even more flexible and developer-friendly. This update focuses on enhancing multilingual capabilities, improving workflow efficiency, and providing better resources for developers.
Translations
ElmapiCMS 3.2 introduces built-in translations support, making it easier than ever to manage multilingual content:
- Link content entries across different locales
- Seamlessly switch between languages in the admin panel
- Maintain content relationships across translations
- Perfect for international websites and applications
Import/Export
Streamline your content workflow with the new import/export feature:
- Export your projects, collections to JSON
- Import projects, collections from JSON
- Import/Export content in bulk to JSON, CSV, Excel formats
- Perfect for content migration, backups, and bulk updates
- Works seamlessly with AI tools for content generation
New Field Type: Field Group
Organize your content structure better with the new Field Group field type:
- Group related fields together for better organization
- Make the group repeatable for contents like features, faq, etc.
- Create more intuitive content editing experiences
- Reduce clutter in complex content models
- Improve content editor productivity
New Frontend Template: Landing Page
Get started faster with the new [**Landing Page**](https://landingnextjs.elmapicms.com) frontend template:
- Next.js landing page powered by ElmapiCMS
- Modern, responsive design
- Ready to customize and deploy
- Perfect for marketing pages and product launches
Examples Repository
We've created a examples repository to help you get started:
- GitHub Repository: [github.com/elmapicms/elmapi3-examples](https://github.com/elmapicms/elmapi3-examples)
- Real-world examples for Next.js and Nuxt.js
- Pagination examples with multiple strategies
- Translations examples with language switchers
- Ready-to-use project templates
- More will be added continuously
Tutorials
Access step-by-step guides and tutorials on our website:
- Tutorials Page: [elmapicms.com/tutorials](https://elmapicms.com/tutorials)
- Learn how to build multilingual blogs
- Master pagination strategies
- Create portfolio websites with AI assistance
- Generate complex API queries with ChatGPT
New JavaScript SDK
Developers can now use the official JavaScript SDK for easier integration:
- NPM Package: [@elmapicms/js-sdk](https://www.npmjs.com/package/@elmapicms/js-sdk)
- TypeScript support included
- Simplified API interactions
- Better developer experience
Bug Fixes and Improvements
ElmapiCMS 3.2 also includes numerous bug fixes and performance improvements:
- Enhanced stability across all features
- Improved error handling
- Better performance optimizations
- Resolved various issues reported by the community
ElmapiCMS 3.2 continues to evolve, making content management more powerful and developer-friendly.
Ready to explore the new features?
- [View the Documentation](https://docs.elmapicms.com)
- [Check out the Examples](https://github.com/elmapicms/elmapi3-examples)
- [Browse Tutorials](https://elmapicms.com/tutorials)
- [Try the Demo](https://demo.elmapicms.com)
https://elmapicms.com/blog/new-features-and-improvements-in-elmapicms-3-2
1 Like
Comment
The space is crowded. The competition is intense. And yet, I keep building. Here's why:
I started building ElmapiCMS in 2021.
I wanted a CMS with multi-project support and full control over my data. I didn’t exactly know where to begin, but once I committed and started coding, it became a deeply enjoyable process. Watching something I designed from scratch come to life gave me a sense of clarity and purpose. It was the first time I felt like, this could be something truly mine. That’s when ElmapiCMS became my flagship product.
It didn’t get much attention in the beginning but the few people who gave me feedback said the same thing: “This is clean and practical. You’re onto something.” That was enough to keep going.
As a freelance developer for 20 years,
I’ve built countless admin panels, content dashboards, and APIs. Over time, I began to see a pattern: I always ended up needing a small, structured, API-first CMS that didn’t force me into someone else's way of doing things.
Not because traditional CMSs were bad, they work great for certain use cases. But in client work or personal projects, I wanted something that let me build exactly what I wanted, without spending hours undoing things.
ElmapiCMS became the tool I wished existed in every past project.
Because I love building great software.
When I work on ElmapiCMS, my brain floods with new ideas, new ways to improve workflows, add smart tools, or make things more intuitive. Features like project-level authentication, built-in AI tools, templates, and starter kits all came from those inspired moments.
Working on this project never feels like a chore. It feels like a playground. Even on slow days, there's a part of me that gets excited about where this could go next.
I want to make starting a new project really easy.
Whether it's a blog, a mobile app backend, or a SaaS dashboard, every project starts with the same hurdle: the backend setup.
What if that part was already done for you?
What if you could launch an idea in minutes, not days?
That’s what ElmapiCMS is becoming. A clean, fast starting point for developers who just want to build and ship.
Yes, it’s a tough market.
There are bigger players with bigger teams and marketing budgets. But the one edge I have is this:
I care deeply about what I’m building.
I’m not chasing trends. I’m building something I actually use and improving it every day. That kind of persistence adds up. That’s why I keep going.
4 Likes
1 Comment
1 Comment
-
2
man, this resonates so much.
building in a crowded space because it scratches your itch — that’s the real indie hacker spirit. The way you talk about ElmapiCMS being your “playground” hits home... I think when you build something you truly use and love, it shows in the product.Also, as a developer who has wasted too much time wrangling bloated CMSs just to get a simple backend live — something like this is exactly what I would've wanted. You’re not just competing on features; you’re competing on focus. That’s rare.
Keep up pushing. Real builders can tell when something's made w/ care.
An Introduction to the Docs, Installation & Deployment Options, and Starter Templates
So you’ve heard about ElmapiCMS, a self-hosted headless CMS built for structured content and full control. Whether you're a developer, a solo founder, or a tech-savvy content manager, getting started should feel clear and approachable.
This post will walk you through what to expect after choosing ElmapiCMS: where to find documentation, how installation & deployment works, and how to launch faster using starter templates.
Understanding the Philosophy
ElmapiCMS isn’t trying to be everything at once. It’s focused on helping you define structured content, manage it easily, and deliver it through a clean API. It avoids bloated features and page builders in favor of a lightweight, purposeful content engine that you can fully own.
Start Here: The Documentation
Your journey begins with the official documentation:
👉 [docs.elmapicms.com](https://docs.elmapicms.com)
It’s designed to be concise, task-oriented, and progressive:
- Learn what projects, collections, and fields are
- Understand how to manage users and permissions
- Explore how the API works and how to consume content
- Discover deployment tips and storage options
- Get answers to common questions in the Troubleshooting section
Even if you're not a developer, you can follow along. Most of the content is visual and guided.
Installation Options
ElmapiCMS is self-hosted, which means you have complete control over where and how it's deployed. That could be:
- A local development machine using Laravel Herd or Docker
- A VPS or cloud server using services like Laravel Cloud, Laravel Forge or Coolify
- A shared hosting environment with PHP 8.2+ and MySQL
- Cpanel or Plesk
You can follow the [**“Installation”**](https://docs.elmapicms.com/installation/) section in the docs, which offers quick-start on your local machine.
Not comfortable installing it yourself? A SaaS version is coming soon. No servers, no setup.
The Concept of Projects
Once ElmapiCMS is installed, everything starts with a Project. Each project is an isolated content space, where you define your collections, create your fields, and start adding content.
Projects help you keep things organized. You might have:
- A blog project
- A product catalog
- A documentation backend
- A content API for a mobile app
Each one lives in its own space, with its own API and its own user permissions.
Launch Faster with Starter Templates
To help you hit the ground running, ElmapiCMS includes starter templates. Prebuilt sets of collections and fields tailored for common use cases.
You can use these templates as a foundation, customize them, or build on top of them as needed.
Currently available:
- Blog (Next.js) – A clean, fast blog frontend connected to ElmapiCMS
👉 [View Live Demo](https://blognextjs.elmapicms.com)
More starter templates are on the way, including:
- Docs
- Product Showcase
- FAQ / Help Center
- Portfolio and more...
You’ll soon be able to load these directly when creating a new project.
Exploring the Admin Interface
ElmapiCMS comes with a clean and fast admin panel built with modern SPA tech (React + Inertia.js), but designed for usability over flash. Inside the dashboard, you can:
- Create and manage collections
- Add or edit entries
- Upload files and media
- Define roles and assign users to projects
- Manage your API settings
- Manage your webhooks
Everything is point-and-click. No need to write config files or code unless you want to extend things.
Where to Go Next
If you’re ready to dive in:
- Browse the [Documentation](https://docs.elmapicms.com)
- Install it locally or on your preferred server
- Create your first project and define your collections
- Start a blog with the Next.js starter template
Need help? Support is available via email and soon through a public discussion board.
ElmapiCMS is built for speed, simplicity, and long-term control. Whether you're managing a personal blog or building a client’s app backend, it helps you skip the boilerplate and get straight to content.
Stay tuned and welcome to the ElmapiCMS ecosystem!
1 Like
Comment
ElmapiCMS v3 is the biggest update we’ve ever shipped. Rebuilt from the ground up with a new tech stack, modern UI, and powerful new features that make content modeling faster, cleaner, and more enjoyable.
Rebuilt from Scratch with Modern Tech
ElmapiCMS v3 introduces a brand new codebase built on a modern, scalable foundation:
Laravel 12 for a rock-solid backend
React + TypeScript for a robust, typed frontend
Inertia.js to bridge backend and frontend as a single-page app
Shadcn UI for clean, accessible, modern components
Brand New Interface
ElmapiCMS v3 now features a completely redesigned admin panel:
A modern, minimal interface focused on usability
Fully responsive layout for desktop, tablet, and mobile
Smooth navigation with no full page reloads
Built-in Dark Mode for your eyes (and taste)
Smarter User, Role, and Permission Management
ElmapiCMS v3 introduces a flexible user access system:
Manage users, roles, and permissions per project
Control exactly who can view, create, edit, or delete content
Great for teams, clients, and multi-role environments
New Asset Library
The new asset library makes uploading and organizing files effortless:
Drag & drop uploader
Filter by type, upload date, or search keyword
Grid and list views
Image crop tool for quick edits
Detailed file info and metadata display
Improved Tables & Bulk Actions
Working with content is now faster and more intuitive:
New data tables with advanced filters, sorting, and search
Perform bulk actions on multiple entries at once (delete, publish, duplicate, etc.)
Project & Collection Templates
Build faster with reusable structures:
Project Templates – Start with a predefined or custom template. Save your favorite project layouts for reuse.
Project Cloning – Instantly duplicate an entire project
Collection Templates – Save and reuse collection blueprints
Single Entry Collections – Perfect for static content like “About”, “Terms”, or “Homepage”
Enhanced Rich Text Editing
Introducing a much better writing experience with TinyMCE as the new editor:
Toggle to source code mode
Fullscreen editing view
Insert images from URL or directly from the asset library
Entry Management Upgrades
Quickly duplicate entries with one click
Improved entry editing layout
Cleaner field grouping and validation feedback
Rewritten Content API
ElmapiCMS v3 comes with a new and improved API:
Faster response times
Advanced filtering support
Clean, predictable JSON structure
Better Documentation
The documentation has been completely rewritten and reorganized:
Easier to navigate and search
More code examples and use cases
Step-by-step install, deploy, and API usage guides
ElmapiCMS v3 is faster, cleaner, and more scalable than ever.
Ready to dive in?
1 Like
Comment
Hey IndieHackers. I want to talk about my headless CMS.
A Self-Hosted Headless CMS for Simplicity, Speed, and Control
If you're building modern websites, apps, or content-driven platforms and want full control over your data, without relying on third-party platforms, ElmapiCMS is made for you.
Whether you're a developer or a tech-savvy content creator, ElmapiCMS lets you manage structured content easily and serve it as a clean, flexible API. It's fast, scalable, and runs on your own server.
What is ElmapiCMS?
ElmapiCMS is a self-hosted headless CMS that lets you define collections (like blog posts, products, FAQs, etc.), manage entries via a user-friendly interface, and deliver them via a REST API.
It's built with a modern full-stack architecture using Laravel 12 on the backend and a React + TypeScript single-page application frontend, powered by Inertia.js for seamless SPA experience. This tech stack ensures high performance, security, and flexibility, but you don’t need to know any of it to start managing your content. ElmapiCMS is designed to be user-friendly for both developers and non-developers alike.
If you're a content editor or site manager, you'll feel right at home. You can create collections, add entries, upload images, and organize your data, all through a clean, intuitive interface with no coding required. Whether you're managing blog posts, product data, team bios, or help articles, ElmapiCMS keeps things simple and focused.
For developers, ElmapiCMS is API-first by design. That means the content you manage isn't tied to any specific website or layout. It's delivered through a flexible REST API. You can display it on a custom frontend, a mobile app, a documentation site, or even power multiple platforms from one source.
Who is it For?
ElmapiCMS is designed to be simple enough for non-developers, yet powerful enough for advanced use cases.
It’s great for:
- Freelancers shipping client sites
- Agencies building reusable, scalable content backends
- Product creators developing custom apps
- Teams managing structured content
- Content editors who want a clean, no-clutter interface
No coding is needed to manage content once the structure is set up.
Key Features
- Collection & Field Builder: Visually create your content models with text, media, numbers, toggles, dates, and more
- User Roles & Permissions: Define who can access and edit what, per project
- Multi-Project Setup: Manage multiple content projects from a single instance
- Asset Library with Storage Options: Upload images and files; choose local or cloud storage
- Instant REST API: Each collection is available via an auto-generated API endpoint
- Validation & Clean Data: Apply rules to ensure structured, consistent content
- Starter Templates: Project and collection templates, plus frontend starter templates to get you started quickly
Developer-Friendly (But Not Developer-Only)
If you're a developer, ElmapiCMS feels like home: clean code, API-first design, and full control over your data.
If you're not a developer, you can still use the visual interface to manage content without touching a line of code.
Want to:
- Build a blog backend? Done in minutes.
- Manage products or FAQs? Easy.
- Power a frontend built with Vue, React, or Nuxt? Works out of the box.
- Create multilingual content APIs? No problem.
Try ElmapiCMS
Website: elmapicms.com
Documentation: docs.elmapicms.com
Demo: demo.elmapicms.com
Prefer a hosted solution? A SaaS version is currently in development.
ElmapiCMS is more than just a backend, it’s your content engine. Whether you're building a blog, app, client portal, or documentation site, it gives you the tools to manage structured content with ease.
No monthly fees. No lock-in. No clutter. Just you and your content.
1 Like
Comment
Hi everyone! I’m excited to share a project I’ve been building: ElmapiCMS, a modern, self-hosted headless CMS designed for developers who want full control over their content APIs.
ElmapiCMS lets you manage multiple projects with a clean UI, define collections and custom fields, and serve structured content through a fast, RESTful API. It’s perfect for content-driven apps and websites where you don’t want the overhead of traditional CMS platforms.
Key Features
Multi-project support
Custom collections, fields, templates, and single-entry types
Modern UI built with React, TypeScript, and shadcn/ui
Powerful asset library
Fast REST API for accessing your content
Rebuilt From the Ground Up
ElmapiCMS v3 is a full rewrite using Laravel 12, React, TypeScript, and Inertia.js. It’s more powerful, more stable, and more extensible than ever.
What’s Next
AI assistant extension for faster content workflows
Built-in user authentication
Starter templates (e.g., blog, portfolio, docs)
Possibly a hosted SaaS version
Try It Out
Website: elmapicms.com
Demo: demo.elmapicms.com
Docs: docs.elmapicms.com
CodeCanyon: https://codecanyon.net/item/elmapicms-headless-cms-for-building-content-api/34931567
Would love your feedback, especially around positioning, potential use cases, or any features you think a modern CMS should include. Thanks!
1 Like
Comment
About
I originally built ElmapiCMS because I needed a simple, flexible CMS for my own projects—something fast, self-hosted, and API-first. Nothing out there quite matched what I wanted, so I built it myself.


Comment