TL;DR: After years of using minimalist frameworks (Fastify, FastAPI, Hono, Falcon, Pyramid), I have zero side projects shipped. I spent more time researching tools than building with them. In 2026, I’m switching to batteries-included frameworks like AdonisJS.
The minimalist framework developer
The irony is that I started with Django. Years of productive development with a batteries-included framework. It worked. I shipped things.
At some point, I convinced myself that minimal was more professional and gave me more control.
For years, I was that developer. Fastify. FastAPI. Hono. Pyramid. Flask. Falcon. I believed in the philosophy:
- More control - I decide every dependency
- Faster APIs - no framework overhead
- Swappable libraries - not locked into anything
- Better understanding - I wrote the code, I know it deeply
And honestly, it worked fine. They were fast. They did exactly what they needed to do. But none of that helped me actually finish a project.
Every new project started the same way:
- Research the latest libraries
- Compare ORMs, validators, auth solutions
- Wire everything together
- Debug integration issues
- Write boilerplate that felt suspiciously similar to the last project
- Finally, start on actual features
I convinced myself this was building expertise. It wasn’t.
What changed
I found AdonisJS. And at first, I dismissed it:
- Not as popular as Express or Fastify
- Smaller community
- They build their own packages instead of using “standard” libraries
- Bus factor concerns (largely one maintainer)
Then I spent a bit more time with it.
- 10+ years of active development
- Everything I need built-in: auth, validation, ORM, mail, and queues as a plugin
- Opinionated structure: no decision fatigue
- It just works: start building features on day one
I was worried about the wrong things. I worried about popularity and hiring. But the real problem was simpler. I never finished anything.
My stack for 2026: AdonisJS, Lucid ORM, PostgreSQL. Standard Node.js, SQL, and Docker. If the project grows and AdonisJS isn’t enough, I’ll have the resources to migrate.
Why 2026 is different
The tools are better than they used to be. AdonisJS v7 is around the corner with E2E type safety, zero-config OpenTelemetry, and built-in queues on the roadmap. Laravel continues to innovate. Rails keeps going strong.
I tried to think about what actually matters for side projects. If thousands of users show up and I need to hire, that’s a good problem. I can migrate later. Many successful companies rewrite parts of their systems over time. The first version is never the final version, but there has to be a first version.
When minimal frameworks still make sense
Looking back, leaving Django for minimal frameworks wasn’t a mistake. I learned how ORMs work under the hood, how auth systems are built, and how to structure applications from scratch. That knowledge has value. But I confused learning with building. I kept picking up new tools instead of finishing something with the tools I already had.
I’m not saying minimal frameworks are wrong. They’re the right choice when:
- You have a team that can maintain custom integrations
- You’re building something highly specialized
- Performance is genuinely critical (sub-millisecond matters)
- You’re building a library or framework itself
- You enjoy the process and have time for it
But for solo developers trying to finish a side project? For MVPs that need validation? The batteries-included approach makes more sense.
Thanks to the AdonisJS team for ten years of solid, well-documented work.