# Code Scaffolding & Generation {#code-scaffolding--generation}


Generate boilerplate code for new modules, entities, and services.


## NestJS CLI {#nestjs-cli}


```bash
# Generate a new module
npx nest generate module my-feature

# Generate a controller
npx nest generate controller my-feature

# Generate a service
npx nest generate service my-feature

# Generate a full CRUD resource
npx nest generate resource my-feature
```


## NX Generators {#nx-generators}


```bash
# Generate a new library
npx nx generate @nx/nest:library my-lib

# Generate a new Angular component
npx nx generate @nx/angular:component my-component --project=gauzy
```


## Manual Module Template {#manual-module-template}


For a standard Gauzy module, create these files:

```
packages/core/src/lib/my-feature/
├── my-feature.module.ts
├── my-feature.controller.ts
├── my-feature.service.ts
├── my-feature.entity.ts
├── dto/
│   ├── create-my-feature.dto.ts
│   └── update-my-feature.dto.ts
├── commands/
│   ├── my-feature.create.command.ts
│   └── handlers/
│       └── my-feature.create.handler.ts
└── repository/
    ├── type-orm-my-feature.repository.ts
    └── mikro-orm-my-feature.repository.ts
```


## Related Pages {#related-pages}


- [Development Guide](https://sourcey-gauzy.pages.dev/development/development-guide/index.md) — dev setup
- [Monorepo Navigation](https://sourcey-gauzy.pages.dev/development/monorepo-navigation/index.md) — file locations
- [CQRS Handlers](https://sourcey-gauzy.pages.dev/advanced/cqrs-handlers/index.md) — command patterns
