Case Studies


Elliot Coad Head of Development at Shortlist Media.

Content publishing needs a hero! Here’s a primer on our authoring product

In brief

We wanted to reach that holy grail of doing more with less when it comes to horizontally supporting multiple content brands with a sensible size team of devs. There are an unnerving number of layers involved in publishing rich and dynamic content in a world of spiky traffic, dynamic ad serving, performance savvy audiences, third party integrations, changing user behaviours and platforms to consume it on.

We identified the complete set of layers, designed them as a series of compatible protocols, and named it Croissant. The result is a fully fledged and flexible publishing platform, where you can set up a new brand and be production ready in a matter of hours. It allows you to spend time on the hard part, making a product shine!

Croissant in numbers

  • Combined audience of 6 million users per month
  • 16 sites and apps are powered by Croissant
  • 25 open source Croissant integrations on GitHub
  • 100% uptime across all production environments (it’s only a matter of time…!)
  • 80+ Server side and client site plugins/dependencies
  • 1 birthday celebrated by Croissant

Content platforms

The recent rise and rise of content platforms places the Web as just one of the ways you’ll read our content.

The list (for now) looks like this:

  • Web
  • Facebook Instant Articles
  • Apple News
  • Native apps
  • Google Accelerated Mobile Project

These platforms will come and go so it is fundamental that our platform doesn’t get too cozy with any of them and welcomes new arrivals.


As an ad-supported business it’s crucial we place the ever-changing requirements at the heart of the platform. It’s one of the elements which has the most moving parts, from client’s creative to the analytics tools that are peering in and making sure we’re putting the right ads in-front of actual human eyes.

One of the key metrics of ad slots is “viewability”, the notion that the advert has been viewable, onscreen for a minimum amount of time. Each placeholder for ad creative has its own set of parameters that we can tune specifically to its best performance.


Events, competitions, vouchers, and sample give-aways. This is our bread and butter for engaging and giving back to our audience/subscribers. This promotions machine is a sizeable part of our platform and warrants its own blog post for those who are that way inclined. 

In essence, capturing lots of varied user data safely and then doing something interesting with it is something we’ve spent a great amount of effort getting right!

Focus on the visible

The sum of all the parts that are needed to thrive in all weather is a large system of many components. Unfairly, it is just the visual interface that the user perceives! It is also where the app lives and breaths, its visual functionality, how it is judged for its creativity, branding, reading style, mood - pretty much the entirety of the human psyche is locked within that layer. It’s arguably the most difficult to get right and it’s never done.

This is why we chose to prioritise this above all else. Our development effort is poured in to here, where the behind the scenes should not be a time sink. With Croissant we lean heavily on solved problems to handle large swathes of the system. It’s the manner in which we combine and tailor these that result in a widely battle hardened system, with low propensity to receive bugs that have anything to do with a backend, CMS, authoring, password resets, server configurations, API issues etc.

The front-end layer is where we double down and spend our collective time immersed in. Making time for prototyping, iterations, tea, light bulb moments, fixing the not-so-lightbulb-moments, and the whole perpetuity of wanting to improve our products.