Release notes

Changelog

All notable changes to ElmapiCMS are documented on this page.

  1. v4.0.0

    Latest

    Major release: ElmapiCMS 4.0. See the upgrade guide for breaking-change notes.

    Added

    • Content versioning
    • Immutable publish versions - every publish mints a snapshot; state=published API 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}/publish and .../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=true when the project disk is s3.
    • 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_MINUTE in .env (default 300) instead of editing routes/api.php; useful when local frontend template builds hit 429.
    • 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 /api requires 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_metadata unique index migration for MySQL foreign keys.
    • API unique validation ignores the current entry by UUID.
    • SVG uploads rejected via allowlist (existing SVGs unchanged).

    Upgrade guide for v4.0.0

  2. 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.

    Upgrade guide for v3.3.0

  3. 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.

    Upgrade guide for v3.2.0

  4. v3.1.0

    Changed

    • Replaced TinyMCE with the new Lexical editor.

    Added

    • OpenAPI annotations and Swagger documentation.
    • force parameter on the API when deleting entries.
    • first parameter 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 limit and offset.
    • API relation null / not_null handling.

    Upgrade guide for v3.1.0

  5. 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.
  6. 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.
  7. v1.1.2

    Added

    • API endpoints for managing the media library.
    • Uploading files via the API.
    • AWS S3 upload support.
    • whereRelation filter option.
    • Include timestamps option on API requests.
    • API error when a field does not exist in a where clause.
    • API error when using offset without limit.

    Fixed

    • Trying to get property id of non-object error.
    • Disabled thumb field for non-image files in API responses.
  8. 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.