bedstack/elysia-drizzle-realworld-example
bedstack/elysia-drizzle-realworld-example has 67 GitHub stars and 7 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 08:01 UTC. Last push 2026-11-11.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
RealWorld backend implementation built with ElysiaJS and Drizzle ORM
Web & AppsREADME.md
OriginalElysiaJS + Drizzle ORM codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.
Demo RealWorld
This codebase was created to demonstrate a fully fledged backend application built with ElysiaJS and Drizzle ORM including CRUD operations, authentication, routing, pagination, and more.
We've gone to great lengths to adhere to the ElysiaJS and Drizzle ORM community styleguides & best practices.
For more information on how this works with other frontends/backends, head over to the RealWorld repo.
How it works
Architecture
This project follows the Bedstack architecture - a modular, layered approach to building TypeScript backends:
- Modular structure - Each domain (users, articles, comments, etc.) is a self-contained module with its own controller, service, repository, and DTOs
- Layered design - Clear separation between Controller (HTTP handling) → Service (business logic) → Repository (data access)
- Type-safe data flow - DTOs define request/response shapes, mappers transform between layers, schemas define database tables
src/
├── users/ # User module
│ ├── users.controller.ts
│ ├── users.service.ts
│ ├── users.repository.ts
│ ├── users.schema.ts
│ ├── dto/
│ └── mappers/
├── articles/ # Article module (same structure)
├── shared/ # Shared utilities and error handling
└── app.module.ts # Root module composing all features
Read more about the Bedstack architecture →
Technologies
- ElysiaJS - Web framework for HTTP
- Drizzle ORM - TypeScript ORM for PostgreSQL
- ArkType - Runtime validation
- Scalar - API documentation
- Bun - JavaScript runtime and package manager
- Biome - Linting and formatting
Getting started
Install dependencies
bun iCreate a
.envfilecp .env.example .envUse the provided example values or replace them with your own.
Ensure Docker daemon is running and start the database service
bun db:startMigrate the schema to the database
bun db:migrateRun the development server
bun devRun the API tests
bun run test # not `bun test`!(Optional) Start the database studio
bun db:studio
Deploy to production
[!TIP] See more info in ElysiaJS's Deploy to production pattern.
Build the app
bun run build # not `bun build`!Run the server
bun preview
Need help?
If you have questions or ideas:
- Open a GitHub Discussion
- Open an Issue if you believe you found a bug
Contributors
You are welcome to contribute to the project!
Yam C Borodetsky 💬 🤔 📖 🐛 💡 🚇 ⚠️ |
Hajbo 🚇 💻 🎨 🤔 ⚠️ 💬 |
Aruay Berdikulova 💻 🤔 |
