After the 3-4 days trying to fix a deployment issue with Strapi, I finally decided to drop it. It's too new (so lack support and resources), not quite stable enough yet (amazing how difficult it is to deploy to Heroku - search "strapi heroku deploy" in Stack Overflow, you'll see), and I'm just not a competent enough coder yet to wrangle with new shiny tech at the frontiers.
I mean, Strapi has its pros. Super fast to create an API, nocode kind of easy when creating content types and one to many or many to many relations, and a WYSIWYG admin UI and editor. I love that it's built on Node.js, a well-established framework for backend, and that there's a npm package for everything (just like Ruby gems).
It's been a bit of a painful lesson. I don't mind debugging even if it's hard. With established frameworks at least I know the problem is with me, and that someone else must have encountered it before and there's a solution out there. But when it's hard because things are still not as well-made and stable, it's likely not even your fault that the bug is there. That takes the locus of control out of my hands to someone else or another company. I'm not a fan of that kind of lock-in.
So the key lesson here is, between "cheap, fast and good" where I can only choose two, I better stick to just cheap and good. Because cheap means it's common and commoditised, have been around for some time, so there's lots of tutorials, questions and answers, resources, blog posts, docs, guides and most importantly, a helpful community to help me get through tough bugs and difficulties. Good means the quality of the framework, its stability and the returns on my investment in time is more predictable. Avoid fast because it's a fatal temptation for noobs. Strapi was fast, but it can only be fast if what you need is so basic and simple that you can stay within the narrow limits of what the new tech can do well. Because once you have to customise things on new tech, you'd better be very competent and familiar as there won't be much help available.
So, love Strapi for its promise, just not this time....yet. Perhaps later, when I'm better and stronger and not in a hurry to make my own products...
OK so it's back to Rails!