Thanks ralphbsz.
There are other sides to this.
Rolling your own code gives you ownership of the underlying infrastructure and escapes any concerns over software license compatibility. If it breaks, you wrote it and presumably know how to fix it. If a third party library breaks, it may take you a long time to either come up with a fix or wait for a fix upstream.
Lots of libraries do more than I want. This larger surface area carries more bugs and a higher risk of CVEs. I see the same libraries in 'pkg audit' over and over.
There's also the staffing issue. The more tools and frameworks you use, the longer the list of requirements in your job posts. You'll get the applications you deserve: none, or liars and incompetents.
It would be different if companies were thinking in the long term and were willing to invest in people. But in reality, the words "human capital" are just section titles in the annual social audit report of the company, it doesn't translate in facts.
Furthermore, technology is volatile, but applications last decades. Over time, you end up with technology patchworks, e.g. some features using XML/XSLT from the database to the browser, other features using Struts, some using Spring MVC, some more using Angular, and others using React. And the list is still open, as the company still needs the services of this application.
How are you going to find a developer mastering all those technologies to do the maintenance of the application while coding new features?
And if you find one, how long will you be able to retain him/her?
If you want your projects to be rolled out, you have to accept compromises.