{"id":23543700,"url":"https://github.com/flaviodelgrosso/fastify-forge","last_synced_at":"2025-05-15T08:15:04.194Z","repository":{"id":269578910,"uuid":"907843130","full_name":"flaviodelgrosso/fastify-forge","owner":"flaviodelgrosso","description":"Armored template for Fastify projects ✨","archived":false,"fork":false,"pushed_at":"2025-05-05T18:37:54.000Z","size":916,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-05T19:39:47.229Z","etag":null,"topics":["better-auth","boilerplate","fastify","nodejs","template","typebox","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/fastify-forge","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/flaviodelgrosso.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2024-12-24T14:26:12.000Z","updated_at":"2025-05-05T18:37:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"40b310e6-836d-4569-9934-f5539d4ee972","html_url":"https://github.com/flaviodelgrosso/fastify-forge","commit_stats":null,"previous_names":["flaviodelgrosso/fastify-forge"],"tags_count":12,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviodelgrosso%2Ffastify-forge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviodelgrosso%2Ffastify-forge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviodelgrosso%2Ffastify-forge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaviodelgrosso%2Ffastify-forge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flaviodelgrosso","download_url":"https://codeload.github.com/flaviodelgrosso/fastify-forge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301618,"owners_count":22047907,"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","fastify","nodejs","template","typebox","typescript"],"created_at":"2024-12-26T07:11:03.517Z","updated_at":"2025-05-15T08:15:04.162Z","avatar_url":"https://github.com/flaviodelgrosso.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 🛡️ Fastify Forge 🛡️\n\n[![downloads](https://img.shields.io/npm/dt/fastify-forge)](https://www.npmjs.com/package/fastify-forge)\n[![npm](https://img.shields.io/npm/v/fastify-forge)](https://www.npmjs.com/package/fastify-forge)\n[![license](https://img.shields.io/github/license/flaviodelgrosso/fastify-forge)](https://img.shields.io/github/license/flaviodelgrosso/fastify-forge)\n[![CI](https://github.com/flaviodelgrosso/fastify-forge/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/flaviodelgrosso/fastify-forge/actions/workflows/ci.yaml)\n\nTypescript based REST API lite boilerplate using [Fastify](https://fastify.dev/) framework.\n\n## Installation\n\nClone the repo using:\n\n```sh\nnpx fastify-forge@latest\n```\n\n## Features\n\n### Plugins\n\n- [x] [@fastify/autoload](https://www.npmjs.com/package/@fastify/autoload) for automatic loading of plugins\n- [x] [@fastify/cors](https://www.npmjs.com/package/@fastify/cors) for CORS support\n- [x] [@fastify/helmet](https://www.npmjs.com/package/@fastify/helmet) for security HTTP headers\n- [x] [@fastify/rate-limit](https://www.npmjs.com/package/@fastify/rate-limit) for rate limiting requests and preventing attackers to search for valid URLs.\n- [x] [@fastify/under-pressure](https://www.npmjs.com/package/@fastify/under-pressure) for process load measuring\n- [x] [@fastify/multipart](https://www.npmjs.com/package/@fastify/multipart) for file upload\n- [x] [@fastify/sensible](https://www.npmjs.com/package/@fastify/sensible) to provide useful utilities to your Fastify instance\n- [x] [fastify-better-auth](https://www.npmjs.com/package/fastify-better-auth) plugin for seamless authentication implementation using [better-auth](https://www.npmjs.com/package/better-auth)\n  \n### Swagger\n\n- [x] Swagger with [@fastify/swagger](https://www.npmjs.com/package/@fastify/swagger)\n- [x] Beautiful OpenAPI UI with [@scalar/fastify-api-reference](https://www.npmjs.com/package/@scalar/fastify-api-reference)\n\n![Swagger](https://github.com/user-attachments/assets/0a7a7225-1914-4b53-b199-3b10c91ef65a)\n\n### Type Safety and Schemas\n\n- [x] JSON Schema builder with [TypeBox](https://www.npmjs.com/package/@sinclair/typebox)\n- [x] Enhanced support for TypeBox with [@fastify/type-provider-typebox](https://www.npmjs.com/package/@fastify/type-provider-typebox)\n\n### Environment\n\n- [x] Environment utility checker with [env-schema](https://www.npmjs.com/package/env-schema)\n\n### Configurations\n\n#### Linting and Formatting\n\n- The project uses [biome](https://biomejs.dev/) to lint and format the codebase.\n- Enforce commit message conventions with [commitlint](https://www.npmjs.com/package/@commitlint/cli).\n\n#### Git Hooks\n\n- [husky](https://www.npmjs.com/package/husky) is used to manage git hooks.\n\n#### PM2\n\n- [pm2](https://www.npmjs.com/package/pm2) is a process manager that provides a simple way to run the server in cluster mode with built-in load balancing feature. You can edit the `process.yml` file to customize the app configuration.\n\n## How to use\n\n### 1. Clone this repo \u0026 install dependencies\n\nInstall Node dependencies:\n\n`pnpm install`\n\n### 2. Start the Fastify server\n\nRunning development server is pretty straightforward. It uses just Node.js with the latest TypeScript configuration support. You need Node v23.x, check `tsconfig.json` for details. Just run the following command in watch mode:\n\n```sh\npnpm dev\n```\n\n## 🚀 Building\n\nTo generate a production build, the project uses [tsup](https://github.com/egoist/tsup). Build server with command:\n\n```sh\npnpm build\n```\n\n## 🧪 Testing\n\nTo run tests, use the following command. It will produce a coverage report as well using `c8`.\n\n```sh\npnpm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaviodelgrosso%2Ffastify-forge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflaviodelgrosso%2Ffastify-forge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaviodelgrosso%2Ffastify-forge/lists"}