๐Ÿ“ Blog
๐Ÿš€ Membangun Aplikasi Web dengan Clean Architecture & Elysia.js

๐Ÿš€ 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