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 productiontcms push --objects=blog sends 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
Full release notes →

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 & CLIcomposer create-project totalcms/totalcms, plus a full tcms command-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
Read the announcement → Full release notes →

Dialogs and form internals

  • Styled Text dialogs rebuilt on a shared base
  • Radio and multicheckbox fields now share a common ChoiceField base
  • Help text rendering and field attribute building centralized
Full release notes →

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 fieldColumns arranges 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
Full release notes →

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 blockClasses setting provides class autocomplete
Full release notes →

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
Full release notes →

Watermarks and field settings

  • Watermark settings can now be set at the collection level
  • New lockOnEdit setting prevents editing a field after creation
  • Calc field settings for form fields
  • Empty paragraphs cleaned from the start and end of Styled Text
Full release notes →

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
Read the announcement → Full release notes →

Depot and gallery refinements

  • Depot Browser reverse sort and tag filtering
  • class and loading attributes on gallery images
  • EXIF reading fixed for WebP and PNG files
  • Per-object property setting overrides now apply in forms
Full release notes →

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
Full release notes →

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 keyBy and sum collection filters
  • ImageWorks fixes: format option, no upscaling past original size, no forced 600px width
Full release notes →

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
Full release notes →

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
Full release notes →

Deck validation and API status codes

  • Deck items are validated against their schema, and support autogen IDs
  • New cms.currentUrl property 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
Full release notes →

Diagnose tool

  • New support diagnostic tool for troubleshooting an installation on a server
Full release notes →

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 recurringMonthDate filters for recurring events
Full release notes →

Stability and polish

  • Fixed gallery image reordering (drag and drop) in Firefox
  • New .cms-logout class handler for one-click logout links
  • Inherited schema properties can now be overridden in child schemas
  • Updated the encryption cipher used for stored secrets
Read the announcement → Full release notes →

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.

Read the announcement → Full release notes →