Why do we always use Sanity on new sites?

Brief intro

Before we start it's worth quickly understanding the difference between a GUI based CMS and a code based CMS. For the purpose of this blog we're using identical methods of fetching data (API based) and discussing the benefits of both

A GUI based CMS

This type of CMS means that you use a drag and drop editer to allow you to create a schema (the forms that make up the CMS the client edits). This has the lowest skill floor because it's easy to build with and makes up the majority market share.

A code based CMS

Instead of a drag and drop CMS, you're manually setting up fields, along with descriptions using a code editor. This type of CMS is much more complicated to intially setup.

Which one is Sanity and why bother with that intro?

Sanity is a code based CMS. Why is that important? Well here's a list of things we struggled to do on basically any GUI based CMS and a brief description of why it's actually important for a client

Align the data from the CMS with the data on the website

The reason this matters is because as your data structure grows, the way you preview your site, the way you develop for it and the way that google interperets the site requires a significant amount of time if your data isn't paired via URL

Referencing data in an intelligent and transformative way

Okay, now you've got your data, you want to display it in a smart way. For example, maybe you only want to surface a certain subsect of blog posts to render.
E.g "I want to create a field that only surfaces blog posts related to the current category I'm in"

Extending functionality

For anybody that's ever tried adding icons to a CMS before, it's horrific. Imagine if you could extend the functionality of the CMS and create a simplified icon picker, whilst retaining performance. It's possible.