I have written a few different articles on Contentful in the past and on my other personal blog aquasar.io which actually was created using Contentful as a CMS. Contentful is not a bad CMS, but it does not deserve the popularity it has due to some terrible features, functionality and dogmatic approach to how a CMS should function. While I won't go over all of those drawbacks here, Butter CMS is structured in a way that makes sense for webhooks and publishing your articles without recurring unnecessary build minutes. This was something that was a nightmare with Contentful especially when Netlify started to limit the number of build minutes you had each month for all of your sites. Build minutes are not free. They are a valuable resource. At the same time you wont to make sure that when you publish your article inside the CMS it is live on your site right away. With Gatsby and static site generators that means creating a webhook to tell Netlify (or similar platform) that the article is created (published), deleted or updated (republished).
Unlike Contentful CMS, ButterCMS gives you control over these CUD (create, update, delete) operations. The content is not "auto saved" or "auto updated" when you are writing your article or blog inside of it. With Contentful writing inside of the CMS when you have webhooks setup result in the webhook getting called on auto save every single time. That means a ton of unnecessary build minutes on Netlify since the webhooks could be called literally every 5 seconds.
With ButterCMS you have control because the behavior for updates only occurs when the update button is pressed. Although you can change this setting on Contentful (it is somewhat hidden), the default behavior does this and is something to be aware of when first creating webhooks