Releases
What's new in Total CMS.
A running log of releases — new capabilities, refinements, and fixes. For the full technical detail on any release, see the docs.
Safer updates and template designer
- Before you update — if you installed from a zip and keep your own stylesheets, scripts or media inside the Total CMS folder, move them out first. An update replaces that folder's contents whole, and the installation guide now describes the layout that keeps your files safe
- Updates keep the version they replaced — one copy, in your data directory, shown in the Update Manager and restorable with
tcms update:rollback. It protects the next update, not this one, so take your own backup before installing 3.5.2 - Template Designer Works again — Template Designer and the load-more endpoint all resolve an id inside
builder/templates/. Sites upgraded from before 3.5 whose templates stopped rendering will work again with no changes - Everyone can edit their own profile — a member whose access groups didn't include the user collection was refused when saving their own account
Seeding content and hardened requests
- Seed content to production —
tcms push --objects=blogsends a collection's objects to your production server, skipping anything already there - Seed Objects in the Sync Manager — choose which collections are seeded on push
- Feature-named sync flags:
--pages,--dataviews,--mailer,--mcp-prompts,--automations - Read-only Site Builder template tools for MCP agents
- Security — client IP is no longer taken on trust behind a proxy, and session files moved out of the server's shared directory
Total CMS becomes a platform
New top-level subsystems sit alongside the existing collections and templates engine — the biggest release since Total CMS 3 launched.
- Site Builder — build pages, routes and templates in the admin, served dynamically at request time
- Extension system — extend Total CMS at every layer, with capability-based permissions so third-party code can't do more than the admin allows
- Built-in MCP server + OAuth 2.1 — AI agents read and write your content over a standards-based interface
- Automations — run your own PHP handlers on a schedule, a webhook, or a content event
- Internationalization — localized field types, a BCP 47 locale registry, and locale-aware routing
- Publishing API — publish from MarsEdit, Byword or Ulysses over a WordPress-compatible endpoint
- Composer distribution & CLI —
composer create-project totalcms/totalcms, plus a fulltcmscommand-line tool - Event system — a priority-ordered dispatcher with 20 core events
- Sync — the Sync Manager now moves collection objects alongside schemas and templates
- Security — a per-site encryption key, and security headers across admin, auth and setup
Dialogs and form internals
- Styled Text dialogs rebuilt on a shared base
- Radio and multicheckbox fields now share a common
ChoiceFieldbase - Help text rendering and field attribute building centralized
Editor and admin polish
- Indent and outdent buttons for Styled Text
- A standardized confirm dialog replaces the browser's native one across the admin
- New
fieldColumnsarranges radio and multicheckbox options in columns - Image cache keys now include a content hash, so derivatives invalidate correctly
- Formgrid layouts work inside deck item forms
Styled Text attributes
- Element Attributes dialog — set class, id and
data-*attributes on any block - Those attributes now survive a code-view round trip
- All heading levels H1–H6, with a setting controlling which appear
- New
blockClassessetting provides class autocomplete
Deck import/export and filtering
- Import and export deck properties as CSV or JSON
- New
cms.utils.urlFilters()turns URL query parameters into collection filters - Sort support across index filters, relational options and data views
- Bulk mailer moved to its own form with a configurable daily maximum
- Styled Text now pastes as plain text by default
Watermarks and field settings
- Watermark settings can now be set at the collection level
- New
lockOnEditsetting prevents editing a field after creation - Calc field settings for form fields
- Empty paragraphs cleaned from the start and end of Styled Text
Rich text, passkeys, and reporting
- Styled Text — an all-new rich text editor with image uploads, video/file embeds, table editing, and code view
- Passkey authentication — WebAuthn passwordless login for the admin dashboard
- Data Views — saved, filtered queries across collections, with API access and scheduled rebuilds
- Load More — frontend pagination for progressively loading content, with Data View support
- Template Designer — the
{% templatedesigner %}tag for inline, token-gated template editing - Collection Reports — a reporting API and admin utility for collection data
- WordPress import — a full import path from WordPress, with security validation
Depot and gallery refinements
- Depot Browser reverse sort and tag filtering
classandloadingattributes on gallery images- EXIF reading fixed for WebP and PNG files
- Per-object property setting overrides now apply in forms
Depot Browser
- Depot Browser — a full file management UI with preview, filtering, drag-and-drop uploads and keyboard navigation
- Depot Drop field — pick files from a depot in any form
- Manual sort orders for collections, with Twig filter support
- Form error summaries and configurable status banners
- Fixes for persistent login and post-login redirects
Galleries and image handling
- Gallery captions now support Twig templating, and can display in the lightbox
- New
cms.log()function for logging from a template - New
keyByandsumcollection filters - ImageWorks fixes: format option, no upscaling past original size, no forced 600px width
Offline licensing and performance
- License validation now works offline from cached data
- Significant caching and index-building performance work
- Export a single object to a ZIP archive
- New
cms.objectCount()counts a collection without loading it
Localization
- Localized dates, numbers, currencies and relative time strings
- New deployment guide covering Git, cache clearing and CI/CD
- Featured image indicators and colour field datalists
- Graceful fallback when the PHP INTL extension is missing
Deck validation and API status codes
- Deck items are validated against their schema, and support autogen IDs
- New
cms.currentUrlproperty in Twig - RSS writer moved to laminas/laminas-feed for PHP 8.4 compatibility
- API actions now return proper error codes instead of 200 on failure
Diagnose tool
- New support diagnostic tool for troubleshooting an installation on a server
Dashboard and form refinements
- Dev mode toggle directly on the dashboard
- Cmd/Ctrl-click to open an object form in a new tab
- HEIC conversion now uses the ImageMagick extension instead of shell commands
- Better responsive form layouts on mobile
- New
recurringMonthDatefilters for recurring events
Stability and polish
- Fixed gallery image reordering (drag and drop) in Firefox
- New
.cms-logoutclass handler for one-click logout links - Inherited schema properties can now be overridden in child schemas
- Updated the encryption cipher used for stored secrets
Total CMS 3 enters public beta
The rebuild goes public. Total CMS 3 is a ground-up rewrite on PHP 8.2, Slim 4 and Twig 3 — flat-file JSON storage, no database, and an admin built around collections and schemas instead of page-by-page editing.
It ran in the open for eighteen months and fifty releases before shipping as 3.1 in December 2025, with customers building real sites on it throughout.