open-source NestJS packages, one consistent DX.

Production-ready NestJS packages for real apps.

Open-source NestJS libraries for authentication, permissions, notifications, file uploads, and more. Well-tested, fully typed, MIT-licensed.

Production ready

Battle-tested packages used in real applications. Comprehensive test suites and TypeScript coverage.

Type-safe

Built with TypeScript from the ground up. Full type inference, autocompletion, and compile-time safety.

Developer experience

Intuitive decorator-based APIs that follow NestJS patterns. Minimal configuration, maximum productivity.

See it in action

Clean, intuitive APIs that follow NestJS conventions. Drop in a module, add a decorator, and you're done.

@nestbolt/authentication

Authentication

Complete auth in minutes

Database-agnostic authentication with JWT sessions, 2FA, rate limiting, and AES-256-GCM encryption. Works with TypeORM, Prisma, Mongoose, or any database.

View documentation
app.module.ts
import { AuthenticationModule, Feature } from '@nestbolt/authentication';@Module({  imports: [    AuthenticationModule.forRoot({      features: [        Feature.REGISTRATION,        Feature.RESET_PASSWORDS,        Feature.EMAIL_VERIFICATION,        Feature.TWO_FACTOR_AUTHENTICATION,      ],      userRepository: TypeOrmUserRepository,      jwtSecret: process.env.JWT_SECRET!,      appName: 'MyApp',    }),  ],})export class AppModule {}
@nestbolt/permissions

Permissions

Declarative access control

Protect routes with decorators. Supports role checks, permission checks, wildcard matching, guard scoping, and in-memory caching with automatic flush.

View documentation
posts.controller.ts
import { RequireRoles, RequirePermissions } from '@nestbolt/permissions';@Controller('posts')@UseGuards(JwtAuthGuard, RolesGuard)export class PostsController {  @RequireRoles('admin', 'editor')  @Post()  create(@Body() dto: CreatePostDto) {    return this.postsService.create(dto);  }  @RequirePermissions('posts.publish')  @Patch(':id/publish')  publish(@Param('id') id: string) {    return this.postsService.publish(id);  }}
@nestbolt/notifications

Notifications

Multi-channel delivery

Define once, deliver anywhere. Send notifications via database, email, Slack, SMS, or custom channels with a unified class-based API.

View documentation
order-shipped.notification.ts
import { Notification, MailMessage } from '@nestbolt/notifications';export class OrderShipped extends Notification {  constructor(private order: Order) { super(); }  via() {    return ['database', 'mail'];  }  toDatabase() {    return {      message: `Order #${this.order.id} has shipped.`,      trackingUrl: this.order.trackingUrl,    };  }  toMail() {    return new MailMessage()      .subject('Your order has shipped!')      .greeting(`Hello ${this.order.customerName}`)      .line(`Order #${this.order.id} is on its way.`)      .action('Track Order', this.order.trackingUrl);  }}
@nestbolt/audit-log

Audit Log

Automatic change tracking

Track every entity change with field-level diffs, actor resolution, and configurable field filtering. Query audit history with pagination and date ranges.

View documentation
user.entity.ts
import { Auditable, AuditableMixin } from '@nestbolt/audit-log';@Entity('users')@Auditable({ except: ['password'] })export class User extends AuditableMixin(BaseEntity) {  @PrimaryGeneratedColumn('uuid')  id!: string;  @Column()  name!: string;  @Column()  email!: string;  @Column()  password!: string;}// Automatic tracking:user.name = 'Alice';await repo.save(user);// → Audit log: { name: "Bob" → "Alice" }

Up and running in 3 steps

Every package follows the same pattern. Install, import, configure.

1

Install

npm install @nestbolt/authentication
2

Import

import { AuthenticationModule } from '@nestbolt/authentication';
3

Configure

AuthenticationModule.forRoot({  features: [Feature.REGISTRATION, Feature.EMAIL_VERIFICATION],  userRepository: MyUserRepository,  jwtSecret: process.env.JWT_SECRET!,})

Open source, forever free

All packages are MIT licensed. Use them in personal projects, startups, or enterprise applications. Contributions welcome.