Every week a new framework, language, or tool launches, each promising to be faster, cleaner, and the future of everything. For an engineer choosing a stack, it's overwhelming — and the temptation to pick the newest, shiniest option is strong. That temptation is exactly how teams end up two years later, drowning in a half-abandoned framework, rewriting instead of shipping.
Choosing a tech stack is a decision you live with for years. Here's how to choose one you won't regret.
To choose a tech stack you won't regret: prioritize proven, boring tools your team knows, with strong ecosystems — over whatever is newest and most hyped.
The criteria that matter:
"Boring" technology is underrated. The exciting new thing is usually the regret you'll be rewriting later.
Photo by Joshua Aragon on Unsplash
New technology is seductive because it promises to fix everything that annoys you about your current tools. And the engineering culture rewards novelty — the new framework gets the conference talks, the blog posts, the buzz.
But novelty carries hidden risk. New tools are unproven in production, change rapidly (breaking your code), have thin ecosystems, and might be abandoned entirely. The framework everyone's excited about today might be a ghost town in two years, leaving you maintaining code in a dead technology. Chasing hype optimizes for excitement now at the cost of stability later — and you live in "later" far longer.
"Boring" technology — mature, proven, widely-used tools — is dramatically underrated. Boring means:
| Boring tech | Shiny new tech |
|---|---|
| Proven in production | Unproven, surprises ahead |
| Stable APIs | Frequent breaking changes |
| Huge ecosystem | Thin libraries/docs |
| Easy to hire for | Tiny talent pool |
| Will exist in 5 years | Might be abandoned |
| Problems already solved | You hit them first |
Boring tools are boring precisely because they've been around long enough that the problems are solved, the docs are thorough, and the surprises are gone. That's exactly what you want for the foundation you'll build on for years. Save your innovation budget for your actual product, not your infrastructure.
A stack's theoretical superiority means nothing if your team doesn't know it. A "better" framework your team has to learn from scratch will ship slower, with more bugs, than a "worse" one they know cold. Expertise is a massive multiplier that hype discussions ignore.
When choosing, weight heavily what your team already knows well. The productivity of working in familiar tools — where you know the patterns, the pitfalls, and the ecosystem — usually dwarfs the marginal benefits of a technically superior but unfamiliar option. The best stack is often the one your team can already wield expertly, not the one that scores highest on paper.
A technology is only as good as its ecosystem. A language or framework with a thriving ecosystem means: libraries for whatever you need (so you buy instead of build), thorough documentation, a community to answer questions, and a healthy pool of engineers to hire.
A technically elegant tool with a thin ecosystem means building everything yourself, fighting poor docs, and struggling to find help or hires. The ecosystem often matters more than the technology's intrinsic quality — it determines how much leverage you get and how much you have to reinvent. Always check: is there a rich ecosystem around this, or will I be alone?
This isn't "never use new things." Sometimes new technology is genuinely the right choice:
The discipline is choosing new technology deliberately for real reasons, not reflexively for excitement. New for a genuine, specific advantage you can articulate is fine. New because it's trending is how regret happens. And modern AI-assisted developer tools can lower the cost of working in any stack — but they don't change the fundamentals of choosing one you'll live with.
Q: Won't choosing boring tech leave us behind competitors using cutting-edge tools? Almost never — competitors win on product and execution, not on having a trendier framework. Boring tech lets you ship faster and more reliably, which beats a cutting-edge stack you're constantly fighting. Your competitive edge comes from what you build, not what you build it with.
Q: How do I evaluate if a newer tool is mature enough? Look for real production adoption at scale, API stability over time, a growing ecosystem, and signs it'll be maintained for years. If it's still changing rapidly, has thin libraries, or depends on a single maintainer's enthusiasm, it's not mature enough for a foundational choice.
Q: What if my team wants to use a new tool to learn it? Learning is valuable, but a production foundation isn't the place for it — the regret cost is too high. Let the team explore new tools in side projects or non-critical components where the risk is contained. Keep your core stack boring and proven; experiment at the edges.
The tech stack you choose is a decision you live with for years, and chasing the newest, most hyped option is how teams end up rewriting instead of shipping. Prioritize mature, proven tools with strong ecosystems that your team already knows. Boring technology is underrated precisely because its problems are already solved. Choose new only deliberately, for a specific real advantage.
Before your next stack decision, ask: will I be happy maintaining this in two years? Weight maturity, your team's expertise, and the ecosystem over excitement. The boring choice is usually the one you won't regret — and the regret you avoid is time you spend shipping.
No following, no network, no luck. Just an unglamorous system I ran for eighteen months. Here's exactly what I did.

I went from 200 to 11,000 subscribers without hiring anyone. AI didn't write my newsletter — it did everything around it.

I chased big, audacious goals for years and burned out every time. Then I built my whole life around wins so small they felt like cheating.

Comments
Sign in to join the conversation
No comments yet. Be the first to share your thoughts!