Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
giuseppe-trisciuoglio avatar

Nestjs

  • 2k installs
  • 311 repo stars
  • Updated June 22, 2026
  • giuseppe-trisciuoglio/developer-kit

nestjs is an agent skill that Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applicat.

About

Provides NestJS patterns with Drizzle ORM for building production ready server side applications Covers CRUD modules JWT authentication database operations migrations testing microservices and GraphQL integration Building REST APIs or GraphQL servers with NestJS Setting up authentication and authorization with JWT Implementing database operations with Drizzle ORM Creating microservices with TCP Redis transport Writing unit and integration tests Running database migrations with drizzle kit 1 Install dependencies npm i drizzle orm pg npm i D drizzle kit tsx 2 Define schema Create src db schema ts with Drizzle table definitions 3 Create DatabaseService Inject Drizzle client as a NestJS provider 4 Build CRUD module Controller Service Repository pattern 5 Add validation Use class validator DTOs with ValidationPipe 6 Implement guards Create JWT Roles guards for route protection 7 Write tests Use nestjs testing with mocked repositories 8 Run migrations npx drizzle kit generate Verify SQL npx drizzle kit migrate typescript src db schema ts export const users pgTable users id serial id primaryKey name text name notNull email text email

  • description: Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-
  • allowed-tools: Read, Write, Edit, Glob, Grep, Bash
  • Provides NestJS patterns with Drizzle ORM for building production-ready server-side applications. Covers CRUD modules, J
  • Follow nestjs SKILL.md steps and documented constraints.
  • Follow nestjs SKILL.md steps and documented constraints.

Nestjs by the numbers

  • 2,035 all-time installs (skills.sh)
  • +58 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #566 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

nestjs capabilities & compatibility

Capabilities
description: provides comprehensive nestjs frame · allowed tools: read, write, edit, glob, grep, ba · provides nestjs patterns with drizzle orm for bu · follow nestjs skill.md steps and documented cons
Use cases
orchestration
From the docs

What nestjs says it does

description: Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applications. Generates REST/GraphQL APIs, implements authentication guards
SKILL.md
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
SKILL.md
Provides NestJS patterns with Drizzle ORM for building production-ready server-side applications. Covers CRUD modules, JWT authentication, database operations, migrations, testing, microservices, and
SKILL.md
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill nestjs

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2k
repo stars311
Security audit3 / 3 scanners passed
Last updatedJune 22, 2026
Repositorygiuseppe-trisciuoglio/developer-kit

When should an agent use nestjs and what problem does it solve?

Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applications. Generates REST/GraphQL APIs, implements authentication guards, creates dat

Who is it for?

Developers invoking nestjs as documented in the skill source.

Skip if: Skip when requirements fall outside nestjs documented scope.

When should I use this skill?

Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applications. Generates REST/GraphQL APIs, implements authentication guards, creates dat

What you get

Outputs aligned with the nestjs SKILL.md workflow and stated deliverables.

  • Validated DTOs
  • Exception filter setup
  • Focused NestJS modules with tests

By the numbers

  • Documents 10 core NestJS best-practice principles in the README

Files

SKILL.mdMarkdownGitHub ↗

NestJS Framework with Drizzle ORM

Overview

Provides NestJS patterns with Drizzle ORM for building production-ready server-side applications. Covers CRUD modules, JWT authentication, database operations, migrations, testing, microservices, and GraphQL integration.

When to Use

  • Building REST APIs or GraphQL servers with NestJS
  • Setting up authentication and authorization with JWT
  • Implementing database operations with Drizzle ORM
  • Creating microservices with TCP/Redis transport
  • Writing unit and integration tests
  • Running database migrations with drizzle-kit

Instructions

1. Install dependencies: npm i drizzle-orm pg && npm i -D drizzle-kit tsx 2. Define schema: Create src/db/schema.ts with Drizzle table definitions 3. Create DatabaseService: Inject Drizzle client as a NestJS provider 4. Build CRUD module: Controller → Service → Repository pattern 5. Add validation: Use class-validator DTOs with ValidationPipe 6. Implement guards: Create JWT/Roles guards for route protection 7. Write tests: Use @nestjs/testing with mocked repositories 8. Run migrations: npx drizzle-kit generateVerify SQLnpx drizzle-kit migrate

Examples

Complete CRUD Module with Drizzle

// src/db/schema.ts
export const users = pgTable('users', {
  id: serial('id').primaryKey(),
  name: text('name').notNull(),
  email: text('email').notNull().unique(),
  createdAt: timestamp('created_at').defaultNow(),
});

// src/users/dto/create-user.dto.ts
export class CreateUserDto {
  @IsString() @IsNotEmpty() name: string;
  @IsEmail() email: string;
}

// src/users/user.repository.ts
@Injectable()
export class UserRepository {
  constructor(private db: DatabaseService) {}

  async findAll() {
    return this.db.database.select().from(users);
  }

  async create(data: typeof users.$inferInsert) {
    return this.db.database.insert(users).values(data).returning();
  }
}

// src/users/users.service.ts
@Injectable()
export class UsersService {
  constructor(private repo: UserRepository) {}

  async create(dto: CreateUserDto) {
    return this.repo.create(dto);
  }
}

// src/users/users.controller.ts
@Controller('users')
export class UsersController {
  constructor(private service: UsersService) {}

  @Post()
  create(@Body() dto: CreateUserDto) {
    return this.service.create(dto);
  }
}

// src/users/users.module.ts
@Module({
  controllers: [UsersController],
  providers: [UsersService, UserRepository, DatabaseService],
  exports: [UsersService],
})
export class UsersModule {}

JWT Authentication Guard

@Injectable()
export class JwtAuthGuard implements CanActivate {
  constructor(private jwtService: JwtService) {}

  canActivate(context: ExecutionContext) {
    const token = context.switchToHttp().getRequest()
      .headers.authorization?.split(' ')[1];
    if (!token) return false;
    try {
      const decoded = this.jwtService.verify(token);
      context.switchToHttp().getRequest().user = decoded;
      return true;
    } catch {
      return false;
    }
  }
}

Database Transactions

async transferFunds(fromId: number, toId: number, amount: number) {
  return this.db.database.transaction(async (tx) => {
    await tx.update(accounts)
      .set({ balance: sql`${accounts.balance} - ${amount}` })
      .where(eq(accounts.id, fromId));
    await tx.update(accounts)
      .set({ balance: sql`${accounts.balance} + ${amount}` })
      .where(eq(accounts.id, toId));
  });
}

Unit Testing with Mocks

describe('UsersService', () => {
  let service: UsersService;
  let repo: jest.Mocked<UserRepository>;

  beforeEach(async () => {
    const module = await Test.createTestingModule({
      providers: [
        UsersService,
        { provide: UserRepository, useValue: { findAll: jest.fn(), create: jest.fn() } },
      ],
    }).compile();
    service = module.get(UsersService);
    repo = module.get(UserRepository);
  });

  it('should create user', async () => {
    const dto = { name: 'John', email: 'john@example.com' };
    repo.create.mockResolvedValue({ id: 1, ...dto, createdAt: new Date() });
    expect(await service.create(dto)).toMatchObject(dto);
  });
});

Constraints and Warnings

  • DTOs required: Always use DTOs with class-validator, never accept raw objects
  • Transactions: Keep transactions short; avoid nested transactions
  • Guards order: JWT guard must run before Roles guard
  • Environment variables: Never hardcode DATABASE_URL or JWT_SECRET
  • Migrations: Run drizzle-kit generate after schema changes before deploying
  • Circular dependencies: Use forwardRef() carefully; prefer module restructuring

Best Practices

  • Validate all inputs with global ValidationPipe
  • Use transactions for multi-table operations
  • Document APIs with OpenAPI/Swagger decorators

References

Advanced patterns and detailed examples available in:

  • references/reference.md - Core patterns, guards, interceptors, microservices, GraphQL
  • references/drizzle-reference.md - Drizzle ORM installation, configuration, queries
  • references/workflow-optimization.md - Development workflows, parallel execution strategies

Related skills

Forks & variants (1)

Nestjs has 1 known copy in the catalog totaling 26 installs. They canonicalize to this original listing.

How it compares

Use nestjs for opinionated NestJS module and security conventions rather than generic TypeScript style guides.

FAQ

What is nestjs?

Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applications. Generates REST/GraphQL APIs, implements authentication

When should I use nestjs?

Provides comprehensive NestJS framework patterns with Drizzle ORM integration for building scalable server-side applications. Generates REST/GraphQL APIs, implements authentication

Is nestjs safe to install?

Review the Security Audits panel on this page before production use.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.