Sanity CMS for website creation or CRUD tool for content saving

Try to Create a custom website using Sanity CMS

  • Development Experience
  • Comments
  • Review of the Platform
Sanity Headless CMS

CMS Transition from the Legacy WordPress

It’s already 2024, and technologies are changing quite rapidly. Our US-based client, owning a business with an annual turnover of over $200M, requested a study on replacing a legacy WordPress-based public website with a more modern framework. The main requirements were:

  • Content managers should be able to create and publish content.
  • Use modern, high-performance approaches and modern JS frameworks (such as React or Angular).
  • Access to the backend for creating customized business workflows and features, and access to 3rd party APIs.
  • Cloud-based platform.
  • Capability for Continuous Integration and Continuous Deployment (CI and CD)

We asked one of our programmers, Deniss Beloff, to conduct a brief analysis of the possibility of transitioning to this CMS framework, and here is what he shares.

Q1. Does the Sanity CMS platform have a trial or free version so that a programmer can try out the entire system and understand how convenient it is?

Sanity offers a completely free plan that includes most features, except for scheduled publishing, AI Assist, comments, and task management. There is also a trial version of the paid plan (called Growth), which costs $15 per seat per month and includes all the features excluded from the free plan.

Q2. What difficulties did you encounter on the first day of work?

The installation of Sanity CMS went smoothly, but there were a couple of issues when setting up and integrating the frontend because some of the manuals were outdated. Also, since Sanity is a headless CMS framework, it was not entirely clear how to create a separate website and its frontend to view from the perspective of a public user the changes that I am planning to make using Sanity.

Q3. Is it possible to create custom web pages using this framework?

No, again, Sanity is a headless CMS, so it doesn’t work with a web frontend – it doesn’t have a page builder like WordPress’s Gutenberg, and there’s no way to create custom web pages without integrating with a frontend framework. It means, in other words, the end user will need to create a new website from scratch and implement and integrate an API to use the data that has been published with Sanity.

Below is a very simplified arcchitecture of your system if you would like to have it on Sanity. You may see in blue, what do we have in Sanity and in red – what you will have to add additionaly.

sanity schema

Q4. Can you edit the backend code and create a custom business flow for your project?

The question is inherently incorrect. if you meant that you need access to the backend code of a public website, then as I indicated above, a public website is something that you will need to create completely separately. Sanity is the Headless CMS

The backend code of the Sanity (the code responsible to save content in Sanity Content Lake) is not editable, however it is possible to define and customize content schemas, which determine the structure of the managed content. It is possible to add custom fields, validation rules and relationships between content types using JavaScript or TypeScript. It is also possible to create custom input components for the fields using React. Sanity can also be extended with plugins.

Example where we describe the Model “Event”:

Sanity Event

It will be editable on Sanity Content Studio Editor page where you will be able toedit Events:

Sanity UI

This is an example of the custom component written on React to be able to use in Content Studio:

Sanity Angular

Q5. Is there access to the database, and can you use your own database?

The database can be accessed using the Sanity JavaScript client, Sanity’s custom query language GROQ (Graph-Relational Object Queries), or the GraphQL API. All data is stored in the Sanity Content Lake, and there is no option to change it to another database. However, it is possible to integrate external databases through APIs.

Q6. Is it possible to access third-party APIs on the backend?

It is possible to communicate with third-party APIs and services in the custom input components. Sanity also provides a way to create webhooks that will be triggered on a specific event (e.g. new content is published). Again, in other words, Sanity provides the Sanity Studio which allows you to write new components in React (this requires a React developer) for integration with third-party APIs, but (and this is important) all data obtained from the APIs must first be saved in the Sanity Content Lake and only then can they be available to all external web resources that you have created separately and that publish this content.

Q7. What are your conclusions from the experience of using Sanity to create a Custom Company website with CMS functionality?

This framework does not meet our requirements.

  • You cannot create custom web pages. For this, additional tools are required.
  • You cannot install a standalone version of the entire project on our server. Part of it is always on Sanity’s servers.
  • The database is limited by Sanity’s capabilities and is difficult to customize.
  • The core of the project is closed, and there will be difficulties if you want to migrate from this framework to any other Custom CMS platform.

If there are currently no business processes and the system needs to be created from scratch, then Sanity allows you to create a model fully using a closed database and use it later on your another websites.

Diatom Enterprises as an Outsourcing Development Company

If you would like to collaborate, here at Diatom Enterprises we offer development services for various industries. We are the most proficient development company in Latvia, with more than 20 years of software development experience and countless successful projects.

Please contact us, so we can discuss our future partnership in development and provide you with a free estimation of your project!