Git Product home page Git Product logo

awesome-nestjs's Introduction

Nest Logo

Awesome NestJS

A curated list of awesome things related to NestJS

Resources     Contribution guide     Official documentation

Awesome

Contents

Resources

Official Resources

Community

Community-made documentations

Talks

Trainings

Tutorials

Examples

Boilerplate

  • 🧪 Fully tested NestJS Prisma Clean Architecture Boilerplate - This boilerplate shows how to test your NestJS API with unit, integration and e2e tests. Use-cases are written in functionnal programming with FP-TS.
  • NestJS Permission Boilerplate - This is a basic NestJS boilerplate project built on the more powerful Node.js framework. The main purpose of this project is to dynamically handle roles and permissions assigned to the user.
  • SQB NestJS Boilerplate - A production-ready 🏭 NestJS boilerplate with batteries 🔋 included. No Kidding!.
  • Nest BFF - A boilerplate BFF web application starter-project using NestJS. Includes CLI, and MongoDB migrations features.
  • NestJS Template - Scaffold your next TypeScript API with this production-ready NestJS template crafted for Docker environments.
  • MEAN Todo with NestJS - A simple Todo application with NestJS and Swagger. Included Authorization/Authentication.
  • NestJS Boilerplate - Boilerplate with available authentication, typeorm, env configuration and swagger. Everything you need to start making great things.
  • Awesome Nest Boilerplate - Typescript, Postgresql, TypeORM, Swagger for Api documentation, Role base access control, and best application architecture.
  • NestJS Prisma Starter - Starter project for NestJS includes Graphql with Prisma Client, Passport-JWT authentication, Swagger Api and Docker.
  • TeanJS - TeanJS is a starter that provides you all the keys to be able to start writing your code as quickly as possible.
  • NestJS DDD Boilerplate - Domain Driven Design Base app with NestJS, Class Validator and TypeORM. SOLID principles applied to create fully testable applications.
  • Nest Mongo Graphql - Starter Kit using NestJS MongoDB Graphql and type-graphql inspired the type schema first approach.
  • Ultimate Backend - Enterprise multi-tenant SaaS starter kit with CQRS GraphQL microservice architecture, apollo federation, event source and authentication.
  • NestJS GraphQL Boilerplate - Dockerized API boilerplate with NestJS, TypeORM, TypeGraphQL, MongoDB, GraphQL and automated tasks with Makefile. Code first approach.
  • NextJS & NestJS GraphQL Starter - GraphQL NestJS with NextJS boilerplace. Includes GitHub, Reddit & Google OAuth.
  • The Knests Stack - Full stack/end starter with: PostgreSQL, Knex.js, NestJS, Next.js, GraphQL, React, Material-UI, Docker multistage images for, Docker compose and a GitLab CI/CD pipeline fully configured.
  • Nest Hackathon Starter - Hackathon starter project for NestJS. Includes Prisma, email verification, Passport-JWT authentication, Swagger and more.
  • Stator - A full-stack boilerplate that does it all - automatic releases, deployments, enforced conventions.
  • NestJS REST Starter Kit - By MonstarLab - Features: JWT Auth, RBAC Authorization, TypeORM, winston logger, Pagination, Auto-generated Swagger. Other: prettier, commit-linting husky hooks, SonarCloud, docker-compose.
  • NestJS Api Boilerplate JWT - An API Boilerplate to create a ready-to-use REST API in seconds with NestJS + TypeORM and JWT Auth.
  • NestJS REST API boilerplate for typical project - Boilerplate with Auth, TypeORM, PostgreSQL, Mailing, I18N, Docker, File uploads (support local and Amazon S3 drivers), Swagger, Tests, CI.
  • NestJS and Prisma Yarn Monorepo Starter Template - Full-stack monorepo starter (Yarn workspaces) with Prisma, GraphQL, CI and more.
  • Truthy NestJS Headless CMS - Open source headless CMS API written using NestJS, that has built-in modules like User Management, Role Management, Permission Management, Email Module, Account Settings, 2FA settings, Throttling, RBAC support, Localization, frontend application written with ReactJS & Redux Saga, UI built with Ant design and many more. Other: unit test using Jest, prettier, commit-linting husky hooks, PostgreSQL, Redis, docker etc.
  • NestJS Realtime Chat - Boilerplate for a realtime chat based on Websockets, TypeORM, PostgreSQL, REST, Docker which includes PassportJS/JWT auth, rooms, kick/ban user functionality
  • Nest Sequelize JWT - Starter kit Nest + Sequelize + jwt.
  • Nest sequelize-typescript - Nest + sequelize-typescript + JWT + Jest + Swagger.
  • Samchon Backend - Template project for NestJS which utilizes Nestia, Safe-TypeORM and PostgreSQL. It supports developers to follow the TDD (Test Driven Development) and BDD (Behavior Driven Development) principles. Documents are well-formed and additional example projects are provided.
  • NestJS Starter - Starter for BFF, MS and API Rest with NestJS, scalable by environments with centralized configuration to use GitOps, CI/CD with GitHub Actions, Dockerization, Conventional commits, versioning, etc... and much more.
  • NestJS HTTP Boilerplate - A template for NestJS, Fastify, Typegoose, Vitest, custom Logger implementation, Redis and more, fast and simple boilerplate.
  • Ultimate NestJs - Nestjs template with Mikroorm, postgres, i18n , twilio, CI/CD with Github actions, conventiona commits with cz and husky, caching, mailer , sentry. Extended ESLint config for best practices. Also has nest's new repl added
  • Zen NestJS Prisma Apollo Angular Starter - An Nx monorepo for creating user portals as a progressive web application. Zen integrates the most widely adopted dependencies within the NestJS, Prisma, Apollo & Angular eco-systems. Code generating the entire data access layer for you.
  • NestJS Webpack Boilerplate - Boilerplate for NestJS with Webpack, Pnpm, Fastify, Swagger, Pino Logger, Airbnb JavaScript Guide, Google JSON Style, ESLint, Prettier, Editorconfig, Husky, Lint-Staged, Commitlint, Axios, Docker, Alias Path, Error Handling and Clustering.
  • Nest Prisma Zod Boilerplate - A best practice for NestJS framework with using Prisma + Postgres, Socket.IO, Zod and Vitest.
  • NestJS Boilerplate using Typescript Generics - A NestJS boilerplate that uses abstraction to create generic controller, service, dtos and entity, aiming to encapsulate a reusable logic throughout the project in one centralized base module using TypeORM & MongoDB.

Projects using NestJS

Open Source

  • Ever® - Open-Source Commerce Platform for On-Demand Economy and Digital Marketplaces.
  • Feednext - Open-Source Social Media Application.
  • Gauzy - Open-Source Profits Sharing Platform for modern agencies and studios.
  • Notadd - Microservice development architecture.
  • Novu - The open-source notification infrastructure with fully functional embedded notification center.
  • Pimp My PR - Open-Source platform for statistics and pull request management.
  • Teable - A Super fast, Real-time, Professional, Developer-friendly, No code database.
  • ToolJet - ToolJet is the open-source low-code framework alternative to Retool & Mendix to build & deploy internal tools with minimal engineering effort. (Source Code) GPL-3.0
  • Vendure - Open-Source headless GraphQL ecommerce framework built on NestJS, with a focus on developer productivity and ease of customization.
  • iola - Socket client with Rest API.
  • Amplication - Amplication is an open-source low-code devtool that auto-generates backend apps built with TypeScript and Node.js, and a client built with React.
  • Necord/Toolkit - Toolkit is an open-source bot for searching and sending documentation, built with Necord.
  • Undb - Undb is a no-code database based on Svelte-kit and SQLite.

Components & Libraries

Utilities

  • @nestjs/cqrs - A lightweight CQRS module for Nest framework.
  • @nestjs-architects/typed-cqrs - A wrapper for the Nest CQRS library for better typing of query and command results.
  • nestjs-config - A Great module to handle project configurations.
  • nest-typed-config - Intuitive, type-safe configuration module for Nest framework.
  • configfy - A decorator based configuration module that makes it easier to deal with configuration files and secrets.
  • @nestcloud/cli - A Node.js micro-service solution based on Consul, writing by Typescript language and NestJS framework.
  • nestjs-easyconfig - A NestJS module for managing configs that provides some sleek features.
  • nest-schedule - Schedule job easier by decorator.
  • nest-queue - Easy queue management based on Redis for your application.
  • NestJS Toolbox - The repository contains a suite of components and modules for NestJS.
  • nestjs-multer-extended - Extended MulterModule for NestJS framework with flexible Amazon S3 upload and helpful features.
  • nestjs-cls - A continuation-local storage module for Nest (using async_hooks)
  • nestjs-http-promise - A Promise-based alternative to @nestjs/axios, with retries feature using axios-retry and axios.
  • NestJS Toolkit - This toolkit is intended to be used in NestJs Starter, or any project that uses a centralized configuration, following the same architecture of the starter. Pks: http-client, typeorm, redis, filter exceptions, test utilities with test containers.
  • typia: 20,000x times faster runtime validator using pure TypeScript type.
  • @nestia/core: 20,000x times faster validation and 200x faster JSON serialization decorators using typia. Enable to utilize pure TypeScript interface type as DTO, and overall server performance improved by about 30x times.
  • @nestia/migrate: Migration program generating NestJS project from swagger.json file. Also possible to generate SDK (collection of fetch functions with type definitions) and Mockup Simulator (backend server simulator embedded in SDK) from swagger.json file through @nestia/sdk
  • dto-classes: Developer-friendly parsing, validation & serialization. Pipes auto-parse via type declarations. Uses properties for field schemas, not decorators.
  • nestjs-conditional-exception-filter - A tiny utility to support attribute-based exception filtering, ie., no need to use classes for @Catch().
  • murlock - MurLock is a distributed lock solution designed for the NestJS framework. It provides a decorator @MurLock() that allows for critical sections of your application to be locked to prevent race conditions.
  • @nestjs-library/config - A NestJS module for managing environment variables easily and securely
  • @youba/nestjs-dbvalidator - A NestJS module has some built-in database validators using class-validator and typeorm
  • @jmcdo29/nestjs-spelunker - A NestJS module that does a bit of a dive through the provided module and reads through the dependency tree from the point of entry given.

Code Style

Web Sockets

Cache

  • nestjs-omacache - A simple, flexible and powerful cache decorator factory for NestJS framework

Redis

Mail

API

  • @nestjs/swagger - This's an OpenAPI (Swagger) module for Nest. [Tutorial].
  • nestjs-asyncapi - AsyncAPI module for NestJS.
  • @ptc-org/nestjs-query-* - Nest CRUD for GraphQL APIs.
  • @nestia/sdk - Automatic SDK (Software Development Kit, collection of fetch functions with type definitions like tRPC), Mockup Simulator (backend server simulator embedded in SDK like msw) and Swagger generators, evolved than ever. Also, it can automatically generate e2e test functions for every API routes by analyzing your NestJS server codes.
  • nest-problem-details An exception filter to return RFC-7807-compliant HTTP responses.
  • @nestjs-library/crud - Automatically generates CRUD routes of a controller for given TypeORM entity.

Middleware

Errors

  • @squareboat/nest-eyewitness - Receive error reports directly to your inbox whenever any exception is witnessed 👀 in your NestJS application.
  • nestjs-flub - Pretty Error 😫 Stack Viewer for NestJS Framework 🛠️.
  • nestjs-enlighten - A laravel-ignition like error page for NestJS Framework.
  • nestjs-rate-limiter - A highly configurable rate limiter library.
  • nest-raven - Sentry Raven (@sentry/minimal) Module for NestJS Framework.
  • nestjs-sentry - Another NestJS Sentry module, with injectable sentry client.

Lint

Router🚦

  • nest-router - Router Module For NestJS Framework 🚦 🚀 for organizing your Routes, creating a routes tree, and more.

Dialogflow 📡

  • nestjs-dialogflow - Dialog flow module that simplify the web hook handling for your NLP application using NestJS.

Logging

  • nest-winston - Winston module for NestJS.
  • nestjs-pino - Pino module for NestJS Log with request context in any place.
  • @ogma/* - A monorepo for the Ogma logger and related packages.

Monitoring

Internationalization (i18n)

  • nestjs-i18n - Adds i18n support easily to your server, with a rich formatting api build in.

Currency

Event

  • nest-event - Event handling with decorators for NestJS Framework.

Auth

Reliability

  • nestjs-resilience - A module for improving the reliability and fault-tolerance of your NestJS applications.
  • nestjs-graceful-shutdown - A powerful package for gracefully shutting down NestJS applications.

RBAC (Role-based access control)

  • nestjs-rbac - RBAC module for NestJS, with a dynamic storage and cache.
  • nestjs-keycloak-admin - Keycloak Admin Client with support for User Managed Access protocol.
  • nestjs-oso - Library that simplifies the implementation of OSO (open-source policy engine for authorization).

Multi Tenancy

  • nestjs-mtenant - A module for NestJS to enable multitenancy support with deep integration into the system as whole (based on async_hooks).

Microservice

Database

  • nestjs-prisma - Library and schematics adding Prisma integration to a NestJS application

Testing

Collections of examples

  • Testing Nestjs - A repository to show off to the community methods of testing NestJS including Unit Tests, Integration Tests, E2E Tests, pipes, filters, interceptors, GraphQL, Mongo, TypeORM, and more!

Utilities

  • @golevelup/ts-jest - Utilities for making testing NestJS applications easier. Currently supports Jest.
  • mockingbird - A library to create typed tests fixtures/mocks using decorators and built-in faker support
  • NestJS + Pact - Injectable Pact.js Consumer/Provider for NestJS
  • @automock/jest - Standalone library for class-dependencies auto mocking

Integrations

Auth

Databases

GraphQL

Pattern

Editors

AMQP

  • nestjs-amqp - An amqp connection manager.
  • nestjs-rmq - A custom library for NestJS microservice. It allows you to use RabbitMQ or AMQP.
  • @golevelup/nestjs-rabbitmq - Flexible AMQP integrations for NestJS that supports multiple messaging patterns and intuitive decorators.

EventStore

Payment Gateways

Frontend

Scheduling

Workflow Automation

Chatbots

File Storage

Cloud Managed Configuration

  • @nonfig/nestjs-config - A module for Nonfig Configuration Management Service. Nonfig combines Configurations and Features. So you change features, and release swiftly, and measure to digital impact.

SDK

Runtime

Command Line / Terminal

Meetups

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

To the extent possible under law, juliandavidmr has waived all copyright and related or neighboring rights to this work.

awesome-nestjs's People

Contributors

artonio avatar bashleigh avatar cdiaz avatar fenos avatar hello-iamdeveloper avatar iamolegga avatar juicycleff avatar juliandavidmr avatar jwulf avatar kop7 avatar marcjulian avatar mentos1386 avatar micalevisk avatar nartc avatar omermorad avatar onur-ozkan avatar pvarentsov avatar samchon avatar sikora00 avatar socketsomeone avatar thomaschaaf avatar tienne avatar tommelo avatar tony133 avatar toonvanstrijp avatar torvaldssg avatar vahidvdn avatar vinayak25 avatar yann510 avatar yashmurty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-nestjs's Issues

Popular repositories

To ensure that from now on "awesome-nest" has only popular repositories, I propose that future github repositories that wish to be added to the list must have at least 10 stars.

What do you think?

Remove archived repositories

Hey! This is a list of all archived repositories that I found in your README.md:

adrien2p/nest-js-api-ai
BruceHem/simple-todos
mentos1386/lynx
evebook/api
nestjsx/automapper
adrien2p/nest-js-graphql
nest-cloud/nest-memcached

You could remove them or use the ~~ to scratch them, idk. Like

😄


btw I've made this simple script to grab github repos and list the archived ones:

list_archived_repos.sh
#!/bin/bash

repos=($(grep --color=never -Po '(?<=github.com/)[^/]+/[^)/]+' "README.md"))
archived_repos=()

GH_PAT="your personal access token here"

for repo in "${repos[@]}"; do
  is_archived=$(curl -s -L -H "Authorization: token ${GH_PAT}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${repo}" | jq '.archived')
  if [ "$is_archived" == "true" ]; then
    archived_repos+=("$repo")
  fi
done

printf '%s\n' "${archived_repos[@]}"

(maybe you can create a scheduler task with github action to do some health check, like broken link checker, archived repo checker)

Propose to add a New NestJs template + Toolkit

Hi, how are you? I would like to propose to add to the list a project I have been working on for more than 1 year.
It is a Nestjs starter project, in which you clone the repository and you have a functional application ready to be deployed in different environments through a centralized configuration.
Along with this starter, there is a library of modules with plug and play functionality, which is fed with this centralized configuration, so the developer will not have to spend time building configurations.

If you have any questions, do not hesitate to contact me.

Best regards.

NestJS Starter: https://github.com/rudemex/nestjs-starter
NestJs Toolkit: https://github.com/tresdoce/tresdoce-nestjs-toolkit

NEED FOR HELP - NEW COLLABORATOR

Hi everyone, NestJS is growing every day and there are a lot of new technologies for it. Many technologies come to awesome-nest, so I'm looking to someone who wants help to maintain this awesome GitHub repository. - What I expect from the contributor? - review PR, check new issues, must have experience working with NestJS.

Leave a comment below, describe why you want to be a contributor🥇.

Nestjs + Passport + oAuth2 example

Hey Julian, I made an example of oAuth use with passport and nestjs.

I get help from nestjs guys on discord to finish this example. I'm using myself this example on my company authentication.

This example only needs to set up the environment file and people add some login in service file and are ready to go.

To give you some context people access to your api (example), the api redirect you to the oAuth provider return you to the page you set up to redirect.

example:
client -> server -> oAuthProvider -> server -> client

this example doesn't have an oAuth2 implementation but a redirect to a provider that give the people some control what can and cannot user have access from your provider.

If you think is useful for other people you can share on your links.

https://gitlab.com/vanishdark/nestjs-oauth2-example

Nestjs project graveyard

As is the case for most of the awesome-x repositories, we end up with a graveyard of projects that haven't been touched in years and largely been deprecated.

Such is life.

It would be beneficial if repositories that haven't gotten a commit for more than a year be removed from this list.

Suggestion: add packages name

before after
before after

Or maybe we should just replace the current name by the package name instead like so

image

I believe this would help on avoid naming clashes and on find out if we already saw a given repo

Get ride of two archived repositories

- [Nest Morgan](https://github.com/mentos1386/nest-morgan) - Morgan module for NestJS.

- [Nest Typegoose](https://github.com/kpfromer/nestjs-typegoose) - A [Typegoose](https://github.com/szokodiakos/typegoose) module for Nest framework.

I've used the following bash script to find them:

wget https://raw.githubusercontent.com/nestjs/awesome-nestjs/master/README.md
./list_archived_repos.sh
list_archived_repos.sh
#!/bin/bash

FILE="${1:-README.md}"

repos=($(grep --color=never -Po '(?<=github\.com\/)[^/)]+\/[^/)]+' $FILE))
archived_repos=()

GH_PAT="YOUR PERSONAL ACCESS TOKEN"

for repo in "${repos[@]}"; do
  follow_rules=$(
    curl -s -L -H "Authorization: token ${GH_PAT}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${repo}" | 
    jq '.archived == false'
  )

  echo -n "$repo"
  if [ "$follow_rules" == "false" ]; then
    archived_repos+=("$repo")
    echo ""
  else
    echo ""
  fi

  # sleep 2
done

echo "--------------------"
printf '%s\n' "${archived_repos[@]}"

Remove: Payment Gateways - nestjs-stripe

This repository has not been updated for more than 2 years, remove it from the list, so as not to harm those who are looking for a Stripe library for Nestjs for current versions.

We are in the release of NestJs 10, and dhaspden/nestjs-stripe does not work in NestJs 9.

dhaspden/nestjs-stripe#123

Categorization of command-line generators

The Awesome NestJS list contains several command-line tools used to generate code automatically. They are however divided in multiple categories, which can lead to confusion, such as:

image

And:

image

Wouldn't it be better to merge these categories as a single one (name TBD).

What do you think?

Add 'testing' category under 'Components & Libraries'

I think there are couple good resources & packages out there regarding tests for Nestjs projects, like:

and since Nestjs's docs doesn't mention them (AFIK), it would be cool to have them listed here :D

Maybe the first one could live under Resources > Examples

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.