๐ Membangun Aplikasi Web dengan Clean Architecture & Elysia.js: Kombinasi Ringan nan Powerful
Published on May 27, 2025 ยท 7 min read
Dalam dunia pengembangan backend JavaScript, kita sudah familiar dengan berbagai framework seperti Express, Fastify, bahkan Hapi. Tapi pernahkah kamu mencoba Elysia.js?
Mungkin teman-teman sudah tahu nestJS di nodeJS ya? Nah, Elysia.js ini nestJS nya bun. Jadi framework yang dibangun dengan runtime bun.
Belakangan ini, saya menemukan repositori menarik: ๐ clean-architecture-elysia (opens in a new tab) oleh Aymane Allaoui (opens in a new tab)
Repo ini tidak hanya menunjukkan cara menggunakan Elysia.js sebagai web framework super ringan berbasis Bun (opens in a new tab), tapi juga mengimplementasikan Clean Architecture dengan cara yang bersih, modular, dan mudah dipahami. Dan sudah ada authentication login & send otp via email sebagai salah satu fiturnya.
๐งฑ Arsitektur yang Terstruktur, Tidak Asal Jalan
Clean Architecture bukan sekadar buzzword. Di repo ini, kita bisa belajar bagaimana menyusun kode menjadi beberapa lapisan:
Domain
Tempat entity dan use-case didefinisikan
Application
Interface antara domain dan adapter
Infrastructure
Database (PostgreSQL) dan ORM (Prisma)
Presentation (web)
Layer untuk menangani request & response lewat Elysia.js
Dengan pemisahan ini, setiap lapisan punya tanggung jawab yang jelas, dan kita bisa mengganti infrastruktur (misalnya dari PostgreSQL ke MySQL) tanpa banyak mengubah bagian lain.
โ๏ธ Teknologi yang Digunakan
Beberapa teknologi yang menarik dalam project ini:
- Bun: runtime JavaScript alternatif dengan kecepatan tinggi.
- Elysia.js: framework web ringan tapi sangat ekspresif.
- Prisma ORM: query database dengan cara yang deklaratif.
- Zod: untuk validasi input dan schema definition.
- SQLite: database ringan untuk kebutuhan lokal/dev.
Semua disusun dengan developer experience yang nyaman: struktur folder rapi, setup jelas, dan pendekatan testable.
๐ Fitur yang disediakan
- ๐งฉ Clean Architecture: Domain-driven design with clear separation of concerns
- ๐ Authentication: JWT-based authentication system
- ๐ค User Management: Complete user entity with profile management
- ๐ Database: Drizzle ORM with PostgreSQL
- ๐ Validation: End-to-end type safety with Elysia's built-in validation
- ๐ API Documentation: Auto-generated OpenAPI/Swagger documentation
- ๐งช Testing: Unit and integration tests setup
- ๐ง Type Safety: Full TypeScript support with end-to-end type safety
- ๐ Error Handling: Comprehensive error handling system
- ๐ Migrations: Database migration system
- โ Rate Limiting: Rating limiting using redis
- ๐ซ OTP Mail Verification: Mail verification using resend and react email
โจ Kenapa Ini Layak Dicoba?
Kalau kamu:
- โ Ingin eksplorasi arsitektur bersih dalam JavaScript/TypeScript.
- โ Mau coba hal baru di luar Express atau Nest.js.
- โ Tertarik dengan ekosistem Bun dan performa cepatnya.
- โ Pengen belajar bagaimana memisahkan concern dalam aplikasi backend.
Maka ini project yang pas buat dicoba atau bahkan di-fork untuk dijadikan starter project pribadi.
๐ฌ Penutup
Menurut saya, clean-architecture-elysia adalah contoh how to do it right dalam membangun backend modern: ringan, cepat, dan tetap terstruktur. Cocok buat yang ingin mulai kecil tapi scalable.
Kalau kamu sudah coba project ini, atau bahkan tertarik untuk adaptasi ke production, feel free untuk share insight-mu di kolom komentar ya.
Dan kalau kamu punya project serupa, drop link-nya juga โ mari saling belajar! ๐
Kalau kamu suka konten seperti ini, jangan lupa subscribe newsletter ini ya! ๐ฉ
Tags: #Boilerplate #Elysia #Bun #CleanArchitecture #Backend #TypeScript