Node.js 20 is now available

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • Nest

    A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀

  • nest.js https://nestjs.com/

  • express-promise-router

    A lightweight wrapper for Express 4's Router that allows middleware to return promises

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • routing-controllers

    Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage in Express / Koa using TypeScript and Routing Controllers Framework.

  • The standard is express. I say that with some glibness, but its the only true answer: a ton of the other higher level frameworks and pluggable middlewares still rely on the core express Request/Response types. And there are a ton of higher level frameworks, if the number of distinct replies wasn't obvious.

    I really like express + routing-controllers [1], if you're on typescript.

    [1] https://github.com/typestack/routing-controllers

  • server

    :desktop_computer: Simple and powerful server for Node.js (by franciscop)

  • I created Server.js https://serverjs.io/ and still use it. It is a wrapper around express:

    - With a bunch of middleware included and pre-configured, like body-parser, cookies, Helmet, etc. All express middleware works with Server.js

    - async/await routers as expected: get('/users', async (ctx) => {...}); (ctx inspired by Koa)

    - Websockets, where messages behave just as another route: socket('message', async ctx => { ... });

  • Express

    Fast, unopinionated, minimalist web framework for node.

  • I'm not sure whether you mean "not very convincing" in the sense of "not reassuring that it works" or something else, but judging from users' comments on this issue about the release plans, it seems to work just fine: https://github.com/expressjs/express/issues/4920

    The maintainer said this three months ago in a comment on that issue:

    > Express 5 is pretty much completed at this point, and we're just finishing up the last code merges in upstream modules in order to bump the dependencies finally in the 5.0 branch.

  • feathers

    The API and real-time application framework

  • For anything CRUD or that can be modeled as such, I use FeathersJS (https://feathersjs.com/).

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • architect

    The simplest, most powerful way to build a functional web app (fwa)

  • Not sure why this is downvoted, Fastify is quite popular and the 'generator for everything' approach of Koa didn't really take off.

    Architect serverless (https://arc.codes) is pretty good for serverless.

  • bash

    Unofficial mirror of bash repository. Updated daily.

  • > Next you'll be telling me that I shouldn't use Bash because Bash 5.0 came out in 2018 and only got two minor point releases over the next 5 years. But that sounds dumb, huh?

    What's dumb is not being able to tell the difference. It's not about the numbers.

    https://git.savannah.gnu.org/cgit/bash.git/ shows there are constant updates. Things are being worked on. Your example proves my whole point. There are updates every year for many years.

    Express? Not so. There are many gaps in its history. And for a tool like Express that has way more surface area it is in need of a lot more testing and updating e.g. if NodeJs changes something it breaks.

    Does Bash need to make sure it works with HTTP3, Brotli or many other things that came out? No.

    > Because for the most part - it doesn't need them.

    Right, let's go back to the Stone Age. You don't need clothes either - just a leaf. You're just so dismissive on innovation then why bother? You don't even need NodeJs. Back to assembly and punch cards...

    > Is an ignorant take.

    Yes, yours. As shown above by your example.

    > People promote it because it's a good tool.

    And how do you know that? Where are the stats? Or people just google for NodeJs server, see the top response being Express and just do that. The cycle then repeats. Have people promoting it actually benchmarked, compared and investigated all the tools before making this informed decision? I'm sure you've heard from each and everyone 1 of them to know the answer eh.

  • phero

    Full-stack type-safety with pure TypeScript

  • That's one of the reasons that drove me to create Phero: https://phero.dev

  • fastify

    Fast and low overhead web framework, for Node.js

  • jest-extended

    Additional Jest matchers 🃏💪

  • Yes, a standardized expect would be nice, but care has to be taken to not bloat it.

    Currently I use vitest and https://github.com/jest-community/jest-extended which gets you a reasonable amount of usable matchers.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts