Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        


Elysia Starter


A batteries included API started built with ElysiaJS.


Deploy on Railway

## 🔋 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