Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

  1. Blog
  2. Article

Lyubomir Popov
on 23 June 2025

Revolutionizing Web Page Creation: How Structured Content is Slashing Design and Development Time


Co-authored with Julie Muzina

A year ago, during our Madrid Engineering Sprint, we challenged ourselves to dramatically reduce, or even eliminate, the need for constant design involvement in the day-to-day creation of web pages. Our strategy for achieving this is based on a smarter, more structured approach to content.

The Challenge: Bridging Content and Structure

In both design and web engineering, structured data is our bedrock. It’s the magic that allows us to package content into reusable blocks, streamlining workflows and reducing repetitive tasks across disciplines. However, for many content creators, “structured data” isn’t the most intuitive starting point for crafting the engaging narratives that populate our websites. The traditional process often involved manual handoffs, meticulous alignment with mockups, and significant back-and-forth.

So, we asked: what if we could embed the principles of structured data right at the source – the moment content is conceived? What if we could seamlessly align the structure of the content with the predefined schema of our design patterns?

The Evolution: From Templates to a Robust Pattern System

Our journey towards this vision began a couple of years ago. Sophie Felder, Juan Ruitiña, and Elaine Liman from our UX team took the first steps by creating Google Docs templates that mirrored our early page layouts—back when pages were still pieced together from individual components.

As our design system matured into a more defined pattern library, our designers worked to evolve these templates in lockstep. As the patterns became tangible and their schemas more concrete, the copydoc templates we craft for our Content contributors mirrored these advancements. We aim for high fidelity, right down to critical details like line wrapping and character limits. This meant content writers could visualize exactly how their text would render on the final webpage, directly within their familiar writing environment.

A Google docs template of our Pricing Block pattern, replicating line wrapping and design as close as is feasible

Fast forward to the last two development cycles: we have designed, built, and meticulously documented eight new sophisticated patterns. Each pattern isn’t just a component; it’s an entire section of a page, bundled into a reusable asset built around a strict schema. This schema dictates the number of elements, which are mandatory, and the optimal and maximum length for each piece of content.

Vanilla’s eight patterns. Explore them here.

Crucially, this wasn’t a top-down imposition. We established a collaborative process where content contributors are integral from the outset. They play a key role in defining the schema of new patterns, agreeing on the structure, and approving the final designs. A huge thank you is owed to Gloria Quintanilla and her team; their partnership has been instrumental in making this collaborative model a success.

The API of the pricing block pattern. The discrete blocks of content in a pattern are identified and documented through a collaborative process.

Putting Theory into Practice: The Hero Pattern

So, how does this schema-based approach actually transform our page-building work? Let’s consider a concrete example: our widely-used “Hero” pattern, a familiar sight at the top of many of our web pages.

The hero pattern features a prominent banner section typically used to quickly capture the user’s attention after they land on a page.

Just twelve months ago, constructing this hero section demanded intricate knowledge of the Vanilla Framework, our underlying CSS framework. Developers had to manually craft the HTML structure, meticulously apply the correct CSS classes, and constantly cross-reference design mockups with copy documents from the content team. It was time-consuming and prone to inconsistencies.

An example of the markup a developer might write to build a hero pattern. The developer must build the pattern by hand using a combination of Vanilla’s grid, section, CTA, and image components.

Thanks to the concerted efforts across Design, Content, and Engineering over the past year, we’ve fundamentally changed this. By identifying the discrete content elements for each section, we’ve built templates that directly feed content into pre-approved, beautifully designed layouts. Templates are published as Jinja macros, enabling developers to consume the pattern through a clean API. This innovation abstracts away the complexities of manual alignment, making the interface for page creation primarily content-driven.

An example of markup for building a hero using the hero pattern’s Jinja macro.

The Impact: Speed, Accuracy, and a Glimpse into the Future

The efficiency gains are remarkable. We’ve even created a short demonstration showcasing the new speed of assembly. With clean, schema-aligned content, development transforms into a simple process of assembly.

Building a page in only 20 minutes, using content-driven, schema-based higher order components.

The results speak for themselves:

  • No more tedious design adjustments.
  • No more frustrating formatting fixes.
  • No more multiple rounds of design review. What we get is accurate, on-brand output, delivered incredibly fast.

To put it in numbers: leveraging this schema-based approach for templated, higher-order components elevates the initial quality of our work, significantly reduces the review workload, and condenses development time for a typical web page from approximately 6 hours to around 20 minutes.

This workflow simplification doesn’t just save time now; it presents a clear opportunity for even easier automation in the future.

What’s Next? Scaling Our Success

We’re proud of what we’ve achieved, but we’re not done yet. While our current library of eight patterns is a strong foundation, it doesn’t yet support the full spectrum of content our diverse teams produce. Our ambitious goal for the next couple of cycles is to triple this number.

Each new pattern we build further liberates both our design and web engineering talent from routine, business-as-usual (BAU) tasks. This allows the entire process to accelerate, building momentum as we expand the system.

The journey to a more streamlined, efficient, and collaborative web creation process is well underway. By embracing structured content from the very beginning, we’re not just building pages faster; we’re building a smarter way to work.

Related posts


Anthony Dillon
8 January 2025

Web Engineering: Hack Week 2024

Design Engineering

At Canonical, the work of our teams is strongly embedded in the open source principles and philosophy. We believe open source software will become the most prevalent method of software development and delivery in the future. Being open source is more than making the source of your software available, it’s also about contributing to other ...


Maximilian Blazek
6 November 2024

Designing Canonical’s Figma libraries for performance and structure

Design Article

How Canonical’s Design team rebuilt their Figma libraries, with practical guidelines on structure, performance, and maintenance processes. ...


Bartek Szopka
18 July 2023

Vanilla 4.0 release

Design Article

Last week we released a new major version of the Vanilla framework. Vanilla 4.0 introduces the elements of the new style used for a current rebranding of Canonical’s brochure websites, including typography changes of headings utilising new variable Ubuntu font, wider grid width, removed rounded corners, some updated colours, and updates t ...