Bangun platform digital dengan kecepatan Bun dan presisi tipe.

Atelier rekayasa perangkat lunak untuk portal pengguna dan studio administrasi terpadu.

Universal enterprise starter kit untuk Admin & User Portal berbasis Bun, ElysiaJS, Better Auth, dan SvelteKit. Dibangun dengan fondasi Clean Architecture, sistem hierarki wewenang level 1–100, Better Auth dual-session, serta relasional schema Drizzle ORM.

bunely-workspace / universal-core
Elysia :3000 • Admin :5173 • Web :5174
Monorepo Packages
apps/api Elysia REST
apps/admin SvelteKit 2/3
apps/web User Portal
packages/rbac 1–100 Engine
packages/auth Better Auth
packages/db SQLite / Postgres
STATUS SISTEM
210 / 210 Unit Tests Lolos (100%)
packages/rbac/src/checker.ts Eden Treaty Type-Safe
// Hierarchical Role Level & Wildcard Resolution
export function hasPermission(userPermissions: string[], required: string): boolean {
  // Super Admin bypass: *:* gives universal access
  if (userPermissions.includes('*:*')) return true;

  const [resource, action] = required.split(':');
  return userPermissions.some((p) => p === required || p === `${resource}:*`);
}

// Level enforcement: Actor cannot modify equal or higher level
export function canManageRole(actorLevel: number, targetLevel: number): boolean {
  return actorLevel > targetLevel;
}
Tech Foundations
Bun 1.4
ElysiaJS
Better Auth
Drizzle ORM
SvelteKit 2/3
Svelte 5 Runes
Tailwind v4

Hierarchical Role-Based Access Control

Level 1 hingga 100 dengan pencegahan eskalasi wewenang vertikal.

Setiap peran diberikan bobot numerik formal. Super Admin memiliki level 100 dengan wildcard bypass *:*, sementara pengguna biasa berada di level 10. Pengguna dengan level lebih rendah dijamin tidak dapat mengedit, menghapus, atau menetapkan peran dari level yang setara atau lebih tinggi.

Hierarki Sistem RBAC Level Enforcement
100 Super Admin (super_admin)
Bypass Semua Modul (*:*)
80 Administrator
Kelola User & Settings
50 Manager / Operator
Kelola Konten & Audit
10 Viewer / Pengguna Portal
Profil Mandiri (/profile)
Dialect Switching Factory packages/db
// Konfigurasi Dialect Otomatis via ENV
export function createDbClient(config?: DbConfig) {
  const dialect = config?.dialect || process.env.DB_DIALECT || 'sqlite';

  if (dialect === 'postgres') {
    return createPostgresClient(config); // Drizzle Node-Postgres
  }

  return createSqliteClient(config);   // Native Bun:sqlite
}
SQLite: DATABASE_URL Produksi: PostgreSQL Managed

Dual Database Architecture

Pengembangan instan dengan SQLite lokal, skalabilitas cloud dengan PostgreSQL.

Tidak perlu menginstal Docker atau konfigurasi database rumit saat pertama kali cloning repositori. Bun native SQLite siap seketika dengan seeder lengkap, dan aplikasi dapat bermigrasi ke database PostgreSQL cloud kapan pun tanpa mengubah layer bisnis.

Better Auth & Svelte 5 Runes

Dual-session authentication dengan perlindungan origin dan CSRF.

Mendukung form action SvelteKit SSR secara native tanpa rejeksi origin palsu. Cookie HTTP-only menangani sesi browser secara otomatis, dan Bearer Token dapat digunakan untuk integrasi mobile atau CLI pihak ketiga.

Akun Demo Tersemai database/seed.ts
Admin Studio Level 100
Password: Admin123!
User Portal Level 10
Password: User123!

Mulai dalam Hitungan Detik

Ekosistem Bun monorepo tanpa konfigurasi runtime eksternal.

$ bun run dev
Port API: 3000
Port Admin: 5173
Port Web: 5174
Database: SQLite Auto-seeded

Siap mengeksplorasi platform?

Akses portal pengguna atau masuki studio administrasi untuk menguji manajemen peran live.