DEV Community

Cover image for Node.js Frameworks Roundup 2024 — Elysia / Hono / Nest / Encore — Which should you pick?

Node.js Frameworks Roundup 2024 — Elysia / Hono / Nest / Encore — Which should you pick?

Simon Johansson on November 01, 2024

Node.js web frameworks — where do we even begin? With so many options out there, choosing the right one for your project can feel overwhelming. In...
Collapse
 
codexam profile image
Subham • Edited

Honestly, NestJS is the way to go. Once you've tried it, you realize it’s basically like the TypeScript equivalent of Spring Boot but with a lot less headache. Nest is made for scaling, and if you're dealing with microservices or even just a well-organized architecture, it's a no-brainer. Other frameworks? Setting up pipelines, decorators, handling Redis, Kafka, RabbitMQ, gRPC – you’ll be building all that from scratch and probably still not hit the same efficiency.

With Nest, everything's already encapsulated and streamlined through decorators and built-in setups. Even on smaller projects, you’re building faster because you’ve got all these structured modules, and you’re not having to reinvent the wheel. The way it separates business logic, services, and controllers keeps your codebase manageable – you won’t end up with a pile of spaghetti code. Trust me, after trying all kinds of frameworks, Nest just hits different for clean, scalable builds.

You can check one of my blogs about nest - Scalable REST APIs with NestJS

Collapse
 
sackingsand profile image
Yudha Putera Primantika

NestJs does come with significant learning curve compared to others, but later when you really understood what it's opinions are, you'll be flying with your coding and fixing. That thing is crazy good for microservice infrastructure, it's very intuitive and saves lots of time.

Collapse
 
mindplay profile image
Rasmus Schultz

Encore is presented as a framework here, which is actually misleading - it is an alternative runtime that replaces Node entirely.

Encore is an entirely different category from the things you're comparing to here. This wasn't even touched on in this article.

To be honest, the whole article reads like another attempt at misleading advertisement for Encore, and it isn't the first time you've attempted something like that:

dev.to/encore/how-to-make-your-exp...

A similarly misleading title (which you declined to change) and essentially a guide to porting your Express app to Encore.

Likewise, this article would have you believe we're comparing frameworks, when Encore isn't even strictly (or at least not only) a framework.

I honestly think you're going about your marketing and placement of Encore all wrong.

Why are you trying to position this as an alternative to Express, one of the lightest lightweight frameworks there is?

You're an entirely different category of product.

I'm not honestly completely sure what category of product you are. You want to be a Typescript framework, but you're really a platform, and you're based on Go?

To be honest, this framework seems to be trying to break out of it's own niche, perhaps because it's a niche that doesn't really exist? 🤨

Collapse
 
mage1k99 profile image
Magesh Babu

It's good to see someone has good clarity about these things

Collapse
 
usman_awan profile image
USMAN AWAN

Bro, nice work. But in 2025 deno might overcome NodeJs soon.

Collapse
 
eshimischi profile image
eshimischi

Bun already did overcome both of them

Collapse
 
marcus-sa profile image
Marcus S. Abildskov • Edited

You should use deepkit.io if you're not a noob.
These frameworks are a joke in comparison.

Collapse
 
mindplay profile image
Rasmus Schultz

Encore seems similar to DeepKit in terms of size and scope? They both look very enterprisey - very oriented around classes.

The DeepKit ORM is one thing that drove me off rather quickly. I do not want an ORM, I just want sql-template-tag and raw PostgreSQL joy. 😄

I want more functions and FP, less classes and OOP. I have tried DeepKit and it does look like you can have those things, at least in theory, but the framework isn't really set up for a happy path without classes and ORM, is it? You would essentially be writing your own framework, I think? Although the run-time reflection and type checking facilities would certainly give you some wild new ways to do that. 🙂

One thing I do like better about DeepKit is the fact that it's just an NPM package you can install in Node. Encore wants to replace Node, which puts it in an entirely different category from the things they keep trying to compare it against. It honestly seems like a product with a bit of an identity crisis. (and/or a confused marketing department.)

Collapse
 
sixman9 profile image
Richard Joseph

No Remix, deploys everywhere, including Cloudflare?

Collapse
 
kokkondaabhilash profile image
Abhilash

Why not ExpressJS added here?

Collapse
 
fredericrous profile image
Frederic R.

you should peak Effect