This comparison reflects both products as of October 2026. Neon Realtime is in beta and is changing quickly. Check the Neon Realtime docs for its current status.
At a Glance
How Data Is Stored on the Client
PowerSync maintains a SQLite database on the client. Sync Streams define which rows each client receives, and the PowerSync client SDK writes them into SQLite tables. Your app queries those tables with normal SQLite queries, including joins, aggregates, and sorting. The data persists on the client across app restarts, and after a reconnect, PowerSync normally downloads only the deltas since the last sync. Neon Realtime works differently: there is no client-side database. It keeps the result of each live query in memory. Your app subscribes to a query, receives the full result, and then receives updates as transactions commit. If the connection drops, the app keeps showing the last result. When the connection returns, the subscription loads the query result again. They also differ in what you can query on the source database:- Neon live queries can use almost any read-only Postgres query, including joins, aggregates,
GROUP BY,ORDER BY,LIMIT, and window functions. Queries can’t call non-deterministic functions such asnow(). - PowerSync Sync Streams select the rows to sync, with support for filters, subqueries, and some joins. They don’t support aggregation, sorting, or
LIMITon the server. Instead, you include those in your queries against the local SQLite database after the rows are synced.
How Writes Work
Neither PowerSync nor Neon Realtime writes directly to the source database from the client. With both, your backend receives a mutation, validates it, and commits it. Your backend also decides how to handle conflicts. Where they differ is what happens to a mutation before your backend accepts it:Offline Support
PowerSync is built for offline use. Users can read synced data and make changes without a connection. The mutations wait in the upload queue, which survives app restarts, and upload when the client reconnects. See Client Architecture for details. With Neon Realtime, live query results stay available while the app is open, even if the connection drops. For offline persistence, Neon’s documentation points to TanStack DB, which has its own persistence and offline write packages.TanStack DB
Both products work with TanStack DB, and neither requires it.- PowerSync: Collections read from the local SQLite database. They can load data eagerly or on demand. The integration is in alpha. See docs.
- Neon Realtime: Each collection is backed by one live query. TanStack DB manages optimistic state for writes while your backend commits them.
Auth and Permissions
PowerSync clients connect with a JWT, either from your auth provider or issued by your backend. Sync Streams use claims from the token, such as the user ID, to decide which rows each client receives. Your backend authorizes writes when it receives them from the upload queue. See Authentication. Neon Realtime puts read authorization in your backend instead. When the app needs data, your backend authenticates the user, builds the SQL query with the user’s parameters, and seals it into a short-lived token. The client uses that token to subscribe and cannot read or change the query inside it. Your backend can use any authentication method. Neon Realtime does not support Postgres row-level security (RLS) yet. Neon says it aims to add RLS before general availability.Source Databases
Maturity labels for PowerSync as documented in Feature Status.Client SDKs and Platforms
PowerSync maturity labels as documented in Feature Status. See Supported Platforms for minimum versions and platform details.
On the backend, Neon Realtime also provides adapters for defining queries with Drizzle and Kysely. PowerSync supports Drizzle and Kysely on the client, along with other ORMs.
Hosting and Open Source
You can’t self-host Neon Realtime. If you need to run sync on your own infrastructure, for example for data residency or compliance, PowerSync supports that with the Open Edition or the Enterprise Self-Hosted Edition.
Learn More
- Neon + PowerSync: set up PowerSync with a Neon database
- Feature Status and Supported Platforms
- Neon Realtime documentation