You have no idea how much Express.js sucks on larger projects. A pain in the ass.

How so?

Lots of reasons:

- Code cleanliness: their code almost looks like code golfing. Hard to debug.

- Dependencies: everyone has different ways of implementing everything. some are even outdated. some even have stale bots that close legitimate but unattended issues.

- Performance: fastify and uWebSockets.js beats express.js on benchmarks. see https://www.fastify.io/benchmarks/ and https://github.com/uNetworking/uWebSockets/tree/master/bench...

- Multi-part parsing: this is built-in with uWebSockets.js. on express your options are multer or busboy.

- WebSocket Server support: this is built-in with uWebSockets.js. on express your options are using ws and socket.io.

- WebSocket pub/sub: built-in with uWebSockets.js

There are better alternatives like the following:

- https://www.fastify.io/

- https://github.com/uNetworking/uWebSockets.js

- https://github.com/kartikk221/hyper-express