Fully transparency, I'm the Co-founder of TakeShape, a headless GraphQl CMS.
TLDR: It's not a good idea to build a Basecamp clone on a CMS. CMS should be used when you're managing content, but probably not user generated content. Consider JAMstack over tradtional tech stacks like LAMP. Use a headless CMS instead of a monolithic CMS.
Casey did a thorough job talking about CMS, so I'm going to come at this from a different angle. Also, hat tip to the use of the soapbox element. I'm going to use it here :)
The Big Question
You're exactly right in your description, you're bolting on more and more services and functionality until you have the application you wanted and you're doing all of this on the server. This results in worse and worse performance and more and more opportunity for security vulnerabilities for your application. The trouble is that you're adding on to platforms that were designed for a specific purpose, to manage content, and in the case of WordPress to manage blog content. WordPress is not an application platform, no matter how many times you see people using it in this way. You can bend these systems to your will, but they're more likely to break your spirit while you're doing it.
Compose Your Application Close To Your Users
Enter the JAMstack. When you're building with the JAMstack you're shifting where the functionality of your app comes together, from the server to the client. You're composing best-in-class services together on the client to make your application, rather than using whatever is available to you in your monolithic server app. You might actually already be part way there, think about a commenting system. If you used server side commenting and had a popular blog you'd be in some serious trouble unless you had a beefy backend, not to mention the expense of running a beefy backend during slower times.
Getting on the JAMstack
Thank you so much for the detailed reply. I checked out TakeShape and was completely blown away! Still, I have old scars and am not going to quickly jump on to the hype train. I used to think JAMstack was another buzzword, but this has really opened my eyes to new possibilities. I will definitely explore TakeShape (and JAMstack) more.
There's a great conference for JAMstack that just occurred last week. I wrote up a bit about the happenings there takeshape.io/articles/two-days-at-.... If you start to get into the JAMstack more definitely check out the conference! Lot's of friendly people in that community. It was a blast!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.