Skip to content
May 18, 2024

The full-stack framework discourse

JavaScript, Laravel, Rails, influencers & you

Every now and then, the topic of full-stack frameworks comes up. The debate is often framed as a choice between anything hot in the JavaScript world (now Next.js) versus Laravel, Rails, Django, and so on. And it's pretty tiring.

The JavaScript community has a flaw. It's too big. There's a lot of money to be made, and every new solution has a marketing push that makes it seem like the best thing since sliced bread.

For example, Next.js (which I enjoy using) is advertised on Twitter circles as the best full-stack framework, and educators/influencers push the same narrative, so it's easy to see why people get annoyed.

A full-stack framework has a lot of responsibilities. How do you handle emails? Writing templates? How do you test them? What about:

  • Background jobs
  • File uploads
  • Authorization
  • User impersonation
  • Multi-tenancy

When there's a lot of buzz, people are curious how exactly the JavaScript ecosystem is solving these problems. And this is where the friction comes in.

I don't love opinionated full-stack frameworks, but I have shipped projects on the side with Laravel and Django, and I love the money they have made me. There's an undeniable productivity boost with these battle-tested frameworks. And it's also a fantastic point of reference when you're starting out.

But they are not perfect. No matter which client-side solutions they push, they don't hold a candle to the JavaScript ecosystem. That's subjective, of course, but that's my experience.

Full-stack frameworks also ask you to commit to a certain way of doing things. Personally, I'm closer to the functional programming camp, and I don't mind tweaking my stack to fit my quirks. But I know what I must re-implement when not using a full-stack framework, and I respect their solutions.

So what irks me is that these discussions lack nuance. I fear many people haven't lived with their technical decisions long enough to see the consequences. It feels more like a marketing push than a genuine conversation. And people are quick to take sides, as if they were sports teams.

Ultimately, I'm not here to tell you what to use. Context matters, and different people build different projects. I just want you to be aware of the biases of the people pushing you to use (their) tools.

For example, if a company pushes you to use its framework and promotes another service for its missing features, how would you feel if half their team has angel investments in that service?

If an influencer has that secret silver bullet tool to share with you, how can they vouch for it without shipping a non-developer-targeted product?

Do all these people have your best interest in mind or their own? And how do you know?

Everyone wants to make you a fan, but don't take sides; it's pointless. Be critical of the tools you use and prioritize sanity for yourself and your team.