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...
For further actions, you may consider blocking this person and/or reporting abuse
Encore is presented as a framework here, which is actually misleading - it is an alternative runtime that replaces Node entirely.
EDIT: I was wrong about this! I'm leaving my original post here to preserve the thread, but please follow the thread to the end
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? 🤨
Encore.ts does not replace Node, it uses the Node runtime.
In most common uses of the phrase, it is a backend framework.
It also provides an extension to the javascript runtime (Node) by providing a Rust runtime to handle I/O.
Encore.go is a separate framework for Go.
Both can, if you want, be used with Encore's Cloud Platform to automate DevOps.
If you prefer, you can also self-host any way you like only using the Open Source tooling, you don't need an account with Encore or anything like that. So to be clear, the "platform" you a refer to is an optional related piece of kit.
I don't understand why you think it's a bad thing to compare it to frameworks like Express, even if they indeed are quite different you can replace Express with Encore.ts, and not use the other functionality it provides. The fact that there are more features available - if you want to use them - doesn't make it a terrible comparison imo. Only comparing extremely similar things doesn't seem very useful?
Huh. So, do you mean, it has a bundled copy of Node that it uses internally?
Or how come you have to use a custom tool and a custom executable to install and host it?
Why isn't this a regular NPM package?
No, it uses the
node
binary on your PATH, like anything else. The reason for the tooling surrounding this is to provide a nice developer experience, by handling things like automatically setting up local infrastructure. At the end of the day running it is as simple as invokingnode
and pointing it at the Encore-generated entrypoint file, exactly like how e.g. Next.js works.Well then I stand corrected. 😌
I didn't even think this was using my Node install - the whole experience was so different from anything else I've ever installed or used with Node, I was actually certain this was a custom platform of some sort.
Still, I wonder why you think it's relevant to compare with these smaller frameworks? Even if it is based on Node, what you offer is a large, fully integrated framework, and at least your request handling is a custom runtime, right?
I would be more interested in a comparison with e.g. DeepKit - it has somewhat the same scope and tries to do some of the same things. Though I suppose maybe you have to compare to something popular, or people won't get it. 🤔
"Though I suppose maybe you have to compare to something popular, or people won't get it. 🤔" - Exactly, comparing with mainstream alternatives is often more informative for most people.
but in the docs they say "100% compatibility with the Node.js ecosystem." is it lie?
encore.dev/docs/ts/concepts/benefi...
It's not a lie; Rasmus Schulz is mistaken. Encore.ts provides a native library (the Rust runtime) which runs within a normal Node.js process, which is how it provides 100% compatibility with the Node.js ecosystem.
it's not a lie and yes, I was mistaken. 😌
It's good to see someone has good clarity about these things
And also Elysia isn’t even NodeJS framework too.. based on Bun.
Thanks for making this statement, i thought to post something already and can’t say it better.
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
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.
I'm not going to say how I technically disagree with this comment in a away. but yeah. NestJs seems to be the "only" decent framework here
It's really cool how it's basically Angular for backend
I understand where your coming from.
I have been using Nestjs for more than a year now. I still don't like it.
It might just be a skill issue then.
Nice
Encore is both a Go and TypeScript framework. If you choose to use Encore with TypeScript you can use it like any other Node framework, works with all NPM libraries as usual etc.
encore.dev/
You seem confused. Encore.ts is a Node.js framework. It provides a native library (built in Rust) which runs within a normal Node.JS process.
I have worked on three APIs. All of which are built in Nestjs.
I can now say that I don't like Nestjs at all 🙅🏾♂️. Which means I also won't like Java's Spring API framework.
Encore looks very interesting to me.
So, when I am faced with the decision of which JS framework to build an API in the future, I'll go with Encore.
Bro, nice work. But in 2025 deno might overcome NodeJs soon.
Bun already did overcome both of them
No Remix, deploys everywhere, including Cloudflare?
Time to code
you should peak Effect
Why not ExpressJS added here?