{"id":48694828,"url":"https://github.com/veyricdev/express_boilerplate","last_synced_at":"2026-04-11T07:12:26.280Z","repository":{"id":197369969,"uuid":"698496017","full_name":"veyricdev/express_boilerplate","owner":"veyricdev","description":"Nodejs + Express V5 + TypeScript  + Boilerplate Basic With Bun + Swc","archived":false,"fork":false,"pushed_at":"2026-04-07T17:50:21.000Z","size":355,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-07T19:26:10.116Z","etag":null,"topics":["biomejs","boilerplate","bun","docker","express","express-boilerplate","express-typescript","express-typescript-boilerplate","express-v5","expresstypescript","github-actions","nodejs","passportjs","prisma","structure","swc","typescript"],"latest_commit_sha":null,"homepage":"https://express-boilerplate-veyric.vercel.app/docs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/veyricdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-30T05:01:20.000Z","updated_at":"2026-02-24T02:42:23.000Z","dependencies_parsed_at":"2025-12-07T13:04:51.787Z","dependency_job_id":null,"html_url":"https://github.com/veyricdev/express_boilerplate","commit_stats":null,"previous_names":["avnendv/nodejs_express_basic_structure","avnendv/express_v5_typescript_boilerplate","veyricdev/express_v5_typescript_boilerplate","veyricdev/express_boilerplate"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/veyricdev/express_boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veyricdev%2Fexpress_boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veyricdev%2Fexpress_boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veyricdev%2Fexpress_boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veyricdev%2Fexpress_boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veyricdev","download_url":"https://codeload.github.com/veyricdev/express_boilerplate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veyricdev%2Fexpress_boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31671947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["biomejs","boilerplate","bun","docker","express","express-boilerplate","express-typescript","express-typescript-boilerplate","express-v5","expresstypescript","github-actions","nodejs","passportjs","prisma","structure","swc","typescript"],"created_at":"2026-04-11T07:12:25.691Z","updated_at":"2026-04-11T07:12:26.274Z","avatar_url":"https://github.com/veyricdev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Express V5 TypeScript Boilerplate\n\nA modern, production-ready boilerplate for building RESTful APIs with [Express.js V5](https://expressjs.com/) and [TypeScript](https://www.typescriptlang.org/).\n\n## 🚀 Features\n\n- **Latest Tech Stack**: Built with Express V5 and TypeScript.\n- **Database ORM**: [Prisma](https://www.prisma.io/) with PostgreSQL support.\n- **Caching**: Redis integration using `ioredis`.\n- **Validation**: Strict environment and request validation using [Zod](https://zod.dev/).\n- **API Documentation**: Automatic API documentation generated with [Scalar](https://scalar.com/).\n- **Logging**: High-performance logging with [Pino](https://github.com/pinojs/pino).\n- **Security**:\n  - `helmet` for HTTP header security.\n  - `cors` for Cross-Origin Resource Sharing.\n  - `express-rate-limit` for rate limiting.\n- **Authentication**:\n  - JWT (JSON Web Tokens) strategies.\n  - OAuth2 integration via Passport (Google, Facebook, GitHub).\n- **Monitoring**: Telegram bot integration for error reporting (`telegraf`).\n- **Scheduled Jobs**: `node-cron` for running background tasks (e.g., database cleanup).\n- **Tooling**:\n  - [Biome](https://biomejs.dev/) for fast linting and formatting.\n  - [SWC](https://swc.rs/) for super-fast builds.\n  - Path aliases (`~/*` mapping to `src/*`).\n- **Deployment**: Ready for Vercel deployment with included configuration.\n\n## 🛠️ Prerequisites\n\n- **Node.js**: \u003e= 22.21.1\n- **Package Manager**: pnpm (recommended)\n\n## 📦 Getting Started\n\n### 1. Clone the repository\n\n```bash\ngit clone \u003crepository-url\u003e\ncd express_boilerplate\n```\n\n### 2. Install dependencies\n\n```bash\npnpm install\n# or\nnpm install\n# or\nbun install\n```\n\n### 3. Environment Configuration\n\nCopy the example environment file and configure your variables:\n\n```bash\ncp .env.example .env\n```\n\nUpdate `.env` with your database credentials, Redis URL, and API keys.\n\n### 4. Database Setup\n\nEnsure you have a PostgreSQL database running, then apply migrations:\n\n```bash\npnpm prisma:migrate\npnpm prisma:generate\n```\n\n### 5. Run the Application\n\n**Development Mode:**\n\n```bash\npnpm dev\n# Runs with --watch using tsx\n```\n\n**Production Build:**\n\n```bash\npnpm build\npnpm start\n```\n\n## 📜 Available Scripts\n\n| Script                | Description                                  |\n| :-------------------- | :------------------------------------------- |\n| `pnpm dev`            | Start the development server with hot reload |\n| `pnpm build`          | Build the project for production using SWC   |\n| `pnpm start`          | Run the built production server              |\n| `pnpm clean`          | Remove the `dist` directory                  |\n| `pnpm format`         | Format code using Biome                      |\n| `pnpm lint`           | Lint code using Biome                        |\n| `pnpm check`          | Check code for formatting and linting errors |\n| `pnpm prisma:migrate` | Run Prisma migrations                        |\n| `pnpm prisma:studio`  | Open Prisma Studio to view database          |\n\n## 📂 Project Structure\n\n```\n├── .github/          # GitHub Actions workflows\n├── src/\n│   ├── configs/      # Configuration files (DB, Env, Logger, etc.)\n│   ├── constants/    # Global constants\n│   ├── core/         # Core application logic\n│   ├── docs/         # API documentation setups\n│   ├── middlewares/  # Express middlewares\n│   ├── modules/      # Feature modules (Controllers, Services, Routes, Interfaces)\n│   ├── prisma/       # Prisma schema and migrations\n│   ├── utils/        # Utility helpers\n│   ├── server.ts     # Express app setup and middleware configuration\n│   └── index.ts      # Application entry point and server startup\n├── types/            # Global type definitions\n├── dist/             # Compiled output (ignored)\n├── .env              # Environment variables\n├── tsconfig.json     # TypeScript configuration\n└── package.json      # Dependencies and scripts\n```\n\n## 🔒 Environment Variables\n\nKey variables to configure in `.env`:\n\n- `PORT`: Server port (default: 6606)\n- `DATABASE_URL`: PostgreSQL connection string\n- `REDIS_URL`: Redis connection string\n- `JWT_ACCESS_SECRET`: Secret for access tokens\n- `JWT_REFRESH_SECRET`: Secret for refresh tokens\n- `TELE_BOT_TOKEN`: Telegram Bot Token for alerts\n- `TELE_CHAT_ID`: Telegram Chat ID for alerts\n- `DEBUG_CONSOLE`: Enable console logging (default: true)\n- `DEBUG_FILE`: Enable file logging (default: false)\n- `GOOGLE_CLIENT_ID`: Google Client ID for OAuth2\n- `GOOGLE_CLIENT_SECRET`: Google Client Secret for OAuth2\n- `FACEBOOK_APP_ID`: Facebook App ID for OAuth2\n- `FACEBOOK_APP_SECRET`: Facebook App Secret for OAuth2\n- `GITHUB_CLIENT_ID`: GitHub Client ID for OAuth2\n- `GITHUB_CLIENT_SECRET`: GitHub Client Secret for OAuth2\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the ISC License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveyricdev%2Fexpress_boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveyricdev%2Fexpress_boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveyricdev%2Fexpress_boilerplate/lists"}