{"id":48406554,"url":"https://github.com/omnidotdev/template-elysia","last_synced_at":"2026-04-06T03:37:22.618Z","repository":{"id":294751256,"uuid":"878361857","full_name":"omnidotdev/template-elysia","owner":"omnidotdev","description":"🦊 Elysia template","archived":false,"fork":false,"pushed_at":"2026-04-03T09:33:17.000Z","size":440,"stargazers_count":4,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-06T03:37:21.506Z","etag":null,"topics":["bun","elysia","foss","mit","open-source","template"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omnidotdev.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":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},"funding":{"github":["omnidotdev"],"custom":["https://omni.dev"]}},"created_at":"2024-10-25T08:49:29.000Z","updated_at":"2026-03-22T17:46:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d124002-4b89-4898-9969-c25e0e665c10","html_url":"https://github.com/omnidotdev/template-elysia","commit_stats":null,"previous_names":["omnidotdev/template-elysia"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/omnidotdev/template-elysia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omnidotdev%2Ftemplate-elysia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omnidotdev%2Ftemplate-elysia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omnidotdev%2Ftemplate-elysia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omnidotdev%2Ftemplate-elysia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omnidotdev","download_url":"https://codeload.github.com/omnidotdev/template-elysia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omnidotdev%2Ftemplate-elysia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31458838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"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":["bun","elysia","foss","mit","open-source","template"],"created_at":"2026-04-06T03:37:19.283Z","updated_at":"2026-04-06T03:37:22.613Z","avatar_url":"https://github.com/omnidotdev.png","language":"TypeScript","funding_links":["https://github.com/sponsors/omnidotdev","https://omni.dev"],"categories":[],"sub_categories":[],"readme":"# 🦊 Elysia Template\n\nThis is a template repository for a GraphQL-API-enhanced server powered by [Elysia](https://elysiajs.com).\n\n## Features\n\n- 🚀 **Modern Stack**: Built with [Bun](https://bun.sh), [Elysia](https://elysiajs.com), and TypeScript for fast development and runtime performance\n- 🧩 **Powerful GraphQL API**:\n  - Integration with [PostGraphile](https://postgraphile.org) for auto-generated GraphQL APIs from PostgreSQL schema\n  - [GraphQL Yoga](https://the-guild.dev/graphql/yoga-server) for flexible GraphQL server setup and easy access to [Envelop](https://the-guild.dev/graphql/envelop) plugin ecosystem\n  - [Grafast](https://grafast.org) for efficient GraphQL execution (query planning)\n  - [Relay](https://relay.dev/docs/guides/graphql-server-specification) specification compliance\n  - [Connection filter plugin](https://github.com/graphile-contrib/postgraphile-plugin-connection-filter) for advanced filtering\n  - [Simplify inflection](https://github.com/graphile/simplify-inflection) for cleaner schema naming\n  - No [N+1 problem](https://hygraph.com/blog/graphql-n-1-problem)\n- 🔒 **Security**:\n  - [GraphQL Armor](https://escape.tech/graphql-armor) for securing GraphQL endpoints with operation complexity limits, depth limits, and more\n  - Schema-wide perimeter authentication support via [`useGenericAuth`](https://the-guild.dev/graphql/envelop/plugins/use-generic-auth)\n  - JWT validation with remote JWKS support via [jose](https://github.com/panva/jose)\n  - CORS with configurable allowed origins\n  - Rate limiting with [elysia-rate-limit](https://github.com/rayriffy/elysia-rate-limit)\n  - TLS/HTTPS support out of the box\n  - GraphQL schema introspection disabled in production environments\n- ⚡ **Optimal Performance**:\n  - GraphQL parser and validation caching via Envelop plugins\n  - PostgreSQL connection pooling\n  - Optimized GraphQL execution with Grafast\n- 🗄️ **Database Management**:\n  - [Drizzle ORM](https://orm.drizzle.team) for type-safe database operations\n  - Automated migrations with `drizzle-kit`\n  - Database seeding with [drizzle-seed](https://orm.drizzle.team/docs/seed) and [Faker.js](https://fakerjs.dev)\n  - [Drizzle Studio](https://orm.drizzle.team/drizzle-studio) for visual database management\n- 🧪 **Testing**:\n  - Unit tests with [Bun test runner](https://bun.sh/docs/cli/test)\n  - [Testcontainers](https://testcontainers.com) for isolated PostgreSQL integration tests\n  - [MSW (Mock Service Worker)](https://mswjs.io) for API mocking\n  - Coverage reporting\n- 🛠️ **Developer Experience**:\n  - Hot reloading during development\n  - Code quality with [Biome](https://biomejs.dev) for linting and formatting\n  - Git hooks with [Husky](https://typicode.github.io/husky)\n  - TypeScript strict mode with comprehensive type safety\n  - [Knip](https://knip.dev) for unused dependency detection\n  - Automated updates with [Renovate](https://docs.renovatebot.com)\n  - Easy spin up with [Tilt](https://tilt.dev)\n- 🚢 **Production Ready**:\n  - Environment-specific configurations\n  - Optimized build process\n  - [OpenTelemetry](https://opentelemetry.io) integration for observability\n  - Health check endpoints (`/health`, `/ready`) for container orchestration\n  - Graceful shutdown handling (SIGTERM/SIGINT)\n  - Security headers, rate limiting, and TLS/HTTPS\n\n## Local Development\n\nFirst, `cp .env.local.template .env.local` and fill in the values. Then, generate TLS certificates by running `bun src/scripts/generateTlsCert.ts`.\n\n### Building and Running\n\nRun `tilt up`, or:\n\nInstall dependencies:\n\n```sh\nbun install\n```\n\nSet up the database (only required once, to create the database):\n\n```sh\nbun db:setup\n```\n\nRun database migrations:\n\n```sh\nbun db:migrate\n```\n\nRun the dev server:\n\n```sh\nbun dev\n```\n\n### Database Scripts\n\n| Script | Description |\n|--------|-------------|\n| `bun db:setup` | Create the database (first-time setup) |\n| `bun db:generate` | Generate migration files from schema changes |\n| `bun db:migrate` | Run pending migrations |\n| `bun db:migrate:drop` | Drop a migration |\n| `bun db:pull` | Introspect existing database schema |\n| `bun db:push` | Push schema changes directly (dev only) |\n| `bun db:seed` | Seed database with test data |\n| `bun db:studio` | Open Drizzle Studio |\n\n## Testing\n\n```sh\nbun test\n\n# or in watch mode\nbun test:watch\n\n# or test with coverage reporting\nbun test:coverage\n```\n\n## License\n\nThe code in this repository is licensed under Apache 2.0, \u0026copy; [Omni LLC](https://omni.dev). See [LICENSE.md](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomnidotdev%2Ftemplate-elysia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomnidotdev%2Ftemplate-elysia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomnidotdev%2Ftemplate-elysia/lists"}