- PocketBase est un backend open source à fichier unique en temps réel
- Il intègre une base de données performante incorporée avec constructeur de schéma, validation des données, abonnements en temps réel et REST API
- La gestion des utilisateurs est simplifiée grâce à la connexion par e-mail/mot de passe et à la connexion OAuth2 (Google, Facebook, GitHub, GitLab)
- Il est possible de stocker des fichiers en toute sécurité en local ou sur S3 Storage et d’associer des médias aux enregistrements de la base de données pour générer des miniatures automatiquement
- PocketBase peut être utilisé comme une application autonome ou comme un framework extensible en Go et JavaScript, ce qui le rend pratique pour créer un backend léger sur mesure
Présentation de PocketBase
- PocketBase est une plateforme backend open source qui fonctionne avec un seul fichier exécutable
- Base de données, authentification, stockage de fichiers et tableau de bord d’administration fournis de manière intégrée
- Une architecture qui peut être démarrée rapidement sans configuration de serveur distincte
Fonctionnalités de base de données
- Intégration d'une base de données embarquée avec constructeur de schéma, validation des données, abonnements en temps réel et REST API
- Détection et abonnement aux changements de données en temps réel
- Consultation, création, modification et suppression de données possibles facilement via la REST API
Authentification des utilisateurs
- Prise en charge de la gestion des utilisateurs de l'application et de la connexion par e-mail/mot de passe
- OAuth2 permet l’inscription et la connexion avec des comptes Google, Facebook, GitHub, GitLab
Stockage de fichiers
- Les fichiers peuvent être stockés en toute sécurité en local ou sur S3 Storage
- Possibilité de joindre des fichiers médias aux enregistrements de la base de données
- La création automatique de miniatures est disponible lors du téléversement
Évolutivité et support développeur
- PocketBase peut être utilisé comme une application autonome ou exploité comme un framework extensible via des hooks Go et JavaScript
- Les développeurs peuvent ajouter leur propre logique pour implémenter un backend personnalisé
Exemple de SDK JavaScript
- Le SDK JavaScript permet d’interagir avec le serveur PocketBase
- L’exemple de code montre la liste des enregistrements de la collection
example, la consultation, la suppression et la création d'un seul enregistrement, ainsi que l'abonnement et la désinscription en temps réel
- Les méthodes
pb.collection('example').getList(), getOne(), create(), delete(), subscribe() sont proposées
1 commentaires
Avis Hacker News
Dire que « SQLite ne passe pas à l’échelle » relève le plus souvent de l’illusion de l’optimisation prématurée
En pratique, on atteint rarement les limites de contention du WAL, et la simplicité d’un binaire unique me semble largement préférable à la complexité des systèmes distribués
Aujourd’hui, même les petits projets ajoutent par réflexe un cluster de base de données et un cache Redis, mais Pocketbase montre bien que, dans 99 % des applis CRUD, le goulot d’étranglement n’est pas la base de données, mais la latence réseau et le temps d’administration du développeur
J’ai fait des tests avec un benchmark CLI en Rust, et les performances étaient meilleures que MySQL ou Postgres sur la même machine
À cette échelle, SQLite est le meilleur choix
Il faut gérer tous les calculs côté application, ce qui est pénible
Quand je vois Pocketbase, je mets immédiatement un upvote
Je l’utilise sur plusieurs applis en production et c’est très stable
Il y a parfois des changements cassants, mais dans l’ensemble c’est excellent et ça passe bien à l’échelle
Quand il manque une fonctionnalité, ça peut être un peu délicat, mais pour un développeur expérimenté, ça reste tout à fait gérable
En revanche, comme il n’y a qu’un seul développeur, je m’inquiète pour la maintenance à long terme
Cela dit, c’est un très bon choix quand il faut séparer le front et le back
J’utilise beaucoup Pocketbase pour des projets perso et des outils internes
Avec PocketPages, on peut facilement utiliser du routage basé sur les fichiers et des templates
La fonctionnalité de migration de base de données automatique permet d’inclure les changements de schéma dans le versioning
J’y ai même branché un serveur du protocole Gemini pour parcourir mon graphe de connaissances personnel avec Lagrange
Pocketbase est un serveur backend configurable via une interface graphique
On peut créer un backend fonctionnel presque sans code, ce qui le rend adapté aux prototypes, aux MVP et aux applis simples
C’est Firebase qui a popularisé ce concept
Les backends que j’écris nécessitent des centaines voire des milliers de lignes de code ; j’aimerais comprendre comment ça remplace cela
Je suis curieux de connaître l’étendue des applis qu’on peut construire avec ce genre d’outil
J’ai testé Pocketbase sur un side project et j’ai été vraiment impressionné
Je travaille avec Django depuis longtemps, et pour les projets petits à moyens, Pocketbase est bien plus adapté que de construire soi-même un backend traditionnel
Si vous avez des questions, j’y répondrai volontiers
Et j’aimerais aussi savoir s’il prend en charge PostgreSQL ou s’il est limité à SQLite
J’ai donc créé une Claude Skill ; je me demande si d’autres ont eu la même expérience
Trailbase est une implémentation du même concept en Rust
Je suis donc passé à Trailbase
Autrement dit, il peut aussi héberger l’application complète
Lien vers le guide
J’utilise Pocketbase comme couche d’authentification pour un side project
C’est en production sur kavla.dev, et son système de hooks est excellent
La documentation des hooks d’événements Go facilite aussi beaucoup l’automatisation de l’infrastructure
J’ai rapidement construit un MVP avec SQLite et DuckDB, mais je l’ai regretté plus tard au moment de la sauvegarde et du passage en production
Si j’avais commencé directement avec Supabase, cela aurait sans doute été plus simple
J’ai créé OpenSOHO avec Pocketbase, et cela m’a fait gagner énormément de temps de développement
J’ai légèrement modifié le backend pour le rendre réutilisable, mais ce n’était pas difficile
Rien qu’en regardant les captures d’écran, on reconnaît immédiatement la patte de Pocketbase
Lien GitHub
Comme les sauvegardes SQLite de Pocketbase m’inquiétaient, j’ai créé moi-même sqlrsync.com, un outil qui permet de sauvegarder avec sqlite3_rsync même pendant l’exécution
Le MVP fonctionne, il repose sur Cloudflare Durable Objects, donc c’est rapide et fiable
Tous les retours sont bienvenus