Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/amorriscode/elysia-starter
A batteries included starter for building an API using bun and Elysia
https://github.com/amorriscode/elysia-starter
awesome-bun bun bunjs hacktoberfest postgresql railway starter template typescript
Last synced: 22 days ago
JSON representation
A batteries included starter for building an API using bun and Elysia
- Host: GitHub
- URL: https://github.com/amorriscode/elysia-starter
- Owner: amorriscode
- License: mit
- Created: 2023-09-30T18:12:22.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-05T00:55:49.000Z (3 months ago)
- Last Synced: 2024-10-01T03:42:04.406Z (about 1 month ago)
- Topics: awesome-bun, bun, bunjs, hacktoberfest, postgresql, railway, starter, template, typescript
- Language: TypeScript
- Homepage:
- Size: 102 KB
- Stars: 14
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
## 🔋 Batteries Included
- 🥟 [Bun](https://bun.sh/)
- 👮 [TypeScript](https://www.typescriptlang.org/)
- 🦊 [ElysiaJS](https://elysiajs.com/)
- 🧰 [Prisma](https://prisma.io/)
- 🐘 [Postrges](https://www.postgresql.org/)
- 🚄 One-click [Railway](https://railway.app/) deploys## 🚀 Getting Started
To get started with this template, ensure that [Bun](https://bun.sh/) is installed.
```bash
curl -fsSL https://bun.sh/install | bash
```### Development
1. Install dependencies
```bash
bun install
```1. Start the development server
```bash
bun run dev
```Open http://localhost:3000/ with your browser to see the result.
## 🏛️ Architecture and Design
#### TypeIDs
This starter uses [TypeIDs](https://github.com/jetpack-io/typeid-js) which are type-safe, K-sortable, unique identifiers inspired by Stripe IDs. An example ID for a user would be `user_123456`.
### API Resources
Each API resource (eg. `users`) are defined in `src/resources`. Each resource has a `router.ts` and `service.ts`. All the endpoints for the resource are defined in `router.ts` and all of the business logic ends up in `service.ts`.
## 🗺️ Roadmap
- [ ] JWT authentication
- [ ] Sane HTTP server defaults (CORS, etc.)
- [ ] Better interop between Prisma and typebox
- [ ] Example tests
- [ ] Docker support
- [ ] Monorepo with Next.js