Moteurs de synchronisation local-first
Une alternative à Firebase pour les apps local-first qui gardent leurs données
Un utilisateur qui ouvre l’app sur un second appareil et y retrouve ses données. Les deux gèrent le cas hors ligne sans que l’app s’en aperçoive.
Ce qu’est Firebase
Dans ses propres termes.
La base de documents hébergée de Google, Cloud Firestore, avec des écouteurs en temps réel et une persistance hors ligne sur web et mobile. Le SDK met en cache localement, met les écritures en file hors ligne et réconcilie à la reconnexion. Facturée par lecture, écriture et suppression de document, et par gigaoctet stocké, avec le reste de la plateforme Firebase : auth, règles, fonctions, hébergement.
Côte à côte
Où ils se séparent.
| s3nd | Firebase | |
|---|---|---|
| Ce que c’est | Une CLI, une bibliothèque et des hooks React sur votre propre bucket S3 | Base de documents hébergée en temps réel avec un cache hors ligne |
| Où vivent les données | Votre bucket : S3, R2, MinIO, Scaleway, Wasabi | Google Cloud |
| Les deux côtés en ligne en même temps | Non. Le code est utilisé plus tard, jusqu’à expiration | Non |
| Depuis votre app web | Oui, via une route sur votre serveur | Oui |
| Comptes | Aucun. Le code est toute la poignée de main | Firebase Auth, anonyme autorisé |
| Hébergement | Votre bucket, plus votre serveur quand un navigateur participe | Hébergé uniquement |
| Prix | Gratuit. Vous payez votre fournisseur de stockage pour quelques objets qui expirent | Offre gratuite, puis à l’opération |
| Licence | MIT | Service propriétaire ; SDK Apache-2.0 |
Les différences
Ce qui change vraiment.
Les serveurs de Google ou votre bucket
Firestore est la source de vérité et vit sur Google Cloud. Avec s3nd, la source de vérité est l’appareil, et le bucket est à vous : S3, R2, MinIO, où vous décidez.
Facturation à l’opération ou quelques objets
Firestore facture chaque lecture et chaque écriture. Un snapshot est un objet, écrit quand l’utilisateur le demande ou après temporisation, et le coût ne vaut pas la peine d’être calculé.
Une plateforme ou une primitive
Firebase, c’est de l’auth, des règles, des fonctions et une console. s3nd, c’est put, get et un code. Aucun des deux n’est une critique de l’autre.
La décision
Choisissez celui qui convient.
Choisissez Firebase quand
- Du temps réel entre beaucoup d’utilisateurs et vous voulez que Google fasse tout tourner.
- Vous voulez aussi l’auth, les règles, les fonctions et l’hébergement.
- Du mobile natif avec persistance hors ligne prête à l’emploi.
Choisissez s3nd quand
- Les données ne doivent pas vivre sur les serveurs d’un tiers.
- Un coût prévisible : quelques objets, pas un milliard de lectures.
- Du local-first avec le navigateur comme source de vérité et sans connexion.
Plus de comparaisons
Outil par outil.
Déposez un fichier. Donnez le code.
Pointez-le sur le bucket que vous payez déjà. Rien à déployer, aucune inscription, personne au milieu.