AgentSkillsCN

nean-stack

为 NEAN 应用做出技术栈决策(NestJS、Angular、Nx 单体仓库),并在开始搭建或架构设计之前做好参考。

SKILL.md
--- frontmatter
name: nean-stack
description: Stack decisions for NEAN apps (NestJS, Angular, Nx monorepo). Reference before scaffolding or architecture work.

Locked decisions

LayerDecision
MonorepoNx with integrated monorepo
FrontendAngular 21+ (standalone, zoneless), TypeScript required
UI ComponentsPrimeNG 21+ + Tailwind CSS v4
StateNgRx (signals-based where appropriate)
BackendNestJS 11+ with TypeScript
ORMTypeORM with PostgreSQL
Validationclass-validator + class-transformer
Shared Typeslibs/shared/types (DTOs, interfaces, enums)
AuthPassport.js (JWT + Refresh tokens)
AuthorizationCASL (attribute-based access control)
API DocsSwagger/OpenAPI via @nestjs/swagger
Environmentslocal → staging → production
Secrets.env files for dev; cloud provider secrets for prod
ContainersDocker for production; optional for development

Project layout

code
<app-name>/
├── apps/
│   ├── api/                    # NestJS backend
│   │   └── src/
│   │       ├── app/            # Root module
│   │       ├── modules/        # Feature modules
│   │       └── main.ts         # Entry point
│   └── web/                    # Angular frontend
│       └── src/
│           ├── app/            # Root component + routing
│           └── main.ts         # Bootstrap
├── libs/
│   ├── shared/
│   │   └── types/              # DTOs, interfaces, enums (used by both)
│   ├── api/
│   │   ├── database/           # TypeORM config, entities
│   │   └── common/             # Interceptors, filters, pipes
│   └── web/                    # (added as needed for feature libs)
├── docker/
│   ├── Dockerfile.api
│   ├── Dockerfile.web
│   ├── docker-compose.yml
│   └── nginx.conf
├── nx.json
├── package.json
└── tsconfig.base.json

When to add additional services

Only justified if:

  • Long-running jobs exceed typical request timeouts
  • WebSocket/persistent connections required at scale
  • Separate scaling requirements for specific workloads
  • Compliance requires service isolation
  • Background job processing (consider Bull/BullMQ first)

Default: keep API in single NestJS application with modules.

Reference

For versions, env setup, and deployment patterns, see reference/nean-stack-reference.md