3 puan yazan GN⁺ 2025-11-29 | 1 yorum | WhatsApp'ta paylaş
  • PocketBase, veritabanı, kimlik doğrulama, dosya depolama ve yönetici panosunu içeren tek dosyalı açık kaynak bir arka uç
  • Şema oluşturucu, veri doğrulama, gerçek zamanlı abonelik ve REST API ile birlikte gelen gömülü yüksek performanslı bir veritabanı yapısı
  • E-posta/parola ve OAuth2 giriş (Google, Facebook, GitHub, GitLab) desteğiyle kullanıcı yönetimini basitleştirir
  • Dosyalar yerel veya S3 depolamada güvenli şekilde saklanabilir; veritabanı kayıtlarına medya ekleyerek thumbnail otomatik oluşturma yapılabilir
  • Bağımsız çalışan bir uygulama ya da Go·JavaScript ile genişletilebilen bir çerçeve olarak kullanılabilir; hafif ve özelleştirilmiş arka uçlar kurmak için kullanışlı

PocketBase Genel Bakış

  • PocketBase, tek çalıştırılabilir dosyayla çalışan bir açık kaynaklı arka uç platformudur
    • Veritabanını, kimlik doğrulamayı, dosya depolamayı ve yönetici panelini tek bir yerde entegre eder
    • Ek sunucu yapılandırması olmadan hızlıca çalıştırılabilir bir yapısı vardır

Veritabanı Özellikleri

  • Şema oluşturucu, veri doğrulama, gerçek zamanlı abonelik ve REST API destekleyen gömülü bir veritabanı içerir
    • Gerçek zamanlı veri değişimi izleme ve abonelik işlevleri sunar
    • REST API aracılığıyla veri okuma, oluşturma, güncelleme ve silme işlemleri kolayca yapılabilir

Kullanıcı Kimlik Doğrulaması

  • Uygulama kullanıcı yönetimi ve e-posta/parola tabanlı giriş desteği sunar
  • OAuth2 doğrulama ile Google, Facebook, GitHub ve GitLab hesaplarıyla kayıt olma ve giriş yapma imkanı sağlar

Dosya Depolama

  • Dosyalar yerel veya S3 depolamada güvenli şekilde saklanabilir
    • Veritabanı kayıtlarına medya dosyası eklenebilir
    • Yükleme sırasında thumbnail otomatik oluşturma özelliği sunulur

Ölçeklenebilirlik ve Geliştirici Desteği

  • PocketBase, bir tek başına çalışan uygulama olarak kullanılabilir veya Go ve JavaScript hook'ları ile genişletilebilen bir çerçeve olarak da kullanılabilir
    • Geliştiriciler kendi mantıklarını ekleyerek özelleştirilmiş bir arka uç oluşturabilir

JavaScript SDK Örneği

  • JavaScript SDK ile PocketBase sunucusuyla etkileşim kurulabilir
    • Örnek kodda example koleksiyonunun kayıt listesi alma, tek bir kayıt getirme, silme, oluşturma, gerçek zamanlı abonelik ve abonelikten çıkma işlevleri gösterilir
    • pb.collection('example').getList(), getOne(), create(), delete(), subscribe() gibi yöntemler sağlanır

1 yorum

 
GN⁺ 2025-11-29
Hacker News görüşleri
  • “SQLite ölçeklenebilir değil” sözü çoğu zaman erken optimizasyon yanılgısıdır
    Gerçekte WAL çekişmesi sınırına çarpılan durumlar nadirdir ve tek bir binary’nin sadeliğinin dağıtık sistemlerin karmaşıklığından çok daha iyi olduğunu düşünüyorum
    Günümüzde küçük projelere bile DB kümesi ve Redis cache eklemek olağan hale geldi ama Pocketbase, CRUD uygulamalarının %99’unda darboğazın DB değil ağ gecikmesi ve geliştiricinin bakım süresi olduğunu gösteriyor

    • Çoğu uygulamada teknik darboğazdan daha zor olan şey kullanıcı kazanımıdır
    • Kişisel blogumu en ucuz DigitalOcean droplet üzerinde barındırıyorum ve SQLite kullanıyorum
      Rust CLI benchmark’larıyla test ettim; aynı makinede MySQL ya da Postgres’ten daha iyi performans verdi
      Bu ölçekteki projeler için SQLite en uygun seçenek
    • Ancak decimal tipi eksikliği yüzünden finansal işlemlerde SQLite kullanmak zor
      Tüm hesaplamaları uygulama tarafında yapmak gerektiği için uğraştırıcı
  • Pocketbase’ı görünce hemen upvote veriyorum
    Birden fazla production uygulamasında kullanıyorum ve çok stabil
    Arada breaking change’ler oluyor ama genel olarak harika ve ölçeklenebilirliği de iyi
    İhtiyacınız olan özellik yoksa biraz uğraştırabiliyor ama deneyimli bir geliştirici bunu rahatlıkla çözebilir

    • “Belgeleri okuyacak vaktiniz yoksa ve sadece AI araçlarına güvenecekseniz Pocketbase kullanmayın” diyen SSS maddesini gerçekten seviyorum
    • Ben de aynı fikirdeyim. JS ile genişlettim ve gayet iyi çalıştı
      Yalnız geliştirici tek kişi olduğu için gelecekteki bakım konusunda endişeliyim
      Yine de front-end ile back-end’i ayırmanız gerektiğinde gerçekten çok iyi bir seçenek
    • Ne tür production uygulamalarını Pocketbase ile çalıştırdığınızı merak ediyorum
  • Kişisel projelerde ve iç araçlarda Pocketbase’i sık kullanıyorum
    PocketPages ile birlikte kullanınca dosya tabanlı routing ve template’leri kolayca kullanabiliyorsunuz
    Otomatik DB migration özelliği sayesinde şema değişikliklerini sürüm yönetimine dahil edebiliyorsunuz
    Hatta bir Gemini protokol sunucusu bağlayıp Lagrange ile kişisel bilgi grafiğimi geziyorum

    • Raspberry Pi 5 üzerinde barındırmayı düşünüyorum; performans gereksinimlerinin ne olduğunu ve Supabase’e kıyasla dikkat çekici bir kısıt olup olmadığını merak ediyorum
    • Lagrange’ın ne olduğunu bilmiyorum. LLM ya da bilgi grafiğiyle ilgili bir proje gibi görünmüyor
  • Pocketbase, GUI üzerinden yapılandırılabilen bir arka uç sunucusu
    Neredeyse hiç kod yazmadan çalışan bir back-end oluşturabildiğiniz için prototipler, MVP’ler ve basit uygulamalar için uygun
    Bu kavramı yaygınlaştıran şey Firebase olmuştu

    • Tam olarak ne yaptığını merak ediyorum
      Benim yazdığım back-end’ler yüzlerce ila binlerce satır kod gerektiriyor; bunun onları nasıl ikame ettiğini anlamak istiyorum
      Bu tür araçlarla yapılabilecek uygulamaların kapsamını merak ediyorum
    • Ana sayfadaki örnekler bana Parse’ı hatırlattı
  • Bir yan projede Pocketbase kullandım ve gerçekten çok etkilendim
    Uzun zamandır Django ile çalışıyorum ama küçük ve orta ölçekli projelerde geleneksel bir back-end’i sıfırdan yazmaktan çok Pocketbase daha uygun geliyor
    Sorunuz varsa memnuniyetle yanıtlayabilirim

    • Django’nun GIS entegrasyonu harika; Pocketbase tarafında durum nasıl merak ediyorum
      Ayrıca PostgreSQL destekliyor mu, yoksa sadece SQLite’a mı özel bilmek istiyorum
    • Mevcut SQLite tabanlı bir back-end’den migration sürecinin ne kadar kolay olduğunu da merak ediyorum
    • Ben de kişisel projelerimde kullandım ama LLM’ler Pocketbase ile etkileşimi sürekli karıştırıyor
      Bu yüzden bir Claude Skill hazırladım; benzer bir deneyim yaşayan olup olmadığını merak ediyorum
  • Trailbase, aynı kavramın Rust ile uygulanmış bir versiyonu

    • TrailBase’in bir karşılaştırma sayfası var
    • Örneklerde curl komutlarını atlamamış olmalarını sevdiğim için Trailbase’e sempati duydum
    • Pocketbase SQLite tabanlı ama NULLABLE sütunları desteklememesi benim için sorun olmuştu
      Bu yüzden Trailbase’e geçtim
    • Trailbase endpoint’lerde JS çalıştırabiliyor
      Yani tüm uygulamayı da barındırabiliyor
      Kılavuz bağlantısı
    • Buna bakınca Pocketbase tarafı daha çekici de gelebilir
  • Pocketbase’i yan projelerimde kimlik doğrulama katmanı olarak kullanıyorum
    kavla.dev üzerinde çalışıyor ve hook sistemi harika
    Go event hook dokümantasyonu sayesinde altyapı otomasyonunu da kolayca kurabildim

  • SQLite ve DuckDB ile hızlıca bir MVP çıkardım ama sonradan yedekleme ve production’a alma aşamasında pişman oldum
    En baştan Supabase ile başlasaydım daha kolay olurdu gibi geliyor

  • Ben OpenSOHO’yu Pocketbase ile yaptım ve bu sayede geliştirme süresinden ciddi biçimde tasarruf ettim
    Back-end’i yeniden kullanabilecek şekilde biraz değiştirdim ama zor değildi
    Ekran görüntülerine bakınca bile Pocketbase izleri hemen seçiliyor
    GitHub bağlantısı

  • Pocketbase’in SQLite yedeklemesi konusunda endişelendiğim için, çalışırken bile sqlite3_rsync ile yedek alabilen sqlrsync.com aracını kendim geliştirdim
    MVP çalışıyor; Cloudflare Durable Objects tabanlı olduğu için hızlı ve güvenilir
    Geri bildirimlere açığım

    • Ben de SQLite’ı seviyorum. litestream ile sürekli replikasyon kullanıyorum; siz de SQLite rsync kullanıyor musunuz merak ettim
    • SQLite’ın online backup API’sini deneyip denemediğinizi merak ediyorum. Ham dosya erişiminden kaçınmak daha iyi olabilir
    • sqlrsync ile litestream arasındaki farkın ne olduğunu öğrenmek istiyorum