Bahtera untuk seluruh data dan backend aplikasi Anda.
Open-Source-Friendly Backend-as-a-Service (BaaS) Setara Supabase / Firebase Terpadu.
- π Dokumentasi Lengkap (DOCUMENTATION.md) β Arsitektur teknis detail, referensi API gateway, dan spesifikasi modul.
- π€ Panduan Kontribusi (CONTRIBUTING.md) β Alur kerja monorepo, standar kode multi-bahasa, dan panduan Pull Request.
- π Lisensi Apache-2.0 β Hak cipta dan izin lisensi open-source resmi.
BahteraBase dirancang untuk menghadirkan pengalaman backend kelas dunia bagi pengembang indie, startup, hingga perusahaan enterprise. Menggabungkan ketangguhan PostgreSQL 16, fleksibilitas Deno Edge Functions, kecepatan Realtime WebSocket (<10ms), dan kemudahan Billing & Monetisasi terpadu tanpa keterikatan vendor (no vendor lock-in).
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BahteraBase Unified Studio β
β (Console Dashboard, Role Switcher, SQL Editor, Storage UI, Realtime Log) β
ββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββ
β BahteraBase Core API Gateway Server β
β (Anti-Crash Supervisor, Rate Limiter, Circuit Breaker, Centralized .env) β
ββββββββ¬βββββββββββββββ¬βββββββββββββββ¬βββββββββββββββ¬βββββββββββββββ¬βββββββββββ
β β β β β
ββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββββββββββΌβββββββ
β BahteraDB ββ BahteraAuth ββBahteraStore ββ BahteraLive ββ BahteraAI β
βPostgreSQL 16ββ JWT + RBAC ββ S3 + CDN ββWebSocket CDCββ pgvector β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Berikut adalah matriks perbandingan komprehensif antara BahteraBase dengan platform BaaS populer lainnya:
| Fitur / Kemampuan | π’ BahteraBase | β‘ Supabase | π₯ Firebase | π¦ Appwrite | π PocketBase | βοΈ AWS Amplify |
|---|---|---|---|---|---|---|
| Database Engine | PostgreSQL 16 | PostgreSQL 15 | NoSQL (Firestore) | MariaDB / MySQL | SQLite | DynamoDB (NoSQL) |
| Auto REST API | β PostgREST-like | β PostgREST | β (SDK Only) | β REST API | β REST API | β (AppSync GraphQL) |
| Auto GraphQL API | β Terpasang Native | β pg_graphql | β Tidak Ada | β Terbatas | β Tidak Ada | β AppSync |
| Row Level Security (RLS) | β Declarative Postgres | β Postgres RLS | ||||
| Realtime Engine | β WebSocket Sub-10ms | β Realtime WS | β Realtime DB | β WebSocket | β SSE | |
| Postgres CDC (Logical) | β CDC Replication | β Realtime CDC | β Tidak Ada | β Tidak Ada | β Tidak Ada | |
| Object Storage & CDN | β S3 MinIO + Resizer | β Storage S3 | β Cloud Storage | β Storage S3 | β Local File | β S3 Storage |
| Dynamic Image Resizer | β WebP/AVIF On-the-Fly | β Image Transform | β Image Preview | β Image Resize | ||
| Serverless Edge Functions | β Deno TypeScript | β Deno Edge | ||||
| AI & Vector Embeddings | β pgvector 1536-dim | β pgvector | β Belum Ada | β Belum Ada | ||
| Built-in Billing & SaaS | β Ready (Manual & Gateway) | β External Stripe | β Tidak Ada | β Tidak Ada | β Tidak Ada | |
| Transfer Manual Desk | β Upload & Admin Approve | β Tidak Ada | β Tidak Ada | β Tidak Ada | β Tidak Ada | β Tidak Ada |
| Idempotent Webhooks | β Midtrans/Xendit/Stripe | β (Manual setup) | β (Manual setup) | β (Manual setup) | β (Manual setup) | β (Manual setup) |
| Anti-Crash Supervisor | β Isolasi Runtime Error | |||||
| Self-Hosting Docker | β 1-Command Up | β Komposisi Rumit | β Proprietary Cloud | β Docker Compose | β Single Binary | β Cloud-Only |
| Multi-SDK Resmi | 7 SDK (TS, Py, Go, Rust, Flutter, Swift, Kt) | 5 SDK | 4 SDK | 5 SDK | 2 SDK | 4 SDK |
Hasil pengujian pada server benchmark (8 vCPU AMD EPYC, 16GB RAM, NVMe SSD):
π REST Query Throughput : 14,850 Req/sec (p99 < 8.2ms)
β‘ Realtime Broadcast : < 6.4ms End-to-End Fan-out
π₯ Edge Function Cold Start : < 14ms (Deno V8 Isolate)
β¨ pgvector Similarity Cosine: 1.8ms (pada 100,000 artikel 1536-dim)
π‘οΈ Crash Isolation Rate : 100% (Zero Downtime pada uncaught exception)
- PostgreSQL 16: Mesin database relasional paling andal di dunia.
- Auto REST & GraphQL: Mengubah tabel dan view database menjadi REST endpoints (PostgREST-compliant) dan GraphQL schema tanpa menulis kode backend tambahan.
- Visual Studio: Schema builder, DDL generator, visual table creator, migration runner, foreign key & index manager.
- Row Level Security (RLS): Keamanan data berbasis pengguna (
auth.uid(),auth.role(),auth.org_id()).
- Metode Autentikasi: Email/Password (argon2id/bcrypt), OAuth 2.0 (Google, GitHub, Discord, Apple), Magic Link, Phone OTP.
- Keamanan Enterprise: TOTP Multi-Factor Authentication (MFA), JWT signing & validation, refresh token rotation.
- Multi-Tenant RBAC: Hak akses berjenjang:
superadmin,admin,staff, danclient.
- S3-Compatible Object Storage: Didukung oleh MinIO untuk self-hosted dan AWS S3 / Cloudflare R2 untuk cloud.
- Dynamic Image CDN: Transformasi format, cropping, dan kompresi WebP/AVIF secara on-the-fly via parameter URL query (
?width=400&format=webp). - Bucket Policy: Pengaturan bucket privat (akses terautentikasi / presigned URL) dan publik.
- Realtime Broadcast: Pengiriman pesan event instan antar klien aktif (live chat, game state, cursor move).
- Presence Tracking: Sinkronisasi status kehadiran peer (online, typing, away).
- Postgres CDC (Change Data Capture): Mendeteksi mutasi data
INSERT,UPDATE,DELETEsecara otomatis via PostgreSQL logical replication.
- Deno TypeScript Sandbox: Serverless runtime berbasis V8 isolate dengan cold-start instan (<15ms).
- Triggers: HTTP Webhook invocation, database event hooks, dan penjadwalan ekspresi cron (
* * * * *). - Distributed Queue: Worker pemroses latar belakang dengan retry otomatis dan Dead Letter Queue (DLQ).
- Native pgvector: Penyimpanan dan indeks data vektor 1536-dimensi.
- Distance Metrics: Cosine Similarity (
<=>), Euclidean L2 (<->), dan Inner Product (<#>). - AI Gateway Proxy: Pipeline embedding terpadu ke model OpenAI, Google Gemini, Anthropic Claude, dan Ollama lokal.
- Subscription Management: Paket langganan bertingkat (Starter, Pro, Enterprise) dengan kalkulasi prorate.
- Transfer Bank Manual (Indonesia Ready): Upload bukti transfer (BCA, Mandiri, BNI, BRI, QRIS), antrian review tim Staff, dan verifikasi satu klik oleh Superadmin.
- Payment Gateway Otomatis: Integrasi Midtrans Snap, Xendit Invoice, dan Stripe Checkout dengan verifikasi webhook idempotency anti-double billing.
- Faktur Otomatis: Generator invoice PDF resmi dan pencatatan riwayat transaksi kepatuhan pajak.
- Immutable Audit Logging: Pencatatan riwayat perubahan (append-only log) untuk setiap aksi mutasi sistem.
- Before/After Diff: Pelacakan komparasi JSON state sebelum dan sesudah perubahan data.
- Process Supervisor: Menangkap
uncaughtExceptiondanunhandledRejectionsecara global untuk mengisolasi kegagalan runtime (zero downtime). - Token-Bucket Rate Limiter: Proteksi API dari serangan brute force dan scraping berlebih per IP / API Key.
- Circuit Breaker: Isolasi otomatis kegagalan koneksi pihak ketiga (Payment Gateway / LLM API) dengan fallback state.
- Global Error Boundaries: Proteksi render UI Next.js dengan tombol pemulihan interaktif (crash isolation).
- Developer Command Line: Tool CLI resmi untuk inisialisasi konfigurasi, menjalankan gateway lokal, dan meng-generate tipe TypeScript dari skema database.
# Instal via npm
npm install @bahterabase/sdk-js
# Atau via yarn / pnpm / bun
yarn add @bahterabase/sdk-js
pnpm add @bahterabase/sdk-js
bun add @bahterabase/sdk-jsInstal langsung dari repositori GitHub:
npm install github:kangpcode/bahterabase#workspace=@bahterabase/sdk-js| Bahasa | Package / Library | Perintah Instalasi |
|---|---|---|
| JavaScript / TypeScript | @bahterabase/sdk-js |
npm install @bahterabase/sdk-js |
| Python | bahterabase |
pip install bahterabase |
| Flutter / Dart | bahterabase_flutter |
flutter pub add bahterabase_flutter |
| Swift (iOS/macOS) | BahteraBase |
.package(url: "https://github.com/kangpcode/bahterabase.git", from: "0.1.0") |
| Go | bahterabase-go |
go get github.com/kangpcode/bahterabase/packages/sdk-go |
| Rust | bahterabase |
cargo add bahterabase |
| Kotlin (Android/JVM) | io.bahterabase:bahterabase-kt |
implementation("io.bahterabase:bahterabase-kt:0.1.0") |
import { createClient } from '@bahterabase/sdk-js';
// Inisialisasi klien BahteraBase (Localhost Default)
const bahtera = createClient(
'http://localhost:8080',
'bb_anon_your_public_anon_key'
);
// 1. Query Database PostgreSQL dengan Row Level Security
const { data: profiles, error } = await bahtera
.from('profiles')
.select('id, full_name, email, role')
.eq('role', 'admin')
.order('created_at', { ascending: false })
.limit(10);
// 2. Autentikasi Pengguna
const { session, user } = await bahtera.auth.signInWithPassword({
email: 'client@example.com',
password: 'SecurePassword123!',
});
// 3. Realtime Channel Broadcast & Presence
const room = bahtera.channel('room:updates');
room.on('broadcast', { event: 'notification' }, (payload) => {
console.log('Realtime notification:', payload);
});
room.subscribe();
// 4. Object Storage S3 CDN
const avatarUrl = bahtera.storage.from('avatars').getPublicUrl('user_1.png');
// 5. AI Vector Similarity Search (pgvector)
const { embedding } = await bahtera.ai.generateEmbedding('Panduan Backend BaaS');
const { data: searchResults } = await bahtera.ai.vectorSearch({
table: 'articles',
vectorColumn: 'embedding',
queryVector: embedding,
limit: 5,
});Gunakan CLI resmi @bahterabase/cli untuk mempercepat alur kerja pengembangan:
# 1. Inisialisasi struktur proyek dan konfigurasi
npx bahtera init
# 2. Jalankan API Gateway server lokal
npx bahtera start --port 8080
# 3. Periksa status kesehatan seluruh layanan lokal
npx bahtera status
# 4. Generate tipe TypeScript otomatis dari database PostgreSQL
npx bahtera gen types typescript > types/bahterabase.ts
# 5. Terapkan migrasi skema database
npx bahtera db pushbahterabase/
βββ apps/
β βββ web/ # Next.js 14 β Website publik, landing page & interactive docs (/docs)
β βββ dashboard/ # Next.js 14 β Control Plane Studio & BaaS Dashboard Console
βββ packages/
β βββ cli/ # @bahterabase/cli β Developer command line interface
β βββ control-plane/ # Backend Core: Standalone Gateway, Provisioning, RBAC, JWT, Anti-Crash
β βββ db-schema/ # Skema database Postgres & Drizzle ORM definitions
β βββ ui/ # Shared design system & Tailwind components
β βββ SDKs:
β βββ sdk-js/ # @bahterabase/sdk-js (TypeScript / NPM)
β βββ sdk-py/ # bahterabase-py (Python / PyPI)
β βββ sdk-flutter/ # bahterabase_flutter (Flutter / Dart)
β βββ sdk-swift/ # BahteraBase (Swift / SPM)
β βββ sdk-go/ # bahterabase-go (Go)
β βββ sdk-rust/ # bahterabase-rs (Rust / Cargo)
β βββ sdk-kt/ # bahterabase-kt (Kotlin / Gradle)
βββ .github/workflows/ # CI/CD multi-language testing matrix
βββ docker-compose.yml # Self-hosted stack (Postgres 16, MinIO, Redis)
βββ .env.example # Centralized localhost default environment configuration
βββ DOCUMENTATION.md # Dokumentasi teknis & arsitektur mendalam
βββ CONTRIBUTING.md # Panduan kontribusi komunitas
βββ LICENSE # Lisensi resmi Apache-2.0
git clone https://github.com/kangpcode/bahterabase.git
cd bahterabase
# Konfigurasi environment (default terpusat ke localhost)
cp .env.example .env
# Install dependensi seluruh workspace
npm install# Build seluruh packages dan Next.js apps
npm run build
# Jalankan development server
npm run dev
# Dashboard Studio : http://localhost:3000
# Marketing & Docs : http://localhost:3001docker-compose up -d
# Postgres 16 (pgvector) : :5432
# Redis Broker : :6379
# MinIO S3 Storage : :9000 (Console di :9001)
# Control Plane Gateway : :8080# 1. Typecheck TypeScript menyeluruh
npm run typecheck
# 2. Jalankan automated unit tests
npm test
# 3. Jalankan unit test Go SDK
cd packages/sdk-go && go test -v ./...
# 4. Jalankan unit test Python SDK
PYTHONPATH=packages/sdk-py python3 -m unittest discover packages/sdk-py/testsDidistribusikan di bawah lisensi resmi Apache-2.0.
Dibuat dan dikembangkan dengan β€οΈ oleh kangpcode.