{"id":26730660,"url":"https://github.com/lifefloating/nestjs-project-template","last_synced_at":"2025-04-07T14:13:18.711Z","repository":{"id":269497993,"uuid":"907604400","full_name":"lifefloating/nestjs-project-template","owner":"lifefloating","description":"NestJS  project template, Boilerplate. Auth, Better-Auth, Prisma, MongoDB, Pino, Docker.","archived":false,"fork":false,"pushed_at":"2025-04-03T10:22:52.000Z","size":502,"stargazers_count":89,"open_issues_count":1,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-03T10:37:37.491Z","etag":null,"topics":["better-auth","boilerplate","nest","nestjs","node","nodejs","prisma","template","typescript"],"latest_commit_sha":null,"homepage":"https://lifefloating.github.io/nestjs-project-template/","language":"TypeScript","has_issues":false,"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/lifefloating.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-24T01:21:02.000Z","updated_at":"2025-03-31T08:53:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"8472a6a1-89e4-4dcf-afd9-bc9f72266f0a","html_url":"https://github.com/lifefloating/nestjs-project-template","commit_stats":null,"previous_names":["lifefloating/nestjs-structure-practices","lifefloating/nestjs-project-template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifefloating%2Fnestjs-project-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifefloating%2Fnestjs-project-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifefloating%2Fnestjs-project-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifefloating%2Fnestjs-project-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lifefloating","download_url":"https://codeload.github.com/lifefloating/nestjs-project-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247666014,"owners_count":20975788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["better-auth","boilerplate","nest","nestjs","node","nodejs","prisma","template","typescript"],"created_at":"2025-03-27T23:30:18.033Z","updated_at":"2025-04-07T14:13:18.705Z","avatar_url":"https://github.com/lifefloating.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nest JS Project Template\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nestjs.com/\" target=\"blank\"\u003e\u003cimg src=\"https://nestjs.com/img/logo-small.svg\" width=\"120\" alt=\"Nest Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eA modern NestJS project structure with best practices using Fastify, Prisma, MongoDB, and SWC. and more\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nestjs/nest\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/license/nestjs/nest.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%3E%3D%2020.0.0-green.svg\" alt=\"Node Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pnpm.io/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/pnpm-%3E%3D%208.0.0-blue.svg\" alt=\"Pnpm Version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.mongodb.com/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/database-MongoDB-green.svg\" alt=\"Database\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Aliyun-OSS-FF6A00?style=flat-square\u0026logo=alibabacloud\u0026logoColor=white\" alt=\"Aliyun OSS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Tencent-COS-3399FF?style=flat-square\u0026logo=tencentqq\u0026logoColor=white\" alt=\"Tencent COS\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Amazon-S3-FF9900?style=flat-square\u0026logo=amazons3\u0026logoColor=white\" alt=\"Amazon S3\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Prisma-3982CE?style=flat-square\u0026logo=prisma\u0026logoColor=white\" alt=\"Prisma\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Better--Auth-6366F1?style=flat-square\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmZmZmYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIzIiB5PSIxMSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjExIiByeD0iMiIgcnk9IjIiPjwvcmVjdD48cGF0aCBkPSJNNyA5VjdhNiA2IDAgMCAxIDEyIDBWOSI+PC9wYXRoPjwvc3ZnPg==\u0026logoColor=white\" alt=\"Better Auth\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Pino-Logger-11C877?style=flat-square\u0026logo=pino\u0026logoColor=white\" alt=\"Pino\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/MJML-Email-EB5757?style=flat-square\u0026logo=mail.ru\u0026logoColor=white\" alt=\"MJML\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-Containers-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Stripe-Payments-008CDD?style=flat-square\u0026logo=stripe\u0026logoColor=white\" alt=\"Stripe\" /\u003e\n\u003c/p\u003e\n\n## Documentation\n\n- [Installation and Running Guide](./docs/install\u0026run.md)\n- [Cloud Storage Integration Guide (Chinese)](./docs/storage-guide.md) | [English](./docs/storage-guide-en.md)\n- [OAuth Authentication Guide (Chinese)](./docs/oauth-guide.md) | [English](./docs/oauth-guide-en.md)\n\n## commit Doc\n\n- [Commit Convention](./COMMIT_CONVENTION.md)\n\n## 📋 Tech Stack\n\n- **Framework**: [NestJS 10.x](https://nestjs.com/) with [Fastify](https://www.fastify.io/)\n- **Database**: [MongoDB](https://www.mongodb.com/) with [Prisma ORM](https://www.prisma.io/)\n- **Compiler**: [SWC](https://swc.rs/) for TypeScript\n- **Package Manager**: [pnpm](https://pnpm.io/)\n- **Authentication**: JWT with [Passport](https://www.passportjs.org/)\n- **Documentation**: [Swagger/OpenAPI](https://swagger.io/)\n- **Validation**: [class-validator](https://github.com/typestack/class-validator) with DTOs\n- **Logging**: [Pino](https://getpino.io/) for structured logging\n- **Testing**: [Jest](https://jestjs.io/)\n- **Linting**: [ESLint](https://eslint.org/) with TypeScript rules (inspired by [brocoders/nestjs-boilerplate](https://github.com/brocoders/nestjs-boilerplate))\n- **Storage**: Multi-cloud storage support ([Alibaba Cloud OSS](https://www.alibabacloud.com/product/object-storage-service), [Tencent Cloud COS](https://www.tencentcloud.com/products/cos), [Amazon S3](https://aws.amazon.com/s3/))\n\n## Features\n\n- Modular architecture with proper separation of concerns\n- Global exception handling and request/response transformation\n- Database integration with Prisma ORM\n- Structured logging\n- API documentation with Swagger\n- Configuration management with validation\n- Authentication and authorization with multiple OAuth providers (Google, GitHub, Facebook, Twitter, Microsoft, Discord, Apple)\n- Unit and e2e testing setup\n- Performance optimized with Fastify and SWC\n- Git hooks with Husky and [conventional commits](./COMMIT_CONVENTION.md)\n- Unified cloud storage interface with multiple provider support\n\n## Getting Started\n\nFor installation and running instructions, please see the [Installation and Running Guide](./docs/install\u0026run.md).\n\n## develop plan\n\n- [plan](https://github.com/lifefloating/nestjs-project-template/discussions/11)\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifefloating%2Fnestjs-project-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifefloating%2Fnestjs-project-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifefloating%2Fnestjs-project-template/lists"}