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
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.
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.
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
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
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"
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.