In the world of digital creation, that final click on the "Publish" button can often feel like a leap of faith. For most creators, it is a moment tinged with a specific kind of anxiety: What if I just broke the content? What if I accidentally deleted that perfect opening paragraph? Let’s face it we have all been there.
At Baack, we’ve always believed that technology should empower creativity, not restrict it with fear. Today, we are excited to announce the release of a new feature that turns that "leap of faith" into a safe, controlled step: Full Content History.
Why Now? Designing for the Fear of "Breaking"
This launch wasn't just a technical milestone; it was driven by listening to creative makers. During our recent User Experience Interviews, we spoke with designers, editors, and marketing leads who shared a common dread: the permanent loss of content during a fast-paced update. Creative teams mentioned that their primary fear when updating a high-traffic article is losing historical data or introducing an error that they can't easily undo. That fear can be exacerbated by moving to a content platform where, if your creative process allows them, everyone at your company can become a content creator.
We heard the feedback loud and clear. Content creation shouldn't feel like walking a tightrope without a net.
Built with Versioning in Our DNA
Unlike many legacy systems that "patch in" version control as an afterthought, Baack was architected from the very first line of code with versioned support at its content core.
Our platform treats every content item as a living item with history. Every change you make—whether it's a minor typo fix or a complete structural overhaul—is captured and preserved. This allows you to traverse the history of a content item effortlessly, moving back and forth between "versions of the truth" until your digital experience is exactly where it needs to be. It’s our ‘content carousel’.
A Unified View of Your Content
Every content entity (like a page) in Baack is composed of various content items. To support this new history feature, we have expanded our content representation. Now, every content item includes a dedicated history.url in its API response, providing a direct path to its chronological evolution. Rewinding a change is as simple as a single call to the platform.
The following content item types are supported within the Baack entity structure:
| Content Item Type | Description |
|---|---|
| Text Item | Standard strings for titles, subtitles, and short-form copy. They can be pretty large if you need them to be and are the bread and butter of building content. |
| Markdown Item | Rich text support for long-form articles, blog posts (like this one) and formatted technical docs. Not everyone wants to learn HTML or coding, markdown gives people a half way house. You can also use other tools like content creation AI that can usually create markdown (common-mark formatted). |
| Template Item | When you need to create customised content, use our full templating engine which has support for all of the standard constructs and logic. |
| Image Item | Metadata and file associations for visual assets, including alt text and source URLs in three formats to allow you to build ‘source sets’. Image files are CDN edge cast delivered globally so your content is close to your users. |
| Date / Time Item | Effortlessly model dates and times using a UTC timestamp that supports millisecond precision in a standard compliant format e.g. 2025-07-14T09:00:00.000 |
| Double precision number Item | When you need a number that support double precision floating point values e.g. 99.995. |
| Money Item | Easily represent monetary values including support for 168 standard currency codes. This can be combined with the language code for your content entity to have locale specific money values relevant to the reader. |
| Long integer Item | When you need big whole numbers use a long value to represent anything from a simple time series to an identifier. |
| Latitude / Longitude Item | Create an editable map point or a whole bounding box for location information. |
| Boolean (truthy) Item | Organized groups of items, such as folders or directories for better structural management. |
Technical Deep Dive: Restoring the Past
For the developers in the room, accessing and restoring content history is as simple as a standard API call, assuming your integration has the permissions of course. The history endpoint provides a list of all previous states of an item.
1. Inspecting the Item History
You can retrieve the history of a specific item to find the version you wish to restore:
curl -X GET -H "Bearer-Token: $TOKEN" \
https://api.baack.co/n/v1/textitemhistory/c4fe3203-54a5-40cc-88ba-9722b84e8ace | jq
All you have to do is make a single call to select which of the item versions you want to pick to be live.
2. Promoting a Historical Version to Live
The most powerful aspect of this feature is the ability to restore a version instantly. By performing a PUT request with the data from a historical record to the live endpoint, that version is immediately reinstated as the current state.
curl -X PUT -H "Bearer-Token: $TOKEN" \
https://api.baack.co/n/v1/textitemhistory/c4fe3203-54a5-40cc-88ba-9722b84e8ace | jq
Once updated, you simply set the entity to PUBLISH state to make the change live across all your channels if the entity isn’t already published. If it is then it’s status will be updated accordingly.
How Baack Compares
While version control is often cited as an "essential" feature by CMS users, many platforms struggle with the implementation. Here is how Baack stacks up against other major headless players:
| Feature | Baack.co | Contentful | Storyblok |
|---|---|---|---|
| Versioning Architecture | Native, built-in from Day 1 | Component-based history | Visual editor history |
| Restore Speed | Instant API-driven PUT restore | Manual snapshot restore | Visual roll-back |
| History Access | Direct URL in item representation | Interface-led | Interface-led |
| Omnichannel Support | One system/one platform approach | Scalable infrastructure | Focus on visual editing |
Take the Net for a Spin
At Baack, our goal is to give you a full backend capability set on a silver platter so you can truly unleash your creativity. With Full Content History now available via the API you no longer have to fear the "Publish" button.
Ready to see it in action? Check out our guides and reference docs.







