# s3nd vs Firebase

> A Firebase alternative for local-first apps that keep their data. What Firebase is, where the two overlap, where they differ, and when to pick each.

Canonical: https://www.s3nd.sh/alternatives/firebase · Markdown: https://www.s3nd.sh/alternatives/firebase.md · Français: https://www.s3nd.sh/fr/alternatives/firebase

A user who opens the app on a second device and finds their data there. Both handle the offline case without the app noticing.

## What Firebase is
Google’s hosted document database, Cloud Firestore, with realtime listeners and offline persistence on web and mobile. The SDK caches locally, queues writes while offline and reconciles when it reconnects. It is priced per document read, write and delete, and per gigabyte stored, and it comes with the rest of the Firebase platform: auth, rules, functions, hosting.

Website: https://firebase.google.com/products/firestore

## Where they part ways.
| | s3nd | Firebase |
| --- | --- | --- |
| What it is | A CLI, a library and React hooks over your own S3 bucket | Hosted realtime document database with an offline cache |
| Where the data lives | Your bucket: S3, R2, MinIO, Scaleway, Wasabi | Google Cloud |
| Both ends online at once | No. The code is redeemed later, until it expires | No |
| From inside your web app | Yes, through one route on your server | Yes |
| Accounts | None. The code is the whole handshake | Firebase Auth, anonymous allowed |
| Hosting | Your bucket, plus your server when a browser takes part | Hosted only |
| Price | Free. You pay your storage provider for a few objects that expire | Free tier, then per operation |
| License | MIT | Proprietary service; SDKs Apache-2.0 |

## What actually changes.
- **Google’s servers versus your bucket** — Firestore is the source of truth and it lives on Google Cloud. With s3nd the source of truth is the device, and the bucket is yours: S3, R2, MinIO, wherever you decide.
- **Per-operation pricing versus a few objects** — Firestore bills every read and write. A snapshot is one object, written when the user asks or on a debounce, and the cost is not worth calculating.
- **A platform versus a primitive** — Firebase is auth, rules, functions and a console. s3nd is put, get and a code. Neither is a criticism of the other.

## Pick the one that fits.
### Pick Firebase when
- Realtime across many users and you want Google to run all of it.
- You also want the auth, rules, functions and hosting.
- Native mobile with offline persistence out of the box.

### Pick s3nd when
- The data should not live on a third party’s servers.
- Predictable cost: a few objects, not a billion reads.
- Local-first with the browser as the source of truth and no sign-in.
