Identification System.User.Blog_v2.0

Published on:

Using Sanity

I’ve been researching headless CMSes lately to rebuild a friend’s Wix site. The first CMS I ever used was Contentful, almost 5 years ago. At the time, I wasn’t very discerning when it came to weighing the usefulness of a tool against its complexity. My impression of Contentful was bland enough to convince me that it wouldn’t be the right choice this time around.

My friend has numerous photos of her artwork she wants to showcase on the internet. Accompanying these visual displays are tiny bits of “metadata” providing insights into how each project came to be.

Despite being a fervent supporter of statically generated websites (Sadly, I have long since moved on from Hugo), I don’t think it’s enjoyable for my friend to learn git just so she can add her work to her website. This is where Sanity comes in; it offers a web interface almost entirely separate from its project management console. Unlike Contentful, objects in Sanity are defined in a JSON format. Aside from a third-party schema generator, there aren’t any graphical ways to define objects. After setting up the necessary objects, my friend can then log into an editor interface that has been generated and deployed on Sanity’s servers (which I could technically self-host) to edit and upload more pictures herself.

After all, there are alternatives to using CMSes, and I even considered building a custom editor like with the Untitled Website. At the time of writing, Vercel has a blob storage feature in beta available to me for storing photos. Out of consideration for my time, or in layman’s terms, avoiding challenges sounded like a great idea, I’ve decided that Sanity’s solutions will be more reliable anyway.

(2024.01.31) Edit: The website is now live at cmht.vercel.app!

© 2025 Runkai Zhang — Document Type: v2.0-technical-spec