Hi, my name is Mate Mišlov, and for the past year and a half, I have been creating websites for clients using Gatsby. Over that time, I have built websites with Contentful, Prismic, WordPress, Firebase, Netlfy CMS, filesystem (markdown), and I have to say I have my favorites, but it has certainly not been the WordPress. So what has changed?
Well, 90% of my work is with clients who are not web developers. And having that in mind, making the content creating as smooth and as easy as possible is a big thing. Although using simple CMSs like Netlify CMS can do the job for simpler blogs/websites, it is really not that appealing to me as its UI can get really messy if you try to edit complex content in it. So far, my CMS of choice was Contentful. If you have not tried it so far, I encourage you to try it as it is excellent. It has a great content editing experience, a built-in image optimization, and the combination of Contentful, Gatsby, and Netlify is working really good.
But there are 2 pain points that I have with Contentful that are making me look further.
The first one is a limited number of content types. Currently, you have 24 content types available in the free and small plan, and if you wish to extend that, the next plan that offers 48 content types costs $879 per month. This is not a big problem for small websites, but if you wish to have a lot of flexibility with content types on the website , you can easily hit the limit of 24 content types.
The second pain point is the fact that empty content fields can brake the Gatsby build process. So let's say that you create a
Homepagecontent model, and you place a
Title field in that model. If you query for
Title in graphql query and you don't put any data to that content field, it will break the build. And explaining that to a customer that wants to leave that field empty for some time can be confusing.
Both of these pain points are not unsolvable. You can extend contentful with custom UI elements that would, in part, extend the complexity of the content you can have with 24 content types. You can now extend graphql schemas that will solve this problem of empty fields. But the main point is that it all makes your development process more complex.
Creating the first Gatsby website with Wordpress backend was not that bliss of an experience. I was using the
gatsby-source-wordpress plugin in combination with
ACFplugin. For some reason, it was changing content structure when the client would edit the content, and it was frustrating work to change the queries multiple times to make it work. At that point, I decided not to use WordPress with Gatsby anymore.
But then I found out about GraphQL API for WordPress, and it made me try it once more.
The reason I am quite excited about this is that this WP plugin works quite good. It is solving both pain points I have with Contentful, and as it is working with WordPress blocks, I have a feeling that this could be a significant step towards the broader adoption of Gatsby among non-developers.
Currently, this blog post is just a static Gatsby project with no external CMS. Step by step I will be transitioning it to WordPress with Gatsby project, and I will update you along the way with useful tutorials and tips.
Thanks for reading this far. :)