London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Jacob Pretorius
May 28, 2024
  34
(0 votes)

Build a headless blog with Astro and Optimizely SaaS CMS

I’m a big fan of using the right tool for the right job. I’m also a big fan of Astro, for the right use case.

Let's explore Astro to see what it's all about and how to build an Optimizely SaaS CMS site using it.

What is Astro

Astro calls itself “The web framework for content-driven websites”, which sounds very fancy and highly relevant to us as we enter the wonderful headless content delivery world with the Optimizely SaaS CMS.

I’d imagine that many of the headless sites we’re going to be building over the next couple of years are going to lean quite strongly into not just being “content-driven” (that’s all websites?), but “content heavy”.

 
Screenshot of Astro website

 

The team behind Astro aren’t trying to build a javascript framework for all web experiences ever, instead, they go for a very specific kind of website. That gives them the luxury of making opinionated calls with the framework and the optimisations it can ship straight out of the box.

The Why Astro page has some great information, most notably:

  • UI-agnostic: Supports React, Preact, Svelte, Vue, Solid, Lit, HTMX, web components, and more.

  • Server-first: Moves expensive rendering off of your visitors’ devices.

  • Zero JS, by default: Less client-side JavaScript to slow your site down.

 

However, the Astro team know the lines blur really quickly between static site, SPA, PWA, and everything else content-driven you can build with other frameworks. So they have this Islands concept, where you can use your React/Vue/Svelte “components” inside your Astro project, and at build time they get rid of all the overhead from those frameworks and just ship the javascript needed to make your dynamic components work.

If you think about it, these optimisations start to open many doors.

I’ll wrap up this section with their design principles, which I think help explain their biases clearly

  1. Content-driven: Astro was designed to showcase your content.

  2. Server-first: Websites run faster when they render HTML on the server.

  3. Fast by default: It should be impossible to build a slow website in Astro.

  4. Easy to use: You don’t need to be an expert to build something with Astro.

  5. Developer-focused: You should have the resources you need to be successful.

What about Nextjs

Nextjs seems like it could be the default implementation choice for most Optimizely SaaS implementations, the Optimizely demo implementation also use next. As Nextjs itself is funded by Vercel and built with the React ecosystem you’re in relatively stable hands.

 
Next website screenshot

 

If you’re somewhat familiar with Nextjs then you’re probably already thinking these two frameworks have a lot in common, and you’re right. As always, it comes down to the use case.

I’m not going to argue the pros and cons here (maybe in a future post?), but I would like to explore the most simple of use cases where I think you could do well with either option.

Let’s build a blog

What could be more simple than a static site with a few pages and some articles? I can’t think of anything exciting enough to build and share here.

Thankfully, building a decent blog with Astro is ridiculously easy. I’m not joking. I moved my personal blog over from a custom CMS I built myself to Astro in less than a day, and it got even better in the process.

I spun up the Astro blog template and hooked it up to my SaaS CMS Optimizely Graph and what do you know we have a working website.

Screenshot of sample site

 

Check it out here https://opti-saas-astro-static-demo.vercel.app

In the next post I’ll walk through the code a bit and share how it all fits together, but for the eager you can find it here https://github.com/jacobpretorius/Opti.SaaS.Astro.Demo

May 28, 2024

Comments

Please login to comment.
Latest blogs
Content Compliance Without the Chaos: How Optimizely CMP Empowers Financial Services Marketers

In financial services, content isn’t just about telling your story — it’s about telling it right. Every blog post, product update, or social post i...

abritt | May 22, 2025 |

Opal – Optimizely’s AI-Powered Marketing Assistant

Overview Opal is Optimizely’s AI assistant designed to accelerate and enhance the entire marketing workflow. Integrated natively across...

abritt | May 22, 2025 |

Integrating Address Validation in Optimizely Using Smarty

Address validation is a crucial component of any ecommerce platform. It ensures accurate customer data, reduces shipping errors, and improves the...

PuneetGarg | May 21, 2025

The London Dev Meetup is TOMORROW!!

The rescheduled London Dev Meetup is happening tomorrow, Wednesday, 21st May, at 6pm! This meetup will be Candyspace 's first, and the first one he...

Gavin_M | May 20, 2025

From Agentic Theory to Practicality: Using Optimizely Opal’s Instructions Feature

A practical look at Optimizely Opal’s Instructions feature — from built-in agents to creating and managing custom instruction workflows. Ideal for...

Andy Blyth | May 19, 2025 |

Common Mistakes in Headless Projects with Optimizely

Adopting a headless architecture with Optimizely is a major shift from the traditional MVC-based development that has been the standard for years....

Szymon Uryga | May 19, 2025