Nestjs Boilerplate

screenshot of Nestjs Boilerplate
nestjs

NestJs Modular Monolith with AWS Lambda and CDK

Overview

Leveraging NestJS with PostgreSQL on AWS infrastructure orchestrated by the Cloud Development Kit (CDK) presents a powerful solution for building robust backend applications. This combination not only benefits from the rich features offered by NestJS and the reliability of PostgreSQL, but it also utilizes AWS's scalable and flexible infrastructure. With continuous deployment and management capabilities facilitated by Infrastructure as Code (IAC), developers can maintain efficient workflows and ensure the stability of their applications.

The architecture enables developers to harness AWS services such as Lambda, RDS, and CloudFormation, greatly enhancing the application's scalability and reliability. In a world where continuous integration and deployment are vital, this setup stands out as an effective approach for modern backend development.

Features

  • Database Integration: Utilizes TypeORM, simplifying database interactions in your NestJS application.
  • Seeding Capabilities: Easily seed your database with initial data for both testing and development.
  • Config Service: Manages application configuration seamlessly using @nestjs/config.
  • Email Authentication: Supports user sign-in and sign-up via email, enhancing user management.
  • Role Management: Define and manage user roles (Admin and User), controlling feature access based on user types.
  • Internationalization Support: Implements nestjs-i18n for translating the application into multiple languages.
  • API Documentation: Automatically generates comprehensive API documentation using Swagger.
  • End-to-End Testing: Includes thorough E2E tests to ensure the entire application stack works as intended.
  • Docker Support: Offers Docker and Docker Compose files for easy containerization and deployment in a Docker environment.
  • Continuous Integration with CircleCI: Establishes robust CI/CD pipelines for building, testing, and deploying code efficiently.
  • Infrastructure as Code: Employs AWS CDK to define infrastructure programmatically, streamlining infrastructure management.
  • TypeScript Configuration: Comes with a tsconfig.infra.json file to optimize TypeScript settings for CDK usage.
  • Default Environments: Provides separate environments for development and production, helping manage deployments effectively.
nestjs
Nest

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.