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