Sanity: Most customizable
Last updated
Last updated
Rangle.io
For most retail e-commerce clients, we use Sanity because it’s flexible and developers and content teams alike love the experience.
Developers can customize content models to mirror the needs of a client’s business. For example, an e-commerce brand’s main content may be product pages; however, a consulting agency’s main content may be blog articles or case studies.
In Sanity, we can also add custom input fields and widgets and customize how users interact with and navigate the platform. For example, if a user is editing a blog, they don’t need to see all the other components and content entries that are irrelevant to blogs. In Sanity, you can set up custom navigation to hierarchically organize your content model.
In Contentful, users select the content type and see everything that’s there as a long, unstructured list of content types, which makes it more difficult to find what they’re looking for. This is in part because Contentful offers a graphical user interface (GUI) for content modelling; the cost of having an easy-to-use GUI is less flexibility in customizing the UI.
You can also create a custom navigation bar so that an author editing the hero editorial on the home page doesn’t have to see all the other content on the page.
Sanity also has the most extensible, easy-to-use, and robust rich-text editor we’ve seen out of all the headless CMS tools. It returns rich-text content as portable text, which can be used in pretty much any format or markup where you want to render rich-text content. You render portable text by serializing the arrays that contain your content into the format you need it. There is tooling for generic markup and programming languages and for popular frameworks, making it easier to serialize portable text and letting you decide how custom content types should be handled.
Another highly customizable RTE we like is Directus’ RTE, which is based on TinyMCE. Contentful’s rich text editor is proprietary and doesn’t allow you to add custom components.
Sanity is the only headless CMS with its own querying language: Graph-Relational Object Queries (GROQ).
Sanity, Contentful, and Strapi all support REST and GraphQL APIs. With REST, whatever endpoints are made available by whoever wrote the API dictate what you can query. GraphQL offers more flexibility because you can dictate what shape of data you want returned, but if you don’t know the shape, it will return an empty object.
With GROQ, you can return everything. For example, when you pick components on a page, you have to pick them ahead of time to use with GraphQL; with GROQ, you can tell it to return whatever’s there, or you can specifically query the shape of data you want. The ability to return everything is powerful because CMS data is dynamic, and GROQ offers you the flexibility of querying data you want without having to hard code anything at the beginning.