NestJS boilerplate 🎉
Home
  • English
  • Tiếng Việt
GitHub
Home
  • English
  • Tiếng Việt
GitHub
  • Setup & Development
  • Technologies
  • Architecture
  • API
  • Database
  • Security
  • Testing
  • Benchmarking
  • Deployment
  • Troubleshooting
  • FAQ
  • Convention

    • Naming cheatsheet
    • TypeScript Style Guide and Coding Conventions
    • Clean code Typescript
    • Branch conventions
    • Commit conventions
    • Linting & Formatting

Technologies

List of technologies (framework, dependencies and tools) used in the project.


  • Core Technologies
    • Node.js
    • NestJS
  • Frameworks and Libraries
    • Express
    • TypeScript
  • Database
    • TypeORM
    • PostgreSQL
  • Authentication and Authorization
    • JWT (jsonwebtoken)
  • Validation and Parsing
    • class-validator
    • class-transformer
  • Logging and Monitoring
    • Pino
  • Testing
    • Jest
    • Supertest
  • Package Management
    • PNPM
  • Linting and Formatting
    • ESLint
    • Prettier
  • Git Hooks and Commit Management
    • Husky
    • Commitlint
    • Commitizen
    • Lint-staged
  • DevOps and CI/CD
    • GitHub Actions
    • Docker
    • Renovate
  • Documentation
    • Markdown
    • VuePress
  • Miscellaneous
    • env-cmd
  • Conclusion

Core Technologies

We utilize the following frameworks for our backend development to create scalable and maintainable server-side applications.

Node.js

A JavaScript runtime built on Chrome's V8 JavaScript engine, enabling the building of fast and scalable server-side applications.

NestJS

A progressive Node.js framework for building efficient and scalable server-side applications with a modular architecture.

Frameworks and Libraries

Express

A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

TypeScript

A superset of JavaScript that adds static types, enhancing code reliability and maintainability.

Database

TypeORM

An Object-Relational Mapping (ORM) library for TypeScript and JavaScript that simplifies database interactions and provides a powerful query builder.

PostgreSQL

A powerful, open-source object-relational database system known for its reliability, robustness, and performance.

Authentication and Authorization

JWT (jsonwebtoken)

A library for working with JSON Web Tokens, aiding in user authentication and authorization.

Validation and Parsing

class-validator

A library for input validation and sanitization based on decorators and metadata reflection.

class-transformer

A library for object transformation and serialization using decorators and reflection.

Logging and Monitoring

Pino

A fast and feature-rich logging library for Node.js applications, providing high performance and low overhead.

Testing

Jest

A comprehensive testing framework for JavaScript, supporting unit, integration, and end-to-end testing.

Supertest

A library for testing HTTP servers, allowing you to make requests and assert responses in your tests.

Package Management

PNPM

A fast, disk space-efficient package manager for JavaScript, improving the installation process and dependency management.

Linting and Formatting

ESLint

A pluggable linting utility for JavaScript and TypeScript, helping to identify and fix code quality issues.

Prettier

An opinionated code formatter that enforces consistent style by parsing code and reprinting it with its own rules.

Git Hooks and Commit Management

Husky

A tool for managing Git hooks, allowing you to run scripts during various Git stages.

Commitlint

A tool for linting commit messages, ensuring they adhere to a conventional format.

Commitizen

A command-line tool for formatting commit messages according to the conventional commit standard.

Lint-staged

A tool for running linters on staged files, ensuring that only clean code is committed.

DevOps and CI/CD

GitHub Actions

A CI/CD service that automates workflows, allowing you to build, test, and deploy your code directly from GitHub.

Docker

A platform for developing, shipping, and running applications in containers, providing an efficient and consistent environment for deployment.

Renovate

A tool for automating dependency updates, keeping your project up-to-date with the latest versions.

Documentation

Markdown

A lightweight markup language with plain-text formatting syntax, used for writing documentation and README files.

VuePress

A static site generator that simplifies the creation of documentation sites, providing a clean and responsive design.

Miscellaneous

env-cmd

A utility for executing commands using environment variables from a file, simplifying the management of environment configurations.

Conclusion

These tools and frameworks are integral to our development process, ensuring that we can build high-quality, scalable, and maintainable software efficiently.

Edit this page
Last Updated:
Contributors: Lâm Ngọc Khương
Prev
Setup & Development
Next
Architecture