v4.0.0
LatestMajor release: ElmapiCMS 4.0. See the upgrade guide for breaking-change notes.
Added
- Content versioning
- Immutable publish versions - every publish mints a snapshot;
state=publishedAPI reads return snapshot data instead of live draft fields. Supports revert, discard unpublished draft, version labels, configurable retention (CONTENT_VERSIONS_PER_ENTRY), and snapshot-aware export/import. - Draft save on published entries - dashboard Save as draft keeps editing without changing the live API; Save & Publish mints the next version. Singletons include the same controls, version history, and unpublish.
- Version preview and version history UI on content edit (including singletons).
- Explicit publish/unpublish API -
POST /api/{collection}/{uuid}/publishand.../unpublish. - Asset library
- Portable project and collection packages - export versioned JSON or ZIP packages with referenced assets or the entire Asset Library, then import them with media relationships restored; individual collections can also be imported into existing projects.
- Direct S3/Spaces uploads for large files - optional presigned and multipart upload straight to storage (bypasses PHP upload limits); classic upload remains the default for local storage. Enable with
ASSET_DIRECT_UPLOAD=truewhen the project disk iss3. - Image optimization - store an optimized WebP copy while keeping the original.
- Image resize and rotate tools in the asset editor.
- Video and audio preview in asset details.
- Asset usage - see where each asset is used across content.
- Video previews in the asset library grid and table.
- Arrow navigation between assets in the details modal.
- Media field selection preserves order and pins selected assets in the picker.
- Authentication
- End-user authentication APIs - signup, sign-in, refresh, sessions, and settings UI for headless apps.
- Identity-only JWTs - Authentication tokens identify the user; CMS API access stays on Sanctum project tokens.
- End-user API keys (
uak_…) with introspection for your own apps. - Optional email verification for Authentication users.
- Suspend users, session caps, and dedicated Authentication settings pages.
- Dedicated `access_auth_settings` permission for Authentication settings access.
- Content & localization
- Bulk publish / unpublish on the content list.
- Link translation API - join entries into a translation group from the API.
- Export/import keeps translation links - translation groups survive project/collection export, import, and templates.
- Singleton locale auto-link - new locale entries share one translation group.
- Project locales admin API - create, delete, and set the default locale via API.
- Optional Markdown richtext - Lexical remains default; fields can use markdown mode.
- Relation fields by collection slug - create/update by slug; renaming a slug remaps relations.
- Cyclic relation nests - self/mutual relation links return a stub instead of overflowing the JSON stack.
- Relative content timestamps with full-date tooltips.
- Unsaved-changes guard on the content form - prompts before leaving with unpublished edits.
- API & webhooks
- Bulk content and asset API endpoints for atomic multi-create / metadata updates.
- Webhook REST API to manage webhooks with an admin token.
- Hardened outbound webhook delivery (HTTPS-only by default, retries, signed payloads).
- Webhooks for AI content ops and translation link/unlink.
- Configurable API rate limit - set
API_RATE_LIMIT_PER_MINUTEin.env(default300) instead of editingroutes/api.php; useful when local frontend template builds hit429. - Select all collections when creating or editing webhooks.
- App settings & UI
- App theme system - presets and custom design tokens.
- App font setting.
- Theme roundness setting - control global corner radius independently of color presets.
- Sticky project settings sidebar; webhook sheet, events modal, and logs UX.
- Simplified project detail page and MCP setup snippets.
- AI chat interleaves streamed text and tool steps, and restores ordered parts from conversation history.
- Project preview URL - optional clickable frontend URL on project settings, dashboard, and project detail.
- Dashboard view mode and sort order persist across visits.
- Platform
- Laravel 13 and updated AI stack (
laravel/ai, no Prism). - MCP setup section on the project detail page.
Changed
- Content entry `status` renamed to `state` (
draft|published) in the API and dashboard. GET /apirequires the `read` ability.- New image uploads are stored as WebP (original retained when available).
Fixed
- Asset library mobile layout fixed - toolbar and pagination wrap; collections sidebar and AI chat open as sheets below
lg. - Asset crop area and aspect ratio controls.
- Asset library upload and streaming reliability.
asset_metadataunique index migration for MySQL foreign keys.- API unique validation ignores the current entry by UUID.
- SVG uploads rejected via allowlist (existing SVGs unchanged).
v3.3.0
Added
- AI & assistant
- AI Chat Assistant - create projects, collections, fields, and content through conversation.
- Inline AI content tools - generate, rewrite, expand, summarize, and fix grammar in any text field.
- AI entry translation - translate entire entries to any locale in one click.
- Rich text AI tools - AI actions in the floating toolbar when selecting text.
- AI field context - generation considers field labels, collection name, and other field values.
- Token usage tracking per session.
- AI settings page - configure provider, model, max tokens, max steps, and conversation memory.
- Content & UI
- Create blank translation entries for any locale.
- Improved dashboard design and other UI refinements.
- API & integrations
- API admin endpoints to manage collection and field schema.
- MCP Server support.
v3.2.0
Added
- Translations support.
- Import and export.
- New field type: field group.
- New frontend template: Landing Page.
- Examples and tutorials.
- New JavaScript SDK.
- Locale field and filter by locale in the content list.
- Drag-and-drop sorting for selected relations.
- Seeders for examples.
Fixed
- Content list media load issue.
- Login page app name not reflecting settings.
- Editor source code incorrectly removing tags.
- Removed backend HTML conversion - rich text is stored in both formats as intended.
- Asset library server error when AWS S3 is not configured.
- Underscore-to-dash conversion for the slug field.
- API query sorting when combined with pagination.
v3.1.0
Changed
- Replaced TinyMCE with the new Lexical editor.
Added
- OpenAPI annotations and Swagger documentation.
forceparameter on the API when deleting entries.firstparameter on the API when querying entries.- App settings page for app name, logo, and favicon.
Fixed
- System permissions could be updated or deleted incorrectly - now prevented.
- Count incorrect when using
limitandoffset. - API relation
null/not_nullhandling.
v3.0.0
Major release: rebuilt from scratch on Laravel 12, React, TypeScript, Shadcn UI, and Inertia.js.
Added
- Core & UI
- Brand-new user interface and modern design.
- Fully responsive layout (desktop, tablet, mobile).
- Full dark mode support.
- New user, role, and permission management.
- Asset library
- Advanced uploader with drag and drop.
- Filter by type, date, and sort options.
- Grid and list views.
- Image crop tool.
- Richer file info and metadata display.
- Projects & content
- Data tables with advanced filtering and bulk actions.
- Project templates - create projects from predefined or custom templates.
- Project cloning - duplicate entire projects instantly.
- Collection templates - reusable collection blueprints.
- Single-entry collections (e.g. About, Terms).
- Duplicate entries with one click.
- Editor
- Integrated TinyMCE editor with source code mode, fullscreen editing, and images from URL or asset library.
- API & docs
- Rewritten content API - faster, with advanced filtering.
- Documentation reorganized and expanded.
v2.0.0
Changed
- Upgraded to Laravel 9.
Added
- Webhooks.
- Embeddable forms.
- Repeatable fields.
- Option to enable public API access (unauthenticated GET requests).
- Timepicker option for the date field type.
- New field type: color picker.
- Allow multiple option for the enumeration field type.
Fixed
- Page refresh issue when saving project settings.
- Thumbnail issue while uploading files.
- Change password issue.
- Unnecessary query in the content resource for collections.
- Small UI issues.
v1.1.2
Added
- API endpoints for managing the media library.
- Uploading files via the API.
- AWS S3 upload support.
whereRelationfilter option.- Include timestamps option on API requests.
- API error when a field does not exist in a
whereclause. - API error when using
offsetwithoutlimit.
Fixed
- Trying to get property
idof non-object error. - Disabled thumb field for non-image files in API responses.
v1.0.0
Initial release.
Looking for install or API docs?
The changelog covers what changed. Setup, configuration, and API reference live in the documentation.