Content infrastructure for apps and AI
Model content visually, deliver it through a typed JSON API and official SDKs, and let AI clients manage it over MCP — in an isolated workspace for every project.
- REST API & TypeScript types
- Scoped API keys
- Revision history
import { createFlexaClient } from '@flexacms/next';
const flexa = createFlexaClient({ revalidate: 300 });
export default async function Post({ params }) {
const { slug } = await params;
const post = await flexa.entity('posts').find(slug);
return <h1>{post.title}</h1>;
}Delivers content to the stack you already use
- Next.js
- Nuxt
- Astro
- SvelteKit
- React
- Laravel
- WordPress
- Joomla
Platform
Everything a content platform needs
One workspace per project. Bring your own frontend — Next.js, Nuxt, Astro, mobile, or an AI agent.
Model anything, no migrations
Entities with 20+ field types, field groups, relationships, repeaters and conditional logic.
Headless REST API
Versioned JSON endpoints with validation, pagination, filters and generated TypeScript types.
AI assistant
Draft, translate and publish entries or design content models by chatting, with approval for risky actions.
Scoped API keys
Hashed, revocable keys with read, write, delete, schema and MCP abilities, per model and with expiry.
Workspaces & roles
Multi-tenant by design. Owners, admins, editors and viewers, each workspace fully isolated.
Global from day one
Translatable fields, locale-aware API payloads and an assistant that writes every language.
Audited by default
Every change from the editor, API, MCP or AI is stored in a revision history you can restore.
How it works
From idea to live content in minutes
- 01
Start from a template
Blog, product catalog, marketing site or blank — each workspace starts with models and sample entries ready to edit.
- 02
Model and write
Shape fields in the visual builder, invite your team and draft content yourself or with the AI assistant.
- 03
Ship it anywhere
Issue a scoped API key and read content from your site, app or CMS plugin — or hand it to an AI client over MCP.
Integrations
Official SDKs for every runtime
Typed clients for JavaScript and PHP frameworks, plus plugins that bring your content into WordPress, Joomla and YOOtheme Pro.
JavaScript
npm i @flexacms/client
React
npm i @flexacms/react
Next.js
npm i @flexacms/next
Nuxt
npm i @flexacms/nuxt
Astro
npm i @flexacms/astro
SvelteKit
npm i @flexacms/sveltekit
PHP
composer require flexacms/php
Laravel
composer require flexacms/laravel
WordPress
Blocks, shortcodes · WP 6.5+
Joomla
Menu items, module · Joomla 5
YOOtheme Pro
Dynamic builder sources
TypeScript
npx @flexacms/cli generate
Prefer plain HTTP? Every workspace includes an API playground with cURL, JavaScript, PHP and Python examples. Browse the SDKs
Let your AI tools manage content — safely
Connect an AI client with one command. The API key decides exactly which tools it can see, and every change lands in the revision history.
Claude
- Cursor
VS Code
- OpenCode
Read
List models, read schemas, search and open entries, browse history
Write
Create and edit entries, set values, publish and unpublish
Schema
Create and change content models, fields, groups and categories
Delete
Remove entries, fields or whole models
FAQ
Questions, answered
Can't find what you're looking for? Create a free workspace and explore the API playground.
Do I need to write migrations to add content types?
No. Models and fields are defined in the visual builder (or by an AI client with the Schema ability) and are available in the API immediately.
Can I use it with my existing WordPress or Joomla site?
Yes. The WordPress plugin adds blocks, shortcodes and template functions; the Joomla package adds menu items with SEF URLs, a module and article tags; and the YOOtheme Pro plugin exposes your models as dynamic content sources.
Is it safe to let an AI client manage my content?
Every MCP connection uses an API key, so it can only do what that key allows — per ability, per model and until it expires. Every change is recorded in the revision history and can be restored.
How do translations work?
Mark any field as translatable and the API returns a value per locale. The SDKs include a localize helper with fallbacks, and the assistant can translate entries for you.
Can I keep separate projects apart?
Each workspace has its own models, entries, media, members and API keys. Nothing is shared between workspaces.
Launch your content API today
Start from a blog, catalog or marketing template and connect your first app in minutes.