- PocketBase adalah backend open source berbentuk satu file yang mencakup database, autentikasi, penyimpanan file, dan dasbor admin
- Struktur database bawaan berperforma tinggi dengan schema builder, validasi data, langganan real-time, dan REST API
- Menyederhanakan pengelolaan pengguna dengan dukungan login email/kata sandi serta OAuth2 login (Google, Facebook, GitHub, GitLab)
- Menyimpan file dengan aman di penyimpanan lokal atau S3, serta dapat menghubungkan media ke record database untuk pembuatan thumbnail otomatis
- Dapat digunakan sebagai aplikasi mandiri atau framework yang dapat diperluas dengan Go·JavaScript, sehingga berguna untuk membangun backend ringan yang kustom
Ikhtisar PocketBase
- PocketBase adalah platform backend open source yang berjalan sebagai satu file executable
- Mengintegrasikan database, autentikasi, penyimpanan file, dan dasbor admin
- Struktur yang dapat dijalankan dengan cepat tanpa konfigurasi server terpisah
Fitur database
- Termasuk database bawaan yang mendukung schema builder, validasi data, langganan real-time, dan REST API
- Menyediakan deteksi perubahan data secara real-time dan fitur langganan
- Melalui REST API, data dapat dengan mudah dibaca, dibuat, diubah, dan dihapus
Autentikasi pengguna
- Mendukung pengelolaan pengguna aplikasi dan login berbasis email/kata sandi
- Melalui autentikasi OAuth2, pengguna dapat mendaftar dan login dengan akun Google, Facebook, GitHub, dan GitLab
Penyimpanan file
- File dapat disimpan dengan aman di penyimpanan lokal atau S3
- File media dapat dilampirkan ke record database
- Menyediakan fitur pembuatan thumbnail otomatis saat upload
Ekstensibilitas dan dukungan pengembang
- PocketBase dapat digunakan sebagai aplikasi mandiri atau sebagai framework yang dapat diperluas melalui hook Go dan JavaScript
- Pengembang dapat menambahkan logika mereka sendiri untuk membuat backend yang kustom
Contoh JavaScript SDK
- JavaScript SDK memungkinkan interaksi dengan server PocketBase
- Kode contoh menunjukkan fungsi untuk mengambil daftar record dari koleksi
example, mengambil satu record, menghapus, membuat, berlangganan real-time, dan berhenti berlangganan - Menyediakan metode seperti
pb.collection('example').getList(),getOne(),create(),delete(),subscribe()
- Kode contoh menunjukkan fungsi untuk mengambil daftar record dari koleksi
1 komentar
Komentar Hacker News
Ungkapan “SQLite tidak skalabel” kebanyakan adalah ilusi optimasi prematur
Pada praktiknya jarang sekali benar-benar menabrak batas kontensi WAL, dan kesederhanaan satu biner menurut saya jauh lebih baik daripada kompleksitas sistem terdistribusi
Sekarang bahkan proyek kecil pun dianggap wajar memasang klaster DB dan cache Redis, tetapi Pocketbase menunjukkan bahwa pada 99% aplikasi CRUD, bottleneck-nya bukan DB melainkan latensi jaringan dan waktu pengelolaan dari developer
Saya mengujinya dengan benchmark Rust CLI, dan performanya lebih baik daripada MySQL atau Postgres di mesin yang sama
Untuk proyek skala seperti ini, SQLite adalah pilihan optimal
Semua perhitungan harus ditangani di sisi aplikasi, jadi merepotkan
Kalau melihat Pocketbase, saya langsung klik upvote
Saya memakainya di beberapa aplikasi produksi dan sangat stabil
Kadang ada perubahan yang breaking, tetapi secara keseluruhan sangat bagus dan juga cukup skalabel
Saat fitur yang dibutuhkan tidak ada, memang agak merepotkan, tetapi developer berpengalaman tetap bisa mengatasinya
Hanya saja developernya sendirian, jadi saya khawatir soal maintenance ke depan
Meski begitu, ini benar-benar pilihan bagus saat perlu memisahkan front-end dan back-end
Saya sangat sering memakai Pocketbase untuk proyek pribadi dan tool internal
Jika dipakai bersama PocketPages, file-based routing dan template bisa digunakan dengan mudah
Berkat fitur migrasi DB otomatis, perubahan skema bisa dimasukkan ke version control
Saya bahkan menghubungkan server protokol Gemini untuk menjelajahi grafik pengetahuan pribadi lewat Lagrange
Pocketbase adalah server backend yang bisa dikonfigurasi lewat GUI
Karena bisa membuat backend yang berjalan nyaris tanpa kode, ini cocok untuk prototipe, MVP, dan aplikasi sederhana
Konsep seperti ini dipopulerkan oleh Firebase
Backend yang saya tulis biasanya butuh ratusan sampai ribuan baris kode, jadi saya ingin tahu bagaimana itu bisa menggantikannya
Saya juga penasaran rentang aplikasi seperti apa yang bisa dibuat dengan tool seperti ini
Saya pernah memakai Pocketbase di side project dan benar-benar terkesan
Saya sudah lama bekerja dengan Django, tetapi untuk proyek kecil hingga menengah, Pocketbase jauh lebih cocok daripada membangun backend tradisional sendiri
Kalau ada pertanyaan, saya dengan senang hati akan menjawab
Dan apakah ia juga mendukung PostgreSQL, atau hanya khusus SQLite
Jadi saya membuat Claude Skill; penasaran apakah ada yang punya pengalaman serupa
Trailbase adalah versi dengan konsep yang sama yang diimplementasikan dalam Rust
Karena itu saya pindah ke Trailbase
Artinya, ia juga bisa meng-host seluruh aplikasi
Tautan panduan
Saya memakai Pocketbase sebagai lapisan autentikasi untuk side project
Berjalan di kavla.dev, dan sistem hook-nya sangat bagus
Berkat dokumentasi Go event hook, otomatisasi infrastruktur juga bisa diimplementasikan dengan mudah
Saya sempat cepat membuat MVP dengan SQLite dan DuckDB, tetapi belakangan menyesal saat masuk tahap backup dan persiapan produksi
Sepertinya akan lebih mudah kalau sejak awal mulai dengan Supabase
Saya membuat OpenSOHO dengan Pocketbase, dan itu sangat menghemat waktu pengembangan
Saya sedikit memodifikasinya agar backend bisa dipakai ulang, tetapi itu tidak sulit
Hanya dari screenshot saja jejak Pocketbase langsung terlihat
Tautan GitHub
Karena khawatir soal backup SQLite di Pocketbase, saya sendiri membuat alat sqlrsync.com yang bisa melakukan backup dengan sqlite3_rsync bahkan saat aplikasi sedang berjalan
MVP-nya sudah berfungsi, dan karena berbasis Cloudflare Durable Objects, ini cepat dan stabil
Masukan sangat diterima