Skip to content
Sanity
    • Platform

      Sanity Studio

      Flexible editing environment

      APIs

      Connect to anything

      Content Lake

      Real-time database

      Try product demo

      Features

      Real-time collaboration

      Fearlessly work with content

      Precise content querying

      Treat content as data with GROQ

      Localization

      Coherent messaging across territories

    • Use cases

      E-commerce

      Richer shopping experiences

      Marketing sites

      Control your story

      Products & services

      Innovate and automate

      Mobile apps

      Content backend for every OS

      View all

      Integrations

      Shopify
      Mux
      Vercel
      Netlify
      Algolia
      Cloudinary
      BigCommerce
      Commerce Layer
      Smartling
      Transifex
      View all
    • Learn

      Documentation
      Studio API Reference
      API reference
      Guides
      GROQ cheat sheet
      Sanity UI
      Get started

      Build and share

      Templates
      Tools and plugins
      Schemas and snippets
      Project showcase
      Share your work
      Browse Exchange

      Frameworks

      React
      Vue
      Next.js
      Nuxt.js
      Svelte
      Remix
      Gatsby
      Astro
      Angular
      Eleventy
      View all
    • Discover

      Blog
      Resource library
      Agency partners
      Become a partner
      Technical support
      Talk to sales

      Case studies

      Puma

      Source of truth for global markets

      Aether

      Unique digital shopping experience

      Morning Brew

      Omnichannel media distribution

      InVision

      Delivering exceptional customer experiences

      View all

      Popular guides

      Headless CMS
      Structured content
      Content modeling
      Headless SEO
      Static websites
      View all
    • Enterprise
    • Pricing
    • Log in
    • Contact sales
    • Get started
Contact salesGet started
Published April 4th 2023

How RBI uses Sanity to power content for 20 million users

The parent company of Burger King, Popeye's, Tim Horton's, and Firehouse Subs needed a solution that would enable teams across different regions and brands to deploy their own content.

Sarah Beldo

Head of Content Marketing and Communications at Sanity.io

Restaurant Brands International (RBI) manages some of the biggest names in food service—Burger King, Popeye’s, Firehouse Subs, and Tim Hortons—representing a whopping 30,000 restaurants in over 100 countries. RBI’s internal applications serve content to over 20 million monthly active users, and they can’t afford for any of it to be stale. Thanks to their decision to move to Sanity and adopt a structured content approach, content is as fresh and fast as their menus.


Let’s start with a definition. Structured content is content broken up into its smallest reasonable pieces and stored as data. The content is easily queried and format-agnostic, which makes it easy for teams to repurpose any element for different platforms, regions, and users.


Before switching to a structured content approach, the teams at RBI weren’t satisfied with their speed of deployment. The stakes were—and are—very high. RBI needs to stay agile to respond to market changes and user preferences. How could they equip content teams working across brands, platforms, and regions to efficiently and safely manage and deploy their own content?

At Sanity’s Structured Content 2022 conference, Mitchell Posk, a software engineer with RBI, shared how RBI adopted a structured content approach to move faster, while significantly improving the experience of diverse internal users and millions of global customers.

Watch the video of Mitchell’s talk:

Challenges of an unstructured content world

Prior to adopting the new approach, the content team faced an uphill battle every time they wanted to make an update. They would have to fill out an Excel sheet, which they would send to an agency who then often sent it to a sub-agency to finally implement the change. The process took days or even weeks—and at the end, there was never any guarantee that the content would look, feel, or behave the way the content team intended.

Disillusioned, the content team stopped pushing updates as often as they wanted. Application content became stale and outdated. It was time for a new approach: structured content.

To serve their content stakeholders, a team of product managers and engineers at RBI had an ambitious goal in adopting structured content: to be able to deploy new content in under three minutes. And, they wanted to achieve this goal in under a year—a bold target for a lean team of just 15 people.

RBI decided on four must-haves for their new content platform experience. It had to be trustworthy, rigid and flexible, interoperable, and scalable.

Priority #1: Trustworthy updates


Before Sanity, the main pain point for the content team was that they couldn’t trust their tools. “They’d say: ‘If I’m updating content, I don’t want to have to guess what it will look like or how it will behave when I deploy it to production’,” explained Mitchell.

RBI wanted their platform to consistently produce content that looks, feels, and behaves as expected. This maximizes the content team’s control, creating a streamlined and engaging user experience.

To help eliminate guesswork, the team built real-time content validation directly into the application. When a member of the content team inputs something that won’t work from a technical or presentation standpoint, they immediately receive an explanation of what’s wrong, how it would affect the front-end, and a suggestion for how to fix it.

By providing actionable feedback to the content team before they submit their work, the engineering team empowers the content team to work more autonomously (and reduces requests of the engineering or product teams). With Sanity, editors are confident that the content they push to end users is clean—and that it behaves as intended against their goals.

Priority #2: Rigid and flexible


While this might seem like a paradox, both rigidity and flexibility are important parts of a structured content approach. The RBI team aimed to strike a balance between effective core features and custom functionality, so they could easily tailor content to the unique needs of each brand and market.

To build rigidity into the platform, the team created one-to-one mapping between content and the frontend. The front end is organized by unique pages and reusable components, so they adopted that structure for their content editing platform as well.

Engineers designed the content editing experience to be as familiar as possible to content teams. For example, a multi-step front-end workflow like navigating a menu was engineered to appear the same way when someone was making content updates in Sanity. The implications were game-changing, providing editors with a more intuitive (and therefore efficient) experience.

On the other side of the coin, having a flexible content platform meant RBI could cut down on complexity and confusion for content teams. Like a lot of companies, RBI’s markets are unique, with many different regions and brands.

For example, the “Roll Up the Rim” campaign at Tim Hortons in Canada isn’t applicable to Burger King in the US. When scaling to hundreds of markets, these nuances can be confusing to the content teams working in different markets. RBI was able to hide irrelevant folders and options for various brands and markets, reducing the noise. Similarly, they reduced the noise in smaller data chunks themselves—for example, by hiding Google food ordering for Tim Hortons, where that isn’t an option.

“One of the beautiful things about working with Sanity is that we have the freedom to structure our content however we want,” explained Mitchell.

Priority #3: Interoperable

The RBI content team handles a wide variety of data housed in multiple sources of truth: point of sale data, restaurant data such as operating hours and location addresses, and menu data like the items available for sale and nutrition facts. As such, it is crucial that their structured data platform be interoperable, meaning it can interact with multiple external data sources.

Using the Sanity JavaScript client, the team built out a set of tools that regularly populates the Sanity Content Lake with needed data, which is then easily pulled into the Studio for editing. By pulling all this data into one query-able source (with real-time syncing), the content teams have what they need to keep content fresh and up-to-date.

Priority #4: Scalable


For teams at RBI, agility is the name of the game, so they can stay competitive. At the beginning of their structured content journey, they had the goal to be able to spin up new markets with new content and make edits in minutes, rather than days. And they didn’t want to put a strain on their lean development team.

The key to Sanity’s scalability lies in three important features: real-time content validation, global mass content updates, and autonomous content editing.

First, since the platform lets users know whether something is working and why, documentation is provided in real time. Content teams don’t need to reinvent the wheel every time they sit down to add new content.

Second, the platform enables fast, seamless mass updates because it treats content as data, whereas an unstructured approach requires teams to manually update each piece of content by hand. For example, RBI wanted to make the content on their sites and apps more accessible by adding alt text for images. They dynamically updated thousands of content pieces in minutes.

Previously, updating content was a time-consuming, cumbersome process that didn’t easily scale with RBI’s new markets and products. With Sanity, the team quickly identified the repeatable steps that the content teams follow when they launch a new market. In just a few clicks, they built custom tooling that relaxed any stress points along that journey, turning the process into a series of repeatable workflows.

Third, updating content is non-blocking. The content team can get to work right away while other teams, like Product and Legal, work in the background. Since the content team can own their own data, there are no dependencies; everyone can work independently.

“In a non-structured-content world, this would be a manual process and take a lot of time and effort. But we were able to treat our content as data and dynamically update thousands of content blobs in just a matter of minutes,” explained Mitchell.



Set your content free

With the Sanity Composable Content Cloud, RBI treats all content as structured—from images and text to actionable data and metadata.

This structured content, which comes from a myriad of dynamic sources, is aggregated into Sanity Content Lake and made readily available for teams across RBI’s many brands and regions.

The net impacts of structured content powered by Sanity is improved scale for internal teams and more accurate, fresh experiences for customers.

A structured content approach puts content in the driver’s seat. Rather than trying to fit content into an arbitrary container, teams can focus on what matters: forming meaningful connections with users.


Request a demo

Page content

  • Challenges of an unstructured content world
    • Priority #1: Trustworthy updates
    • Priority #2: Rigid and flexible
    • Priority #3: Interoperable
    • Priority #4: Scalable

Product

Sanity StudioAPIsContent LakeSecurity & Compliance
  • Sanity vs Contentful
  • Sanity vs Strapi
  • Sanity vs Wordpress
  • Sanity vs Adobe Experience Manager
  • Sanity vs Hygraph
  • Sanity vs Sitecore
  • Sanity vs Storyblok
  • Sanity vs Contentstack
  • Sanity vs Prismic
  • Sanity vs Drupal
  • Sanity vs ButterCMS

Resources

DocumentationBlogResource libraryCase Studies
  • React Blog
  • Gatsby Blog
  • Next.js Landing Pages
  • Making a PWA
  • Single Page Application
  • Svelte & Typescript App
  • Vue & Tailwind Blog
  • Developer Portfolio Templates
  • Form validation with Yup
  • Live Preview with Next.js and Sanity.io
  • Next.js blog
  • Next.js personal website
  • Clean Next.js + Sanity app
  • Clean Remix + Sanity app
  • Clean SvelteKit + Sanity app
  • All Templates
  • Agency partners
  • Technology partners
  • Headless CMS 101
  • Static Sites 101
  • Headless Commerce 101
  • CMS for enterprise
  • Headless SEO
  • Localization
  • Content as a Service
  • What is a DXP?
  • Typescript 101
  • Ecommerce SEO
  • What is a Composable DXP?
  • What is an API?
  • GraphQL vs REST
  • React CMS
  • Next.JS CMS
  • CMS for Shopify
  • API-first CMS
  • Content platform
  • Multilingual CMS
  • Static Site CMS
  • Gatsby CMS
  • Node CMS
  • E-commerce CMS
  • Vue CMS
  • Angular CMS
  • GraphQL CMS
  • Newspaper CMS
  • Magazine CMS
  • CMS for apps
  • Remix CMS
  • Nuxt CMS
  • SvelteKit CMS
  • Agile CMS
  • Eleventy CMS

Company

Contact SalesEnterpriseCareersTerms of ServicePrivacy PolicyAccessibility Statement

Stay connected

  • GitHub
  • Slack
  • Twitter
  • YouTube
  • Stack Overflow
  • Blog RSS
  • Newsletter
©Sanity 2023