DEV Community

Top 8 Node.JS Frameworks to Look at in 2020

Krupa Suthar on July 06, 2020

As more and more programmers move towards a universal programming language, Javascript has been gaining popularity as a go-to language to build web...
Collapse
 
romainlanz profile image
Romain Lanz • Edited

I'm really sad about seeing an article like this in 2020.

Because most of the information written in it is wrong and will not help any people that want to give a try to Node.js.

I'm sorry, but...

  • ExpressJS doesn't help you to build mobile application.
  • ExpressJS doesn't enable maintainable code and modular design, it helps you to create your own framework which is the worst idea ever.
  • ExpressJS is a simple router that hasn't been updated for years.
  • Sanity.io is a headless CMS, it's not a framework.
  • Koa will not help you to build an application, as said in this article, it's 550 lines of code.
  • Prisma.io is a database ORM, it's not a framework.
  • Hapi.js is dead.
  • Socket.io is a library to help you create WebSocket, it's not a framework.

What's the goal of this article if there's so many information that can mislead newcomers to the environment?

Collapse
 
bradtaniguchi profile image
Brad

Socket.io is a library to help you create WebSocket, it's not a framework.

I'm usually not very nit-picky about the distinction between a library and a framework as the line and definition is very blurred. Such distinctions have minimal actual value in the grand scheme of things. In the article's defense Socket.io calls itself a framework:

One of the most powerful JavaScript frameworks on GitHub, and most depended-upon npm modules.

ref (search the page for the word "framework", you'll find it ;D)

I'm not sure if pointing out expressJS's flaws makes it "wrong" to mention in an article of recommendations. I'm also not sure if this criticism is provided mainly just to boost AdonisJS credibility in an article that didn't include it.

Finally, the article gave its premise of where this list came from:

We asked a few of our Node.js developers here at SoluteLabs, and here is a list that we got.

It might be fair to say that the title of this article is slightly misleading as not all of this stuff is nodejs frameworks, but to label it as "wrong and wont help anyone trying nodejs" seems unnecessarily critical at best, or a blatant plug for AdonisJS at worse.

Collapse
 
romainlanz profile image
Romain Lanz • Edited

Hey Brad!

I'm not sure if pointing out expressJS's flaws makes it "wrong" to mention in an article of recommendations.

It's important to point the flaws of a system. When you need to choose a stack, it's necessary to have the pros and the cons. Nearly all Node.js tutorials will showcase ExpressJS, at the point of people thinking you cannot do Node.js without ExpressJS! I must say that I'm a bit tired to see people keep recommending it despite what I said in my first comment.

if this criticism is provided mainly just to boost AdonisJS

I've put the first sentence to remove this thinking, but it may still sound like an advertisement for it. I've removed that part to avoid the confusion.

I'm usually not very nit-picky about the distinction between a library and a framework as the line and definition is very blurred.

I agreed, the definition is very blurry. I believe that a framework should help you focus on what pays off for your business like Rails or Laravel are doing.

Sam Selikoff made a great video called React is a programming language for UIs that explain what he expects from a framework.

It might be fair to say that the title of this article is slightly misleading as not all of this stuff is nodejs frameworks.

That's my main concern. People tend to not overthink when they read. Reading this article may mislead beginners because they may start a project using something which will not help them.

Time to sleep for me, it's past 2 am, I'll read you tomorrow!

Thread Thread
 
bradtaniguchi profile image
Brad

I must say that I'm a bit tired to see people keep recommending it despite what I said in my first comment.

As you said, ExpressJS is almost synonymous with nodejs. Not including any mention of it, either by omission or by accident would be a pretty big problem for almost any article covering the topic of nodejs development.
Expecting an article on general nodejs development that doesn't include any mention of expressJS probably isn't a very reasonable expectation.

It's important to point the flaws of a system. When you need to choose a stack, it's necessary to have the pros and the cons.
That's my main concern. People tend to not overthink when they read. Reading this article may mislead beginners because they may start a project using something which will not help them.

This article's primary focus is on informing what a few devs at SoluteLabs recommended via an internal survey. Its not the most "scientific", hence why I think the hapi.js recommendation got in. I also think that is why there is 0 "cons" anywhere on this page.

I'd hope any one starting out does look into the pros and cons and not just this article (or any single article), which probably should be considered "a light skim" of what SoluteLabs uses than a rigorous comparison of different technologies.

Now on the topic of "they may start a project using something which will not help them." is only mostly true for hapi.js due to it effectively being a legacy framework. To apply that logic to expressJS and koa seems to just go back to the thinking that recommending expressJS is "wrong" due to its flaws. Which seemed to exist only to promote AdonisJS, either consciously or even unconsciously.

If you have 1 technology, see an article that promotes other technology that has "flaws" that are covered by your technology, I can see it being seen as "wrong" and wanting to bring notice to your technology. I think that's fair for relevant self promotion, however, what you see as "wrong" isn't necessarily wrong from all perspectives, especially when an article is setup in a non exhaustive way such as this one.

Thread Thread
 
andycharles6 profile image
andycharles6 • Edited

I believe, this thread has turned into a reddit thread.

I am no one to judge. But, I believe, as the reader, we should demand for high quality and well researched articles.

If you open an article from 2015 and read this, you will not find any major distinctions and I refuse to believe, that the Node.js landscape hasn't been changed yet.

Cheers!

Collapse
 
armaandh profile image
Armaan Dhanji • Edited

I'm going to be critical about your point regarding Prisma. Despite the fact that Prisma absolutely behaves in many ways like an ORM, the developer team has specifically written an article specifying that Prisma is infact not an ORM.
prisma.io/docs/understand-prisma/p...

Collapse
 
leob profile image
leob • Edited

I've come across more terrible articles (even on dev.to) but "the ability to create both desktop and mobile applications" yeah that seems a bit ... uninformed?

The good thing is that the author mentions that these are the preferred choices of her company's developers, although it would be even better to mention that at the start of the article :-)

The weirdest thing for me was that the article starts off by showing a chart of "most popular technologies" and then goes on to list a bunch of the most unrelated tech you can imagine, from game engines and big data platforms and from devops tools to mobile development frameworks ...

What knowledge do I gain from that, or what purpose could possibly be served by this bizarre apples and oranges collection? It would obviously be way more interesting to show how node.js compares to other web app backend frameworks (i.e. same category) like Rails or Laravel and so on.

Collapse
 
exenestecnico profile image
Ernesto

AdonisJS for the win!!

Collapse
 
andycharles6 profile image
andycharles6

I believe AdonisJS should be added to list. preview.adonisjs.com/. The framework offers a different perspective to creating apps in Node.js.

Whereas ExpressJS hasn't been maintained for years and Hapi is shutting down. twitter.com/nmarsup/status/1278980.... Yes sad news :(

Collapse
 
skeeith profile image
Gether Medel

I agree. this is a poorly written and outdated infos

Collapse
 
yeisoncruz16 profile image
Yeison Cruz

What about AdonisJS ?

Collapse
 
machineno15 profile image
Tanvir Shaikh

Thanks, this was very helpfull.
Is sanity is better than strapi ?

Collapse
 
lallenfrancisl profile image
Allen Francis

Yeah I was going to ask that, is it ?

Collapse
 
machineno15 profile image
Tanvir Shaikh

Yes, coz sanity is paid and strapi is completely free. though sanity have a limited free version

Collapse
 
gaidygomez profile image
gaidyjg

I think that AdonisJs should be added to list. It's a framework awesome and real bakcend framework for JavaScript/NodeJs

Collapse
 
ao10 profile image
Ati Ok

Fastify is definitely up-and-coming as well. It's definitely much faster than a lot of the other frameworks and the documentation is 👌

fastify.io/

Collapse
 
ripkurrle profile image
ripkurrle • Edited

"Wanna learn more about the fascinating world of headless CRMs? Head on over to this page."

Which page?

Collapse
 
tomonarit profile image
tomonari_takahashi
Collapse
 
rinsama77 profile image
imrinzzzz

the tweets were unhapi

Collapse
 
sinner profile image
José Gabriel González Pérez

I would add TS.ed (Typescript Express Decorator). I can see Adonis.js like a kind of Laravel for Node and TS.ed just like a Symfony for Node.

tsed.io/

Collapse
 
ephraimdavid22 profile image
Agbeze_Obinna

MongooseJs???

Collapse
 
zilti_500 profile image
Daniel Ziltener

Oh the irony of calling a server-side javascript framework "sanity"...

Collapse
 
jankapunkt profile image
Jan Küster

2020 and I still use Meteor, which is actively maintained, continuously improved and comes with all you need out-of-the-box

Collapse
 
bah_ndjaka profile image
Eugène Ndjaka

Good

Collapse
 
khobalt profile image
Lee Dydo

"As more and more programmers move towards a universal programming language..."

This assumption is false. If you're interested, I can explain why.

Collapse
 
sboudouk profile image
Sami

I used Loopback for a huge project and I must say that it's a very powerful tool.

Collapse
 
tareksalem profile image
tareksalem

Can you please add grandjs for the list, it's a raising framework and also so pefrorment framework

github.com/tareksalem/grandjs
grandjs.netlify.com