Self-host PowerSync Service
v1.27.2Server-side sync engine for real-time SQLite replication
- Stars
- 397
- Port
- 8080 (PowerSync API server)
journeyapps/powersync-serviceWhat is PowerSync Service?
This server component of the PowerSync engine replicates data from your backend database and pushes it to SQLite databases running on client devices in real time. You define what each user receives through Sync Streams written in YAML. The bucket system deduplicates shared data so the service scales without linear resource growth. You can run it yourself via Docker (journeyapps/powersync-service), Docker Compose, or an npm package. The code is licensed under FSL-1.1-ALv2, which converts to Apache-2.0 after two years.
Should you self-host PowerSync Service?
PowerSync Service scores 49/100 on selfhost.directory (how scoring works) and ranks #35 of 40 in Database Management. It has 397 GitHub stars.
It shipped 10 stable releases in the past year. The latest, v1.27.2, came out on 24 October 2026. New versions land roughly every 9 days.
Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Typescript.
Its closest alternative on selfhost.directory is supabase (92/100, 114 248 stars). It scores higher overall, so compare the two before you pick. See PowerSync Service vs supabase side by side.
Features
- Automatic storage migrationsCan be disabled for external migration control.
- Bucket-based deduplication
- Health Checks
- Multiple source database support
- Offline-first support
- Prometheus Metrics
- Real-time data sync
- S3 object storage for bucketsRequires Service version 1.26.0+.
- Supabase Auth integration
- Sync Streams
- Telemetry and usage reportingCan be disabled via config.
PowerSync Service README
FAQ
My backend uses GraphQL. Can I use PowerSync?
PowerSync reads from Postgres directly; GraphQL/REST can be used for the write path.
Can attachments (files) be synced?
An attachment sync system can be built on top of PowerSync.
Can auto-incrementing IDs be used?
Generally not recommended but possible with caveats.
Are transactions supported?
Client-side transactions are supported using SQLite locking. Client-server transactions are not supported due to offline requirements.
Are live queries supported?
Yes, client SDKs support real-time streaming and can automatically rerun queries when underlying data changes.
I don't have direct database access, only an API. Can I use PowerSync?
Not directly; a workaround is replicating API data to Postgres first, then syncing with PowerSync.
Can a client track whether changes have been processed?
Not built-in, but can be implemented by storing a status column that the server updates when processing changes.
What happens when a user is offline for a long time?
If no Sync Stream/Rule changes were deployed, the user only downloads incremental changes since last connection.
How is a client-side sync triggered? Does the SDK use polling or real-time sync?
PowerSync uses near real-time streaming (<1s delay) via persistent HTTP/2 or WebSocket connections. A polling API will also be available for periodic updates.
Why does PowerSync use SQLite as the client-side database?
PowerSync uses SQLite because it provides a real SQL database on the client with familiar syntax, rich ecosystem (ORMs, extensions), high performance, maturity, and low lock-in.
More in Real-time
SoketiOpen-source WebSocket server that speaks Pusher Protocol v7, self-hosted via Docker, npm or Helm, with app credentials in arrays, MySQL, Postgres or DynamoDB.
SpacetimeDBSpacetimeDB is a source-available relational database that is also the server: your Rust or TypeScript module runs inside it. Self-hosted via Docker.
TogetherJSAn open-source, self-hosted JavaScript toolkit adding real-time co-browsing, shared cursors, text and audio chat to any site, with a relay hub you run yourself.
zen-relayZen Relay is an open-source, self-hosted WebSocket relay server for Zen Client and Bridge, written in Node.js with Express and Socket.IO.
CentrifugoOpen-source, self-hosted real-time messaging server with PUB/SUB over WebSocket, SSE and gRPC, scaling via Redis, PostgreSQL or NATS, plus an embedded admin UI.
DruidSelf-hosted open-source OLAP database delivering millisecond analytics on high-cardinality event data, with SQL, JDBC, a web console and native Kafka/Kinesis ingestion.
EZ-WifiBroadcastOpen-source, self-hosted FPV video link that streams low-latency 1080p video, MAVLink telemetry and RC control between a drone camera and its ground station.
FlowcatFlowcat is an open-source, self-hosted Rust runtime for real-time voice agents — single binary, no hosted control plane, native SIP/RTP/WebRTC, 80+ provider connectors.
Global Threat MapSelf-hosted, open-source OSINT command center: a Next.js Mapbox app plotting real-time global events, wars, conflicts and military bases, with AI intel dossiers.
GraphitiGraphiti is a self-hosted, open-source scene graph engine for interactive 3D data visualization with real-time peer-to-peer sync via WebRTC and CRDTs — no cloud required.
gunOpen-source P2P graph database with realtime sync and offline-first storage; run a self-hosted relay peer via Docker or npm in browsers, Node.js and mobile apps.
instantSelf-hosted, open-source backend-as-a-service: relational queries, realtime sync, offline caching, auth, storage and permission rules on PostgreSQL.
0 comments