{"id":15040544,"url":"https://github.com/andrechristikan/ack-nestjs-boilerplate","last_synced_at":"2026-03-11T08:05:40.285Z","repository":{"id":36962663,"uuid":"291597982","full_name":"andrechristikan/ack-nestjs-boilerplate","owner":"andrechristikan","description":"NestJs Boilerplate. MongoDB (or can chage to any other DB you like) with Prisma. Repository Design Pattern and Modular.","archived":false,"fork":false,"pushed_at":"2026-03-02T11:30:31.000Z","size":12295,"stargazers_count":632,"open_issues_count":12,"forks_count":219,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-03-02T15:20:17.444Z","etag":null,"topics":["mongodb","nestjs","nestjs-backend","nestjs-boilerplate","nestjs-example","nestjs-mongo","nestjs-postgres","nestjs-starter","nestjs-starter-template","nestjs-swagger","nodejs","prisma","prisma-orm","swagger","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrechristikan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-and-middleware.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-31T02:47:40.000Z","updated_at":"2026-02-26T23:39:54.000Z","dependencies_parsed_at":"2025-12-30T20:01:39.276Z","dependency_job_id":null,"html_url":"https://github.com/andrechristikan/ack-nestjs-boilerplate","commit_stats":{"total_commits":1030,"total_committers":9,"mean_commits":"114.44444444444444","dds":0.01747572815533982,"last_synced_commit":"c98b8fc8c49a42e171152c8156cb8e2eeb3569ac"},"previous_names":["andrechristikan/ack-nestjs-mongoose","andrechristikan/ack-nestjs-boilerplate","ack-id/ack-nestjs-boilerplate"],"tags_count":217,"template":true,"template_full_name":null,"purl":"pkg:github/andrechristikan/ack-nestjs-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrechristikan%2Fack-nestjs-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrechristikan%2Fack-nestjs-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrechristikan%2Fack-nestjs-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrechristikan%2Fack-nestjs-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrechristikan","download_url":"https://codeload.github.com/andrechristikan/ack-nestjs-boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrechristikan%2Fack-nestjs-boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30375579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mongodb","nestjs","nestjs-backend","nestjs-boilerplate","nestjs-example","nestjs-mongo","nestjs-postgres","nestjs-starter","nestjs-starter-template","nestjs-swagger","nodejs","prisma","prisma-orm","swagger","typescript"],"created_at":"2024-09-24T20:44:43.401Z","updated_at":"2026-03-11T08:05:40.243Z","avatar_url":"https://github.com/andrechristikan.png","language":"TypeScript","funding_links":["https://ko-fi.com/andrechristikan'","https://www.paypal.me/andrechristikan'","https://www.paypal.me/andrechristikan","https://ko-fi.com/andrechristikan"],"categories":["TypeScript"],"sub_categories":[],"readme":"[![Contributors][ack-contributors-shield]][ref-ack-contributors]\n[![Forks][ack-forks-shield]][ref-ack-forks]\n[![Stargazers][ack-stars-shield]][ref-ack-stars]\n[![Issues][ack-issues-shield]][ref-ack-issues]\n[![MIT License][ack-license-shield]][ref-ack-license]\n\n[![NestJs][nestjs-shield]][ref-nestjs]\n[![NodeJs][nodejs-shield]][ref-nodejs]\n[![Typescript][typescript-shield]][ref-typescript]\n[![MongoDB][mongodb-shield]][ref-mongodb]\n[![JWT][jwt-shield]][ref-jwt]\n[![Jest][jest-shield]][ref-jest]\n[![PNPM][pnpm-shield]][ref-pnpm]\n[![Docker][docker-shield]][ref-docker]\n\n# ACK NestJs Boilerplate 🔥 🚀\n\n[ACK NestJs][ref-ack] is a [NestJs v11.x][ref-nestjs] boilerplate designed for backend services. Production-ready NestJS boilerplate with authentication, authorization, and enterprise features\n\n_You can [request feature][ref-ack-issues] or [report bug][ref-ack-issues] with following this link_\n\n### Ideal For\n\nThis boilerplate is perfect for:\n\n- 🏢 **Enterprise Applications** - Full-featured auth system with RBAC and audit logging\n- 🔐 **Authentication Services** - Ready-to-use JWT, OAuth, and 2FA implementation\n- 📱 **Mobile App Backends** - RESTful API with social login support\n- 🌐 **Multi-tenant SaaS** - Role-based access control and policy management\n- 🚀 **Microservices** - Stateful sessions with Redis and async job processing\n- 💼 **Startup MVPs** - Production-ready foundation to ship faster\n\n\n## Table of Contents\n\n- [Important](#important)\n- [TODO](#todo)\n- [Prerequisites](#prerequisites)\n- [Build with](#build-with)\n- [Objective](#objective)\n- [Features](#features)\n  - [🎯 Architecture Highlights](#-architecture-highlights)\n  - [🔐 Authentication \u0026 Security](#-authentication--security)\n  - [📊 Database \u0026 Storage](#-database--storage)\n  - [⚡ Performance \u0026 Optimization](#-performance--optimization)\n  - [🛠 Development Experience](#-development-experience)\n  - [📡 Integrations \u0026 Monitoring](#-integrations--monitoring)\n  - [📝 Testing \u0026 Documentation](#-testing--documentation)\n- [Quick Start](#quick-start)\n- [Change DB with Minimal Effort](#change-db-with-minimal-effort)\n- [Installation](#installation)\n- [License](#license)\n- [Contribute](#contribute)\n- [Contact](#contact)\n\n## Important\n\n- Stateful Authorization, using `redis-session` and `JWT`.\n- Must run MongoDB as a `replication set` for `database transactions`.\n- If you change the environment value of `APP_ENV` to `production`, it will disable Documentation.\n- When using multiple protection decorators, they must be applied in the correct order:\n    ```typescript\n    @ExampleDoc()\n    @ActivityLog(...)\n    @PolicyAbilityProtected({...})\n    @RoleProtected(...)\n    @TermPolicyAcceptanceProtected(...)\n    @UserProtected()\n    @AuthJwtAccessProtected()\n    @FeatureFlagProtected(...)\n    @ApiKeyProtected()\n    @HttpCode(HttpStatus.OK)\n    @Get('/some-endpoint')\n    ```\n- Since version `8.0.0`, the project uses the `ES256` algorithm for Access Token, and `ES512` for Refresh Token.\n- Since version `8.0.0`, the project uses prisma `6.19` for handle database.\n- Since version `8.0.0`, the project uses pnpm for package manager.\n\n## TODO\n\n- [x] Change enum name to use PascalCase\n- [x] 2FA with TOTP Authentication (eg: Google Authenticator)\n- [x] Recovery Codes Method\n- [x] Add TOTP Authentication Protected to reset password, change password, and regenerate backup codes endpoints\n- [x] Add import and export endpoint with presign upload\n- [x] Add migration script to migrate AWS S3 Policy for public and private, include config for presign expiration\n\n### Next Features\n\n- [ ] Activity Log support bidirectional logging\n- [ ] Login with biometrics (fingerprint or face detection)\n- [ ] Login with passkey\n- [ ] Login with Github SSO\n- [ ] Device awareness, Geo Location\n- [ ] Sliding session (Example: 7d expires for a refresh token, can be extends until x day. if not action in 7d then need to re-login)\n- [ ] Anomaly detection when refresh token\n- [ ] Verification Mobile Number, whatsapp or/and sms\n- [ ] Simple Notification System or Enchant Activity Log to be able act as notification\n- [ ] Versioning System (Force frontend to update, especially mobile)\n\n### Test\n- [ ] Unit test\n- [ ] Integration Test\n- [ ] E2E Test\n- [ ] Stress Test For Benchmark/Performance\n- [ ] Load Test For Benchmark/Performance\n\n\n## Prerequisites\n\nI assume that everyone who comes here is a **`programmer with intermediate knowledge`**. To get the most out of this project, here's what you should understand:\n\n1. **[NestJs Fundamentals][ref-nestjs]** - Main framework with decorators, modules, services, and dependency injection\n2. **[TypeScript][ref-typescript]** - Strong typing, interfaces, generics, and advanced TypeScript features\n3. **[Prisma ORM][ref-prisma]** - Modern database toolkit for schema design, migrations, and type-safe queries\n4. **[MongoDB][ref-mongodb]** - NoSQL database concepts, especially **replication sets** for transactions\n5. **[Redis][ref-redis]** - Caching strategies, session storage, and queue management\n6. **Repository Design Pattern** - Data access layer abstraction for maintainable code\n7. **SOLID Principles** - Clean code architecture and dependency management\n8. **Queue Systems** - Background job processing with [BullMQ][ref-bullmq]\n9. **Optional. [Docker][ref-docker]** - Containerization for running the project\n10. **Optional. Microservice Architecture** - Understanding distributed systems concepts\n\n## Build with\n\nThe project is built using the following technologies and versions. We always strive to use the latest stable versions to ensure security, performance, and access to modern features:\n\n| Name           | Version  |\n| -------------- | -------- |\n| NestJs         | v11.x    |\n| NodeJs         | v24.11.x |\n| TypeScript     | v5.9.x   |\n| Prisma         | v6.19.x  |\n| MongoDB        | v8.0.x   |\n| Redis          | v8.0.x   |\n| Docker         | v28.5.x  |\n| Docker Compose | v2.40.x  |\n\nFor more information see [package.json][ref-package-json]\n\n## Objective\n\n- Easy to maintain\n- NestJs Habit\n- Component based / modular folder structure\n- Stateful authentication and authorization\n- Repository Design Pattern\n- Follow Community Guidelines\n- Follow The Twelve-Factor App\n\n## Features\n\n### 🎯 Architecture Highlights\n\n- **Repository Pattern** - Clean data access abstraction\n- **SOLID Principles** - Maintainable and testable codebase  \n- **Modular Structure** - Component-based folder organization\n- **12-Factor App** - Cloud-native best practices\n- **Production Ready** - Enterprise-grade security and scalability\n\n### 🔐 Authentication \u0026 Security\nProduction-ready authentication system with multiple strategies and security layers.\n\n- **JWT Authentication** - ES256 for Access Token, ES512 for Refresh Token with automatic rotation\n- **Stateful Sessions** - Redis-backed sessions with token revocation support\n- **Social Login** - Google OAuth and Apple Sign In integration ([docs][ref-doc-authentication])\n- **Two-Factor Authentication** - TOTP-based 2FA with backup recovery codes ([docs][ref-doc-two-factor])\n- **RBAC \u0026 Policies** - Fine-grained role and permission system ([docs][ref-doc-authorization])\n- **API Key Protection** - Secure external API access control\n- **Rate Limiting** - DDoS protection with configurable throttling\n- **Security Headers** - Helmet integration for HTTP security\n\n### 📊 Database \u0026 Storage\nModern ORM with NoSQL database and file storage capabilities.\n\n- **Prisma ORM** - Type-safe database toolkit with migrations ([docs][ref-doc-database])\n- **MongoDB** - NoSQL database with transaction support (replica set required)\n- **Redis Caching** - Multi-level caching strategies for performance ([docs][ref-doc-cache])\n- **AWS S3 Integration** - File storage with presigned URLs ([docs][ref-doc-file-upload])\n- **Repository Pattern** - Clean separation of data access layer\n\n### ⚡ Performance \u0026 Optimization\nBuilt for speed and scalability from day one.\n\n- **Background Jobs** - BullMQ queue system for async processing ([docs][ref-doc-queue])\n- **Response Compression** - Automatic gzip/deflate compression\n- **SWC Compiler** - 20x faster than TypeScript compiler\n- **Pagination** - Server-side pagination with cursor support ([docs][ref-doc-pagination])\n- **Feature Flags** - Dynamic feature rollout with A/B testing ([docs][ref-doc-feature-flag])\n\n### 🛠 Development Experience\nDeveloper-friendly tooling and best practices.\n\n- **NestJS 11.x** - Latest framework version with full TypeScript support\n- **Swagger/OpenAPI 3** - Interactive API documentation ([docs][ref-doc-doc])\n- **API Versioning** - URL-based versioning (default v1)\n- **Request Validation** - Automatic validation with class-validator ([docs][ref-doc-request-validation])\n- **Error Handling** - Standardized error responses with i18n ([docs][ref-doc-handling-error])\n- **Hot Reload** - Fast development with SWC\n- **Code Quality** - ESLint, Prettier, Husky pre-commit hooks\n- **Database Seeding** - Commander-based data population\n\n### 📡 Integrations \u0026 Monitoring\nEnterprise-grade integrations for production readiness.\n\n- **Sentry** - Error tracking and performance monitoring ([docs][ref-doc-third-party-integration])\n- **AWS SES** - Transactional email delivery\n- **Activity Logging** - Comprehensive audit trail ([docs][ref-doc-activity-log])\n- **Health Checks** - System monitoring endpoints\n- **Multi-language Support** - i18n with `x-custom-lang` header ([docs][ref-doc-message])\n\n### 📝 Testing \u0026 Documentation\nComprehensive testing framework and documentation.\n\n- **Jest Testing** - Unit, integration, and e2e test setup\n- **Swagger UI** - Auto-generated API documentation\n- **Detailed Docs** - 20+ documentation files covering all features\n- **Docker Support** - Complete containerization with docker-compose\n\n## Quick Start\n\n```bash\n# Clone repository\ngit clone https://github.com/andrechristikan/ack-nestjs-boilerplate\n\n# Install dependencies\npnpm install\n\n# Setup environment\ncp .env.example .env\n\n# Run with Docker\ndocker-compose up -d\n\n# Access API\nopen http://localhost:3000/docs\n```\n\n## Change DB with Minimal Effort\n\nThanks to **Repository Pattern** and **Prisma ORM**, switching databases requires minimal code changes. The abstraction layer isolates database logic from business logic.\n\n### Supported Databases\n\n| Database | Best For | Transaction Support |\n|----------|----------|---------------------|\n| **MongoDB** | Document-based, flexible schema | ✅ Yes (replica set) |\n| **PostgreSQL** | Production apps, complex queries | ✅ Yes |\n\n**Other supported databases:** MySQL, SQLite, SQL Server, CockroachDB\n\n**Migration typically requires:**\n- Updating `prisma/schema.prisma` provider\n- Adjusting ID strategy (ObjectId → UUID). Update DatabaseService Code.\n- Running `npx prisma migrate dev`\n- Running `pnpm migration:seed`\n\n**Business logic stays unchanged** - services, controllers, and authentication work as-is.\n\nFor detailed migration guides, see [Database Documentation][ref-doc-database].\n\n## Installation\n\nFor detailed installation instructions (both default and Docker-based), please refer to the [Installation](docs/installation.md).\n\n## License\n\nThis project is licensed under the [MIT License][ref-ack-license].\n\n## Contribute\n\nWe welcome contributions to this project! To contribute, follow these steps:\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature/your-feature-name`\n3. **Make your changes** and ensure they follow our coding standards\n4. **Run tests**: `pnpm test` and `pnpm lint` to verify your changes\n5. **Commit your changes**: `git commit -m 'feat: add some feature'`\n6. **Push to your branch**: `git push origin feature/your-feature-name`\n7. **Open a Pull Request** with a clear description of your changes\n\n### **Contribution Guidelines**\n- Follow the existing code style and conventions\n- Write or update tests for any new functionality\n- Ensure all tests pass before submitting\n- Use conventional commit messages (feat, fix, docs, etc.)\n- Keep PRs focused and atomic\n\nIf your branch is behind the `origin/main` branch, please rebase and resolve any conflicts before opening a pull request.\n\n## Contact\n\n**Andre Christi Kan**  \n📧 [andrechristikan@gmail.com][ref-author-email]\n\n[![Github][github-shield]][ref-author-github]\n[![LinkedIn][linkedin-shield]][ref-author-linkedin]\n\n### Support This Project\n\nIf you find this project helpful and would like to support its development, please consider giving it a ⭐ **star** on GitHub or buying me a ☕ **coffee**!\n\n**Buy me a coffee** ☕\n\n\u003cdiv style=\"display: flex; gap: 10px; flex-wrap: wrap;\"\u003e\n  \u003ca href='https://ko-fi.com/andrechristikan' target='_blank'\u003e\n    \u003cimg src='https://cdn.ko-fi.com/cdn/kofi3.png?v=3' alt='Buy Me a Coffee at ko-fi.com' width='200'/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n**Or support via PayPal** 💳\n\n\u003cdiv style=\"display: flex; gap: 10px; flex-wrap: wrap;\"\u003e\n  \u003ca href='https://www.paypal.me/andrechristikan' target='_blank'\u003e\n    \u003cimg src='https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg' alt='Donate with PayPal' /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003c!-- REFERENCES --\u003e\n\n\u003c!-- BADGE LINKS --\u003e\n\n[ack-contributors-shield]: https://img.shields.io/github/contributors/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-forks-shield]: https://img.shields.io/github/forks/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-stars-shield]: https://img.shields.io/github/stars/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-issues-shield]: https://img.shields.io/github/issues/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[ack-license-shield]: https://img.shields.io/github/license/andrechristikan/ack-nestjs-boilerplate?style=for-the-badge\n[nestjs-shield]: https://img.shields.io/badge/nestjs-%23E0234E.svg?style=for-the-badge\u0026logo=nestjs\u0026logoColor=white\n[nodejs-shield]: https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\n[typescript-shield]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[mongodb-shield]: https://img.shields.io/badge/MongoDB-white?style=for-the-badge\u0026logo=mongodb\u0026logoColor=4EA94B\n[jwt-shield]: https://img.shields.io/badge/JWT-000000?style=for-the-badge\u0026logo=JSON%20web%20tokens\u0026logoColor=white\n[jest-shield]: https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\n[pnpm-shield]: https://img.shields.io/badge/pnpm-%232C8EBB.svg?style=for-the-badge\u0026logo=pnpm\u0026logoColor=white\u0026color=F9AD00\n[docker-shield]: https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[github-shield]: https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\n[linkedin-shield]: https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\n\n\u003c!-- CONTACTS --\u003e\n\n[ref-author-linkedin]: https://linkedin.com/in/andrechristikan\n[ref-author-email]: mailto:andrechristikan@gmail.com\n[ref-author-github]: https://github.com/andrechristikan\n[ref-author-paypal]: https://www.paypal.me/andrechristikan\n[ref-author-kofi]: https://ko-fi.com/andrechristikan\n\n\u003c!-- Repo LINKS --\u003e\n\n[ref-ack]: https://github.com/andrechristikan/ack-nestjs-boilerplate\n[ref-ack-issues]: https://github.com/andrechristikan/ack-nestjs-boilerplate/issues\n[ref-ack-stars]: https://github.com/andrechristikan/ack-nestjs-boilerplate/stargazers\n[ref-ack-forks]: https://github.com/andrechristikan/ack-nestjs-boilerplate/network/members\n[ref-ack-contributors]: https://github.com/andrechristikan/ack-nestjs-boilerplate/graphs/contributors\n[ref-ack-license]: LICENSE.md\n\n\u003c!-- THIRD PARTY --\u003e\n\n[ref-nestjs]: http://nestjs.com\n[ref-nestjs-swagger]: https://docs.nestjs.com/openapi/introduction\n[ref-nestjs-swagger-types]: https://docs.nestjs.com/openapi/types-and-parameters\n[ref-prisma]: https://www.prisma.io\n[ref-prisma-mongodb]: https://www.prisma.io/docs/orm/overview/databases/mongodb#commonalities-with-other-database-provider\n[ref-prisma-setup]: https://www.prisma.io/docs/getting-started/setup-prisma/add-to-existing-project#switching-databases\n[ref-mongodb]: https://docs.mongodb.com/\n[ref-redis]: https://redis.io\n[ref-bullmq]: https://bullmq.io\n[ref-nodejs]: https://nodejs.org/\n[ref-typescript]: https://www.typescriptlang.org/\n[ref-docker]: https://docs.docker.com\n[ref-dockercompose]: https://docs.docker.com/compose/\n[ref-pnpm]: https://pnpm.io\n[ref-12factor]: https://12factor.net\n[ref-commander]: https://nest-commander.jaymcdoniel.dev\n[ref-package-json]: package.json\n[ref-jwt]: https://jwt.io\n[ref-jest]: https://jestjs.io/docs/getting-started\n[ref-git]: https://git-scm.com\n[ref-google-console]: https://console.cloud.google.com/\n[ref-google-client-secret]: https://developers.google.com/identity/protocols/oauth2\n\n[ref-doc-root]: readme.md\n[ref-doc-activity-log]: docs/activity-log.md\n[ref-doc-authentication]: docs/authentication.md\n[ref-doc-authorization]: docs/authorization.md\n[ref-doc-cache]: docs/cache.md\n[ref-doc-configuration]: docs/configuration.md\n[ref-doc-database]: docs/database.md\n[ref-doc-environment]: docs/environment.md\n[ref-doc-feature-flag]: docs/feature-flag.md\n[ref-doc-file-upload]: docs/file-upload.md\n[ref-doc-handling-error]: docs/handling-error.md\n[ref-doc-installation]: docs/installation.md\n[ref-doc-logger]: docs/logger.md\n[ref-doc-message]: docs/message.md\n[ref-doc-pagination]: docs/pagination.md\n[ref-doc-project-structure]: docs/project-structure.md\n[ref-doc-queue]: docs/queue.md\n[ref-doc-request-validation]: docs/request-validation.md\n[ref-doc-response]: docs/response.md\n[ref-doc-security-and-middleware]: docs/security-and-middleware.md\n[ref-doc-doc]: docs/doc.md\n[ref-doc-third-party-integration]: docs/third-party-integration.md\n[ref-doc-presign]: docs/presign.md\n[ref-doc-term-policy]: docs/term-policy.md\n[ref-doc-two-factor]: two-factor.md\n\n\u003c!-- CONTRIBUTOR --\u003e\n\n[ref-contributor-gzerox]: https://github.com/Gzerox\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrechristikan%2Fack-nestjs-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrechristikan%2Fack-nestjs-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrechristikan%2Fack-nestjs-boilerplate/lists"}