PowerSync keeps backend databases in sync with on-device SQLite databases embedded in a client SDK. It enables instantly-responsive local-first & offline-first apps that remain available even when network connectivity is poor or non-existent.
Local-first is a paradigm where your app code works directly with a client-side embedded database, which automatically syncs with a backend database in the background. It overlaps with the offline-first paradigm.
PowerSync is designed to be backend database agnostic, and currently supports Postgres (stable), MongoDB (alpha), and MySQL (alpha).
PowerSync is also designed to be client-side framework agnostic, and currently supports Flutter, React Native & Expo, web/JS, Kotlin Multiplatform (beta) and Swift (alpha)
Additional supported backend databases and client SDKs are on our roadmap.
See the introduction and the Quickstart guide to get started.
Tutorials:
- Building an offline-first chat app with Flutter, Supabase and PowerSync (blog post)
- Building an offline-first chat app with Flutter, Supabase and PowerSync (video)
- Building an offline-first chat app with React Native, Supabase and PowerSync (by community member @bndkt)
Client SDKs are open-source, available under the Apache 2.0 license:
- Flutter/Dart SDK
- React Native SDK
- Web/JS
- Kotlin Multiplatform (currently in beta)
- Swift (currently in open alpha)
The PowerSync Service is source-available under an FSL license.
The following deployment options are available:
- PowerSync Cloud: A cloud-based service with pricing plans
- PowerSync Open Edition: A free source-available self-hosted version
- PowerSync Enterprise Self-Hosted Edition: A self-hosted Enterprise Edition with dedicated support plans, extra functionality and custom pricing.
See also: Licensing & Terms overview.
Open-source under Apache 2.0 or MIT license:
- powersync-sqlite-core — Rust-based SQLite extension used by PowerSync client SDKs.
- sqlite_async.dart — SQLite library for Dart & Flutter (used by PowerSync Flutter/Dart SDK, and can also be used stand-alone)
- drift_sqlite_async — ORM integration for Drift for Dart & Flutter (usable with PowerSync Flutter/Dart SDK)
See here: Demo Apps / Examples
Demo apps are listed under the backend they use, but you can easily wire up your own backend as documented here.
We're constantly expanding our list of example implementations. If you'd like to see an example currently not available, let us know on Discord.
PowerSync was spun off from JourneyApps, a product that's been in production for over 10 years. PowerSync was founded by @cahofmeyr and @rkistner. Learn more about the team here.
See the Community Code of Conduct for our community pledge, standards, responsibilities and guidelines.
We have an open community Discord. Join us there for questions, help or just a friendly chat.