For twenty years the advice was simple: don't reinvent the wheel. Wheels were expensive to make and risky to get wrong, so you reached for someone else's. That advice quietly expired.
Two things happened at once. Writing code got dramatically cheaper, thanks to LLMs. And using libraries got structurally more expensive, because every dependency is now a recurring obligation: triage, audits, patch windows, and the maintainer who disappears or ships garbage. The trade we all signed up for has inverted, and most architecture teams haven't noticed.
So here's how we're advising clients.
Use a library when the domain is security-sensitive or genuinely hard to get right, and when the library is mature, reviewed, well-supported, and doesn't drag in a forest of transitive dependencies. Let the experts handle the hard stuff. That's what they're for.
Write your own, assisted by an LLM, when you need only a small slice of a large library, when the functions are simple to specify, when the approval and vulnerability costs are high, and when the code is small enough to test exhaustively. That last condition matters most. If you can't fully test it, you haven't replaced the community. You've just fired them.
This isn't a manifesto against open source. It's a recalibration.
Want help drawing that line for your stack? That's the call we help teams make every week.
Previous article