Product update: Netlify CMS default content manager
October 03, 2018Netlify CMS is now the default content manager for Qards
After my initial "word out" campaign on producthunt and the amazing (unexpected) success I had with it I had the pleasure of talking with a lot of people that are interested in Qards and came to the conclusion that Netlify CMS would be a better default option as a content manager.
Most of the complaints were from the fact that Qards is advertising a totally free experience and the content manager at the time (Contentful) is a third party with marketing goals that may or may not ditch the free plan which was also limiting some of the users (I found it very generous to be honest). This, coupled with the fact that there is currently an issue with how related content can be added in Contentful, led me to branch out into testing the Netlify CMS a bit and see what it has to offer so I'll state the good and bad.
The good stuff
Things that I liked most about Netlify CMSEverything is free
True to our initial goal of having a blogging platform that is modern, fast and freeThe CMS is now part of the project itself and is committed with the code. There are some required integrations with the Netlify platform but I'm still 100% on path to providing a totally free platform for bloggers that is modern, fast and can be updated by publishers without coding experience.
The publishing experience is better
With Netlify CMS I was able to create the preview exactly how I wanted. The preview panel actually uses the same template and cards that the post page uses which means that your publishers are able to preview their entries without alteration or surprises. This was a real challenge with Contentful because of their current structure but I had amazing experience with these guys over on their slack channel and they are addressing the issue (they were already working on it) by adding the concept of Structured text
which allows you to embed child content directly into your text. Long story short: it was hard to publish content to Qards from Contentful but they are addressing it in the future.
Your content is versioned
Merge, pull, diff, commit, revertSince the backend is a Github repo you get all the benefits that come with it. We have no databases or servers and everything you create will be pushed to a repository of yours. This means that you can see changes and even go back in time without issues. There are adapters for Bitbucket and Gitlab as well.
The publishing experience does not require any git
experience. Everything is done by Netlify under the hood. When you hit Save
, actually, a commit is created and, when you hit Publish
, a merge of that commit is created.
More control to the developers
Breaking free of third parties means that I regain more control over the shape and future of Qards. I no longer have to align, adapt or wait for implementations that may change at any time. This allows me to take better decisions since I control and can give shape to the entire experience.
The bad
Most of these points in this section are inconsistencies that will be addressed soon by the maintainers of Netlify CMS so they reflect the current state of the project.
It's closely tied to Netlify
We're still at the mercy of a third party with marketing goalsEven though I'm a big Netlify fan I can't be sure that their current plans will remain the same. I already see "marketing" pouring in bit by bit (they have to pay salaries after all) and certain restrictions are starting to take place here and there.
The CMS team states that it is possible to use their product without being forced into using Netlify platform and I can see traces of it in the Authentication & backends section of their docs.
It's still at an early stage
Code may suffer significant changesFrom what I see, this cms was supposed to work out of a CDN but we're importing it into our React app as another set of components...not without its issues though.
Since what we can import from Netlify CMS comes bundled with its own version of react
and react-dom
we can see some problems with certain refs
not working. Those issues forced me to create a flag that tells the components when they operate in preview mode (publisher preview) in order to behave differently and disable some features. I'm not a fan of that because I am placing what I consider to be polluted code (code that gets to the end user) into my app but they said this is going to be addressed so good news ahead.