Welcome to NestJS! If you are coming from Express or Fastify, NestJS can feel a bit rigid at first because it heavily embraces Architecture and Dependency Injection (very similar to Angular or Spring Boot). However, once you get the hang of it, that rigidity becomes its superpower—it ensures large codebases stay organized.
When you create a new project using nest new project-name, you get a boilerplate. NestJS relies heavily on a module-based (domain-driven) architecture.
Here is what a standard, well-organized NestJS project structure looks like as it grows: