{"id":22382594,"url":"https://github.com/wavezync/nestjs-starter","last_synced_at":"2025-07-31T03:32:00.217Z","repository":{"id":158807879,"uuid":"402293665","full_name":"wavezync/nestjs-starter","owner":"wavezync","description":"Start your NestJS project quickly","archived":false,"fork":false,"pushed_at":"2024-05-06T16:09:41.000Z","size":2316,"stargazers_count":19,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-06T17:34:56.115Z","etag":null,"topics":["class-validator","jwt","jwt-authentication","knex","knexjs","nest","nestjs","nestjs-backend","nestjs-boilerplate","nestjs-module","nestjs-postgres","nestjs-starter-template","objection-orm","objectionjs","postgresql","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/wavezync.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":"2021-09-02T04:53:24.000Z","updated_at":"2024-05-02T00:04:23.000Z","dependencies_parsed_at":"2024-03-05T14:02:55.431Z","dependency_job_id":null,"html_url":"https://github.com/wavezync/nestjs-starter","commit_stats":null,"previous_names":["wavezync/nestjs-starter"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavezync%2Fnestjs-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavezync%2Fnestjs-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavezync%2Fnestjs-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavezync%2Fnestjs-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavezync","download_url":"https://codeload.github.com/wavezync/nestjs-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228209938,"owners_count":17885595,"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":["class-validator","jwt","jwt-authentication","knex","knexjs","nest","nestjs","nestjs-backend","nestjs-boilerplate","nestjs-module","nestjs-postgres","nestjs-starter-template","objection-orm","objectionjs","postgresql","swagger","typescript"],"created_at":"2024-12-05T00:13:33.850Z","updated_at":"2025-07-31T03:32:00.209Z","avatar_url":"https://github.com/wavezync.png","language":"TypeScript","readme":"# WaveZync NestJS Starter\n\n## Description\n\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\n\nIn this starter you may find a working application pre configured with the PostgreSQL and JWT Auth.\n\nPlease go through [Nest Docs](https://docs.nestjs.com/) before playing with the code.\n\n## Installation\n\nTo run the application you need to have **PostgreSQL** installed.\n\n```bash\n$ pnpm install\n```\n\n### Running the app\n\n```bash\n# development\n$ pnpm start\n\n# watch mode\n$ pnpm start:dev\n\n# debug mode\n$ pnpm start:debug\n\n# production mode\n$ pnpm start:prod\n```\n\n### Running the app with docker :whale:\n\nWith Docker you can run it easily. Now port `3000` will be open and `9229` can be connected to debugger as well.\n\n**PostgreSQL** is exposed via `5432` port.\n\n```bash\n$ docker-compose up\n```\n\n## Project Setup\n\nThe project setup follows standard NestJS conventions. Checkout NestJS docs for more.\n\n### Directory structure\n\nDirectory structure follows module based on features.\n\n```bash\nsrc\n├── @types # type defs goes here\n├── common # common stuffs\n│   ├── decorators # custom decorators\n│   ├── dto # common DTOs\n│   ├── exceptions # exceptions\n│   ├── filters # filters for app\n│   └── guards # guards for app\n├── config # app config\n├── database # database module\n│   ├── migrations # db migrations\n│   └── stubs # migration/seed stubs\n└── modules # modules of app\n    ├── auth # auth module\n    │   └── dto\n    ├── health # health module\n    └── user # user module\n        ├── dto\n        └── entities\n```\n\n### Database and ORM\n\nFor the database we use **PostgreSQL**. For interacting with the database, we now use [Kysely](https://kysely.dev/), a modern, type-safe SQL query builder for TypeScript.\n\nWe now also handle migrations using [kysely-ctl](https://github.com/kysely-org/kysely-ctl), the official CLI tool for Kysely. Migration files are written in TypeScript and reside in the `src/database/migrations` directory.\n\nKysely will automatically map your `snake_case` names into `camelCase` on application side. Don't use `snake_case` in JS side. Instead always use `camelCase`. Read [more](https://kysely-org.github.io/kysely-apidoc/classes/CamelCasePlugin.html)\n\n\u003e Please change the database name in docker-compose file and .env\n\n### Api Docs\n\nApi docs can be geneated thanks to `@nestjs/swagger` package. Since we are using `cli` plugin you can comment your `Dto`s with JSDocs and the documentation will be done automatically. Please follow conventions mentioned [here](https://docs.nestjs.com/openapi/cli-plugin)\n\n- Access swagger docs at \u003chttp://localhost:3000/api-docs\u003e\n- Access swagger.json at \u003chttp://localhost:3000/api-docs-json\u003e\n\n### Environment variables\n\n| Env Variable  | Description                  | example                                         |\n| ------------- | ---------------------------- | ----------------------------------------------- |\n| SECRET        | Secret for JWT               | somesecret                                      |\n| DATABASE_URL  | PostgreSQL connection string | postgres://admin:admin@localhost:5432/wavezync |\n| LOGGER_LEVEL  | Level of logger              | info                                            |\n| LOGGER_FORMAT | Format for logging           | pretty or json                                  |\n\n### VS Code helpers\n\nYou can find helpers by pressing `CTRL + SHIFT + P` in VSCode\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavezync%2Fnestjs-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavezync%2Fnestjs-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavezync%2Fnestjs-starter/lists"}