Interesting post and I think it is very timely. I have tried using WordPress as a headless CMS for some time now. It mostly works.... but when it doesn't, it can be outright frustrating. This is why I have turned pessimistic about Wordpress' future recently.
I seriously believe the future of the web is in headless CMS'. But the more I work in the space, it is clear that Wordpress needs to be forked and optimized as a true headless CMS before it can be reliably used as one. There are a million different headless CMS products out there right now that I have been testing and have really fallen in love with these products. Sanity.io is a great one for a hosted option, as is DatoCMS. I think that Directus (which I have used on several projects now) is the closest alternative to Wordpress because it is free and self-hosted. I have been testing out Twill (twill.io) personally recently because it offers a block-based editor similar to Wordpress' new Gutenberg editor. That project works great headless or as an actual backend (built in laravel) and it also a self-hosted open source alternative.
These products are built from the ground up to accommodate different data models and to be managed headless. As a developer, I find it to be less stressful and much faster to use these products over trying to make WordPress work for a specific project and add all these bloated plugins. Wordpress is slow compared to what most Headless CMS' offer. And as noted in this article, it is clear that the team building WordPress are not architecting it to work as a Headless CMS.
You and I are of very similar mindsets to the point of it being scary.
I think Wordpress requires a complete rewrite, so it at least follows some PSR standards. Their current codebase doesn't follow a standard.
Articles like these remind me why I am happy to have stopped working with WordPress years ago.
I wrote this after my team hit a wall while trying to use the new WordPress Gutenberg editor. We build ReactJS sites that consume data from WP REST APIs, and as Gutenberg works now, it bundles all block data into a single HTML content string - which is difficult, if not stupid, to parse into React components on the frontend.
Hope you find it interesting!
I've just started getting into using headless WordPress, but haven't got far into Gutenberg yet. Sounds like while Gutenberg has some good ideas, it isn't really ready for widespread use yet. Thanks for the heads up!
I don't have strong opinions regarding if it is ready for use with a typical PHP-based frontend, but for a use-case similar to our specific set of circumstances, I wouldn't recommend. It's too bad, really, because we actually like the UI.