Also not a fan of NestJS, having used it on multiple projects in past job.
I'll tell you what. If you must work with NodeJS, IMHO you are best off just keeping things light and simple.
NestJS is not good. I've used it professionally a few years ago for several services, and it was overly complicated which would be fine if the performance was okay - but it was not good either. And don't get me started on TypeORM or Prisma (or ORMs in general). So much wasted time and effort hammering down performance issues. The NestJS docs were also not that great and required having to dive into GH issues or source code too much compared to other frameworks.
I eventually rewrote the services to use express + kysely + zod + msgpack. There was clear separation of concerns with layers which made both unit and integration testing easy. IMO attempting OOP in JS comes with additional complexity/overhead and performance implications due to overly complex inheritance.
I'll tell you what. If you must work with NodeJS, IMHO you are best off just keeping things light and simple.
NestJS is not good. I've used it professionally a few years ago for several services, and it was overly complicated which would be fine if the performance was okay - but it was not good either. And don't get me started on TypeORM or Prisma (or ORMs in general). So much wasted time and effort hammering down performance issues. The NestJS docs were also not that great and required having to dive into GH issues or source code too much compared to other frameworks.
I eventually rewrote the services to use express + kysely + zod + msgpack. There was clear separation of concerns with layers which made both unit and integration testing easy. IMO attempting OOP in JS comes with additional complexity/overhead and performance implications due to overly complex inheritance.
When in doubt, KISS.