
How Storyblok Handles Content Versioning
A practical guide to how Storyblok handles draft and published content, with examples of API usage a
Storyblok Architect ~ Optimizely Most Valued Professional (OMVP) ~ Subject Matter Expert (SME) ~ CMS and Commerce certified
Contact Me
When building websites, it’s easy to focus only on the end product: the final pages a user will see. But underneath every polished homepage, blog post, or product page is a system of reusable components and structured templates. How well those components and pages are designed can either make your content scalable and consistent or chaotic and inefficient.
I think the right structure doesn’t just make pages look good, it speeds up publishing, cuts rework, and keeps your brand consistent at scale.
The art of component and page design is often something you truly understand only after delivering a few projects. It’s a discipline shaped by experience, knowing what creates long-term efficiency versus what just gets the job done for now. For customers embarking on a new digital journey, this knowledge is rarely intuitive. It’s the kind of insight that’s typically introduced by your technology or implementation partner.
Most good partners will do their best to share this wisdom, but the best partners will insist on pushing for strong foundations and setting guidelines that aren’t just recommendations, but rules for long-term success.
Let me guide you to explore how thoughtful CMS components and page design can help you scale content creation, stay consistent, and support your team no matter your pace or publishing priorities.
Depending on the CMS you are working on, you may have different nomenclature to what I use in this article. For the purposes of this article:
At the heart of effective design systems is a core tension: how much control do you give your content editors? Too much flexibility, and you may find yourself with dozens of slightly different hero banners, accordions, or calls-to-action each tweaked to solve one specific use case. This leads to design drift, bloated libraries, and confusion.
On the other hand, if you lock down the system too tightly, editors can’t do their jobs effectively. They’re stuck trying to shoehorn content into templates that don’t quite fit, leading to workarounds, duplicated efforts, and ultimately frustration.
The best systems find a middle ground: flexible within boundaries. This means creating components that are adaptable, but with guardrails in place defined variants, consistent spacing, and clear hierarchy.
Variants of a component come in the form of configurable options on itself. Take the hero banner the editor could have the option to include a long description, maybe have a background image, or alternate colour themes. These combinations of options could easily be developed as separate components; however, with some creative thinking and planning, you can avoid this component bloat. Whilst this is a fairly simple example, I’ve consulted customers who have gone down this path to this day.
In other cases, this can also happen over time whilst components are undergoing iteration during their lifetime. Two components that seemingly have two different use cases can end up becoming increasingly similar as they are changed and updated.
If you’re struggling to understand how to get this analysis done, you can employ a Content Structure and Components Review, which will highlight more insights in addition to what I’ve described so far.
]Your website should always feel like your brand. This is where your brand guidelines must inform your component and page design from the start. As a rule of thumb, content editors should have minimal to zero control over core design elements such as typography and font sizes, spacing and layout grids, and logo placement.
These should be locked down at the component level to ensure consistency across the site, regardless of who’s creating the content. For example, a global retail client avoided months of brand cleanup by locking typography and spacing at the component level, ensuring 200+ editors stayed consistent without extra oversight.
That said, there are intentional exceptions, and a good, common example is a generalised Call-To-Action (CTA) block. This kind of component might need to be placed in multiple areas (e.g., in an article, on a landing page, or in the homepage hero). Because of that flexibility, it may require limited styling options, like adjusting the text alignment, switching headline size, or changing background colour.
In such cases, the flexibility is defined, deliberate, and not open-ended. It’s okay for a CTA to look slightly different in an article versus the homepage, but that variation should be built into the system not improvised by editors.
Think about the various types of content your team creates blog articles, landing pages, product pages, FAQs. Each serves a unique purpose, but they all benefit from recognisable structure.
A good structure helps your users know what kind of page they’re on, and helps editors move faster. For example, a blog article template might always include a featured image, author, content body, related articles, and a consistent CTA block. In one project, introducing a consistent article template cut average publishing time from three hours to just 30 minutes.
You can define which of these are fixed and which are optional. The point is to create a predictable experience for both the user and the content team.
Structure can also improve speed, depending on your brand and how much trust you place in your editors. You may want to stiffen up the structure of the page to speed up the creation of an editorial. In a more creative brand, you may allow the editor to create a page made up of many components. In that case, the page would be an empty page with less clarity, but more creativity and trust given to the editor.
Different businesses need different approaches. If your brand relies on high volumes of content like an online publication or an e-commerce brand you’ll want fast, repeatable systems. Prioritise components that allow editors to quickly assemble pages using modular blocks.
If your brand focuses on high-touch, carefully crafted communication like a luxury brand or B2B service provider you might accept slower production in exchange for more bespoke design. In that case, your components can offer more variation, but still within a system that ensures alignment with your brand.
Neither approach is wrong but your design system should reflect your reality.
To keep your component and content system usable over time, you’ll need to do more than build it well you have to maintain and evolve it.
Audit components regularly, removing duplicates, sunsetting unused ones, reviewing usage frequency, and identifying opportunities to refactor. One organisation reduced their component library by 40% through consolidation, cutting future development costs and speeding up site changes.
Create documentation and explain how and when to use each block; the best example I’ve seen of this was a dedicated Component Library used by the front-end developer. Train your content team don’t assume people know how to use the system or will read documentation in the hopes they will ‘get it’. Name components clearly, avoiding vague terms like “block 3” or “section 5,” and make sure naming is clear, concise, and sufficiently different from their counterparts.
In addition, schedule time to reflect on how the content model itself is holding up. Consider how often each content type is used; some might be rarely touched and could be deprecated. Think about whether content types have evolved over time, two content types might end up fulfilling similar roles, in which case you could merge or simplify them. If a content type is becoming too convoluted, it may need to be split into more focused variations. And watch for new relationships between content types. For example, maybe you created a "Contact Us" block as a standalone element, but now it’s part of your brand guideline to include it at the end of every article. Instead of relying on editors to remember to drag it in each time, embed it directly into the article structure. That way, consistency is enforced, and editors work faster.
A smart content system grows with the business and that means revisiting assumptions, patterns, and usage data over time.
Component design and page design aren’t just backend concerns; they shape the user experience, impact brand consistency, and influence how quickly your team can move. When done right, they become a framework that empowers content creators to do their best work without reinventing the wheel every time.
By making smart decisions about flexibility, structure, and brand consistency, you’re not just building pages, you're building a system that supports your entire digital presence.
I think when you get this right, it’s one of the most valuable investments you can make in your website’s long-term success.
h/t Garon Potter for a great conversation about working with a customer transitioning from another agency and how we can improve their experience.
A practical guide to how Storyblok handles draft and published content, with examples of API usage a
Have you taken the time to investigate what SaaS actually offers before introducing it to your busin
Overcomplicated requirements are slowing you down. Here’s how trimming the excess can help you launc
I discuss our experiences not validating business features early which result in delayed projects
Best practice of managing your Optimizely nuget packages
Demystify Image Resizing on the edge for your Optimizely solution
Critical parts of an upgrade can help you understand the different stages of an upgrade. Let's discu
Optimizely Customers now have a choice between using CMS on either PaaS or SaaS
SaaS Core is Optimizely's latest CMS offering as part of its composable architecture
We describe Optimizely's newest Content as a Service offering Optimizely Graph and how you should be
Straightforward RSS feed generation for your Optimizely solution with this NuGet package
Headless vs Traditional doesn't have to be a hard choice. An Optionality approach gives you the best
We are proud to announce Optimizely has awarded Hidden Foundry with Specializations
We discuss our experiences of working with Navico to refactor their single site into a multi-site so
We summerize our experience of working with FirstMile and helping them move over to Optimizely Comme
Grasp ODP and how it's AI and data consolidation enables insight driven conversions
We outline the benefits of upgrading your Optimizely solution to ASP.NET Core
Expand content area properties to load nested contact areas recursively to a customizable level
Redirect the user elsewhere instead of the default Optimizely login page when attempting to access a