Spit Happens: September 2026 News - Pickier media, lighter editor
The herd has been busy again 🦙. In September we merged 112 pull requests across TinaCMS and TinaCloud and shipped 8 releases between them.
📦 TinaCMS: 3 releases
🖼️ Pickier media fields
Image fields take a new accept option. Give it an extension, a category like video or document, or a list of either, and the field refuses any other file before it uploads. The Media Manager toolbar gets a file type filter too, so you can cut a big library down to the PDFs (#7477).
If you use TinaCloud, you can rename assets in the Media Manager. On an unprotected branch the rename happens at once. On a protected branch it goes through the editorial workflow like any other change (#7423).
⚡ A lighter editor
The rich-text editor used to download the Mermaid diagram library in every editing session, even when no document had a diagram. It now waits for a Mermaid code block to appear. That takes about 640 KB, or 10%, off the editor's main bundle (#7467).
We moved the CLI to Vite 7, so an install pulls in one esbuild binary instead of two (#7556).
next-tinacms-azure stopped bundling its own copy of Next.js. We added size budgets to CI as well, so we see bloat before you download it (#7316).
🩹 Fewer snags while editing
If your session expires mid-edit, TinaCMS sends you back to the login screen. You used to get a save error that pointed at the wrong problem (#7486).
Shift+Enter line breaks survive a save (#7452).
Edits inside nested panels stay put when you navigate back (#7520).
We typed rich-text fields as TinaMarkdownContent instead of any, and <TinaMarkdown> accepts null or undefined. Pass an optional rich-text field straight in, no guard needed (#7229).
🚀 V4 keeps taking shape
V4 is still in progress. This month we added the array (#7492), object (#7535) and reference (#7533) fields.
You write a validation rule one way now (#7601). Forms get lifecycle hooks that you register by name and turn on per collection (#7622).
☁️ TinaCloud: 5 production releases
🔎 Cataloging that tells you what went wrong
Cataloging is the step where TinaCloud reads your repo so the editor can find your content.
When cataloging fails, TinaCloud shows you the real error instead of "Please try again" (#4069).
TinaCloud checks your GraphQL schema before it marks cataloging as done (#4100). If a catalog migration fails, TinaCloud can recover from it (#4120).
If a branch still won't catalog, the TinaCloud troubleshooting guide walks through the usual causes.
💅 A fresher dashboard
We gave the dashboard orange buttons and a llama on the welcome screen. The Create Project chooser works on small screens (#4181).
Dashboard forms mark required fields. They wait until you leave a field before they show an error (#4162).
Keep up with socials
We post product updates, tutorials and team news here:
- X: @tinacms
- LinkedIn: TinaCMS
- YouTube: @TinaCMS
- Bluesky: @tina.io
- Discord: Come chat with us!
Till next time 👋🦙