> All in one solutions always look super nice when they first come out, as they can shortcut to just implement all the best practices that most people do right now and look very clean by omitting all the weird edge cases. But give it a couple of years, and you are stuck with a slow moving monolith.
I'd say that a lot of the pain comes from needing to integrate with the dozens of different pieces of software that people use for their bespoke work setups.
For example, you might use self-hosted GitLab for code and code reviews, but something like Jenkins for CI/CD - so all of the sudden you need to think about the webhooks and reporting build status back for the web UI. Of course, I've seen people just not do that any only Jenkins being able to show you what's going on with your builds (though at least with e-mails).
Furthermore, you might use something like Redmine or Jira for issue tracking which once again have plugins that you need for GitLab to be able to add links in the UI for actual changes done to the code for some business need. Of course, you could go with not the official plugin but something like Jigit which has its own set of oddities and configuration needs.
But if you can stick within the same ecosystem, such as GitLab and GitLab CI (which I implemented in the company and now the majority of new projects use it, because it seems like the sane choice) and maybe even GitLab with GitLab Issues, or even their new features for managing feature flags (which you might just not have otherwise, or will have XML configuration files) and environments, you'll generally have a pretty positive experience!
Personally, I always welcome new players in this market because competition is good, especially when the offerings can be self hosted (which is sadly not a lot of them).