Why would you want to use NestJS?
NestJS is like Ruby on Rails, but for Node programs that are written in typescript. It gives a lot of structure, but it’s not overly opinionated. This makes things a lot more sane and modular. The structure is very similar in style to Angular because you get things like Dependency Injection which allows you to make it extremely modular. As a result of that, it ends up being really testable, which has been really a huge pain traditionally when writing programs using vanilla Node/Express code, because you have to mock a bunch of requests and you end up with so many interdependencies.
With NestJS, they solved out a lot by doing things in Version Control containers, which allows you to do dependency injection all throughout your application. And then the other thing is that it is platform agnostic so you can kind of use Express, you can like have it be a CLI tool, or you can use GraphQL. Microservices CLI, you can do open API using swagger. There’s a lot of flexibility in what you can actually do with a NestJS application. So don’t think that NestJS is only useful for building web APIs. You can kind of do a lot if you want.
NestJS is specially good as a backend framework that you can use to create scalable and reliable APIs. It is a “battery-included” framework; it includes tools to handle just about every possible use case, from data persistence, to validation, to config management, to testing, and much, much more.