I love giving new technologies a try to see what's new and innovative. Sadly with Strapi, I was disappointed.
I was working on a new project and ran into JAM stack. It's perfect for what I need and allows me to try cutting edge technologies. I recommend looking up more about JAM stack as I'm not going to jump into that here. I stumbled upon Strapi over at HeadlessCMS.org.
Strapi is a relatively new CMS, since October 2015. Stapi calls itself a "powerful node.js Headless CMS option" which I agree with. Strapi is growing in popularity with 13,908 stars on GitHub and growing at nearly twice if not triple any other headless option. The interface looks polished and has good reviews online. It has GraphQL which added extra points for me. I checked out the community and found it quite active. After reviewing the above I said, "Well I have to try it now".
Strapi was fast to set up. It uses Node with MongoDB, but you can select other database options.
Database Options (Note restricted by specific database versions)
Not too bad if you ask me. It was simple to run and get started. I had zero complaints during set up especially compared to a CMS like Sitecore/AEM for set up.
I found Strapi was a great experience overall with simple to use API. It uses CRUD and allows for customizable permissions. This allows you to restrict access to specific content. You can also pass optional parameters to filter and sort. All of this is configured in the Strapi interfaces.
The interface is one of the better ones out there for a CMS. I could very easily give this to a client and have them happy with the overall experience. Editing content is also straight forward and clearly separates your content types.
I started to run into the following issues while developing.
Installing plugins on windows doesn't really work. I wanted to use the Graph QL library and every time they installed it would show successful than not work. When searching online it was a common problem. In the end, I could live without it.
The feature list isn't very long. I ran into functionality that I commonly expect like workflows, localization, duplicating content, etc. My biggest issue is when you create and save a piece of content it's live. That's the entire flow right now. I've checked the upcoming features and it's in progress, but I really need it.
You can't filter by related content types. For example, you can create tags and link them to your articles. ts common to want to filter by a specific tag. With Strapi You can't filter articles with a related tag. The feature looks like it's in progress, but for a long time(like 2017 long). I'm not sure where the feature currently stands. This seemed like a common pain point online.
Modifying after content type changes
Modifying content fields doesn't always work. If after the fact you have a new requirement to change your template the process felt buggy. It was inconsistent for me, but I ran into instances where I updated my fields and it wouldn't let me save my content anymore. I had to delete all of my content before it started to work again. I ran into this multiple times and wanted to flip a table every time.
Deleting stopped working
The final straw was when I started to develop a new feature and went to delete an item, but it didn't delete. It wouldn't let me even click the button. I just couldn't delete it for what looked completely random. I would start the instance and eventually, it would work. As soon as this started happening I canned the CMS from my project.
I recommend looking over the features Strapi comes with and looking at the road map Here before you decide to use it. That's why I can't recommend Strapi quite yet. It has potential but needs time.