It can be tempting for us developers to sometimes "over-architect" solutions. This is sometimes necessary but it often adds unnecessary complexity and increases the learning curve for developers new to the project. It important to keep things simple when at all possible.
Mobile/IoT projects are growing at an accelerated pace. In order for SonicJs to be useful to these solutions as a Headless CMS, 100% of the site content and media must be available via the API.
You shouldn't have to "fight" with the CMS to get it to do what you want. It shouldn't take 5x longer to do something in a CMS versus a custom project. This is a big problem I've encountered with nearly all of the before mentioned CMS that I've used. I'm highly committed to making development with SonicJs a productive and enjoyable experience.
Maybe it sounds lame, but it should be fun to develop on a CMS. It should allow you to leverage the framework for the boring stuff like user management, logging, page management, etc and allow you to focus on the fun stuff like building really cool UX, implementing that awesome UI that your company paid 6 figures to an agency to design, programming advanced business logic, etc.
Building your project in the right CMS should make you look good as well. You should be able to deliver a vastly superior product in materially less time compared to building from scratch.