- PocketBase ist ein ein Datei umfassendes Open-Source-Backend mit Datenbank, Authentifizierung, Dateispeicher und Admin-Dashboard
- Eine integrierte, performante Datenbank mit Schema Builder, Datenvalidierung, Echtzeit-Abonnements und REST API ist enthalten
- Benutzerverwaltung per E-Mail-/Passwort-Login und OAuth2-Anmeldung (Google, Facebook, GitHub, GitLab) möglich
- Dateien sicher im lokalen Speicher oder im S3-Speicher ablegen und Medien über Datenbankeinträge verknüpfen, inklusive automatischer Thumbnail-Erstellung
- Als eigenständige App oder als erweiterbares Go·JavaScript-Framework nutzbar, ideal für den Bau schlanker, maßgeschneiderter Backends
PocketBase-Übersicht
- PocketBase ist eine Open-Source-Backend-Plattform, die als einzelne ausführbare Datei läuft
- Datenbank, Authentifizierung, Dateispeicherung und Admin-Dashboard sind in einem Paket vereint
- Es lässt sich schnell starten, ohne dass eine zusätzliche Serverkonfiguration erforderlich ist
Datenbankfunktionen
- Schema Builder, Datenvalidierung, Echtzeit-Abonnements und REST API werden von einer integrierten Datenbank unterstützt
- Funktionen für Live-Erkennung und -Abonnierung von Datenänderungen sind enthalten
- Daten können über die REST API einfach abgefragt, erstellt, geändert und gelöscht werden
Benutzerauthentifizierung
- Unterstützung für die App-Benutzerverwaltung und E-Mail-/Passwort-basierte Anmeldung
- Mit OAuth2-Authentifizierung ist die Anmeldung sowie Registrierung über Google, Facebook, GitHub und GitLab möglich
Dateispeicher
- Dateien können sicher im lokalen Speicher oder im S3-Speicher abgelegt werden
- Mediendateien können an Datenbankeinträge angehängt werden
- Bei Uploads ist die automatische Thumbnail-Erstellung möglich
Erweiterbarkeit und Entwickler-Unterstützung
- PocketBase kann als selbstständige Anwendung verwendet oder über Go- und JavaScript-Hooks als erweiterbares Framework genutzt werden
- Entwickler können eigene Logik hinzufügen und so ein individuelles Backend umsetzen
JavaScript SDK Beispiel
- Mit dem JavaScript SDK ist eine Interaktion mit dem PocketBase-Server möglich
- Das Beispiel zeigt das Abrufen einer Liste von Datensätzen der
example-Collection, das Abrufen, Löschen und Erstellen einzelner Datensätze, sowie das Abonnieren und Abbestellen von Echtzeit-Updates
- Methoden wie
pb.collection('example').getList(), getOne(), create(), delete() und subscribe() werden bereitgestellt
1 Kommentare
Hacker-News-Kommentare
Die Aussage „SQLite skaliert nicht“ ist meist eine Illusion durch verfrühte Optimierung
In der Praxis stößt man nur selten an die Grenzen der WAL-Kontention, und die Einfachheit eines einzelnen Binary ist meiner Meinung nach der Komplexität verteilter Systeme weit überlegen
Heutzutage hängt man selbst an kleine Projekte selbstverständlich einen DB-Cluster und einen Redis-Cache, aber Pocketbase zeigt, dass bei 99 % der CRUD-Apps nicht die DB der Engpass ist, sondern Netzwerklatenz und die Zeit, die Entwickler für die Verwaltung aufwenden
Ich habe es mit einem Rust-CLI-Benchmark getestet, und auf derselben Maschine war es schneller als MySQL oder Postgres
Für Projekte dieser Größenordnung ist SQLite optimal
Man muss alle Berechnungen auf Anwendungsebene erledigen, was umständlich ist
Wenn ich Pocketbase sehe, drücke ich sofort auf Upvote
Ich nutze es in mehreren Produktions-Apps, und es ist sehr stabil
Gelegentlich gibt es Breaking Changes, aber insgesamt ist es hervorragend und skaliert auch gut
Wenn eine benötigte Funktion fehlt, kann es etwas knifflig werden, aber erfahrene Entwickler bekommen das gut gelöst
Allerdings ist der Entwickler allein, deshalb mache ich mir Sorgen um die langfristige Wartung
Trotzdem ist es eine wirklich gute Wahl, wenn man Frontend und Backend trennen muss
Für persönliche Projekte und interne Tools nutze ich Pocketbase sehr gern
Zusammen mit PocketPages lassen sich dateibasiertes Routing und Templates leicht einsetzen
Dank der automatischen DB-Migrationen kann man Schemaänderungen in die Versionsverwaltung aufnehmen
Ich habe sogar einen Gemini-Protokoll-Server angebunden und durchstöbere damit meinen persönlichen Wissensgraphen in Lagrange
Pocketbase ist ein Backend-Server, der sich über eine GUI konfigurieren lässt
Damit kann man fast ohne Code ein funktionierendes Backend bauen, weshalb es sich gut für Prototypen, MVPs und einfache Apps eignet
Populär gemacht hat dieses Konzept Firebase
Die Backends, die ich schreibe, brauchen Hunderte bis Tausende Zeilen Code — ich möchte verstehen, wie das ersetzt wird
Mich interessiert, welche Bandbreite an Apps sich mit solchen Tools bauen lässt
Ich habe Pocketbase in einem Side-Project genutzt und war wirklich beeindruckt
Ich arbeite schon lange mit Django, aber für kleine bis mittelgroße Projekte passt Pocketbase viel besser als ein traditionelles Backend selbst zu bauen
Wenn ihr Fragen habt, beantworte ich sie gern
Und unterstützt es auch PostgreSQL oder ist es ausschließlich für SQLite?
Deshalb habe ich einen Claude Skill gebaut — mich würde interessieren, ob andere ähnliche Erfahrungen gemacht haben
Trailbase ist dieselbe Idee in Rust umgesetzt
Deshalb bin ich zu Trailbase gewechselt
Das heißt, man kann damit auch die komplette App hosten
Guide-Link
Ich nutze Pocketbase als Authentifizierungs-Layer für mein Side-Project
Es läuft auf kavla.dev, und das Hook-System ist großartig
Dank der Dokumentation zu Go Event Hooks lässt sich auch Infrastruktur-Automatisierung leicht umsetzen
Ich habe mit SQLite und DuckDB schnell ein MVP gebaut, es später aber in der Phase von Backups und Produktionsreife bereut
Wenn ich von Anfang an mit Supabase gestartet wäre, wäre es wohl einfacher gewesen
Ich habe OpenSOHO mit Pocketbase gebaut und dadurch viel Entwicklungszeit gespart
Ich musste das Backend etwas anpassen, damit es wiederverwendbar ist, aber das war nicht schwer
Schon an den Screenshots erkennt man sofort die Handschrift von Pocketbase
GitHub-Link
Weil ich mir Sorgen um SQLite-Backups in Pocketbase gemacht habe, habe ich selbst ein Tool gebaut, mit dem man auch im laufenden Betrieb per sqlite3_rsync Backups erstellen kann: sqlrsync.com
Das MVP funktioniert bereits und ist dank Cloudflare Durable Objects schnell und stabil
Feedback ist willkommen