# s3nd vs PowerSync

> A PowerSync alternative when there is no backend database. What PowerSync is, where the two overlap, where they differ, and when to pick each.

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

Both are offline-first: the app reads and writes locally and the network is a background concern. Both let a user pick up on another device.

## What PowerSync is
A sync engine that keeps a SQLite database on the client in step with your Postgres, MongoDB or MySQL. Sync rules decide which rows each user receives, writes go back through your own backend, and the client SDKs cover web, React Native, Flutter, Swift and Kotlin. Available as a hosted cloud or self-hosted.

Website: https://www.powersync.com

## Where they part ways.
| | s3nd | PowerSync |
| --- | --- | --- |
| What it is | A CLI, a library and React hooks over your own S3 bucket | Postgres, MongoDB or MySQL to client-side SQLite sync engine |
| Where the data lives | Your bucket: S3, R2, MinIO, Scaleway, Wasabi | Your database, replicated to each client |
| 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, web SDK |
| Accounts | None. The code is the whole handshake | Required, JWT |
| Hosting | Your bucket, plus your server when a browser takes part | Hosted cloud or self-hosted |
| Price | Free. You pay your storage provider for a few objects that expire | Free tier and paid plans; self-hosting is free |
| License | MIT | Client SDKs Apache-2.0; the service is source-available |

## What actually changes.
- **A database on the server versus none** — PowerSync replicates from a backend database that is the source of truth. s3nd assumes the browser is the source of truth and there may be no backend database at all; the bucket holds a snapshot, not a replica.
- **Partial, continuous replication versus a whole snapshot** — PowerSync streams the rows a user is allowed to see, as they change. s3nd moves the whole local database once, or rewrites one backup object per user.
- **A service versus a bucket** — PowerSync is a service to run or rent, with sync rules to write. s3nd is one route and a bucket, and a day’s work.
- **Users versus codes** — PowerSync authenticates every client with a JWT. s3nd works without any identity: a code, an expiry, a rate limit.

## Pick the one that fits.
### Pick PowerSync when
- You have a Postgres and want it on the client, offline-first.
- Many users, row-level permissions, live updates.
- Native mobile SDKs are a requirement.

### Pick s3nd when
- There is no backend database; the browser holds the data.
- A code, not a login.
- The whole feature should take an afternoon.
