PowerSync is designed to be stack agnostic, and currently supports Postgres, MongoDB (alpha) and MySQL (alpha) as the source database, and has official SDKs for Flutter (mobile and web), React Native (mobile and web), JavaScript/Web (vanilla JS, React, Vue), Kotlin Multiplatform (beta) and Swift (alpha) available on the client-side today.

Support for additional platforms is on our Roadmap. If one isn’t supported today, please add your vote and check back soon.

Postgres Developers: Using Supabase? Try Our Guide.

If you are using Supabase as your backend, we provide a PowerSync<>Supabase integration guide which includes a tutorial and example app to quickly learn how to use PowerSync with Supabase.

Implementation outline

The following outlines our recommended steps to implement PowerSync in your project:

1

[Optional] Create a PowerSync Cloud account

Sign up for a free PowerSync Cloud account here if you want to go ahead with our cloud-hosted option. PowerSync can also be self-hosted — see instructions in step 3.

2

Configure your Source Database

Configure your source database for PowerSync — see Source Database Setup.

3

Connect PowerSync to your Database

Connect your database to your instance of the PowerSync Service:

  1. Using PowerSync Cloud: See Database Connection
  2. Using PowerSync Open Edition (self-hosted): Refer to our self-hosting section for configuration details and examples.
4

Define Basic Sync Rules

Define Sync Rules in PowerSync — this enables dynamic partial replication so that you don’t need to sync your entire database to devices.

  • Learn about Sync Rules in our introductory blog post.
  • We recommend starting with one or two simple Global Data queries.
5

[Optional] Generate a Development Token

Generate a Development Token so you can get up and running quickly, without implementing full custom authentication.

6

[Optional] Test Sync with our Diagnostics App

Use our hosted Diagnostics App to validate that your source database is syncing into SQLite as expected.

7

Implement PowerSync on the Client-Side

Implement an app using one of our Client SDKs:

  1. To start, you can continue using your Development Token.
  2. Implement a “Hello World” app to quickly get a feel, or jump straight into installing the client SDK in your existing app — see Client-Side Setup or follow end-to-end getting started instructions in the full SDK reference.
  3. Verify that downloads from your source database are working. Data should reflect in your UI and you can also inspect the SQLite database.
8

Implement Authentication

Implement authentication for clients (JWT-based) — see our docs here.

9

Configure your App Backend

Implement your backend app to accept and process writes from clients.

  • We have Node.js, Django and Rails demos available here.

Questions?

Join us on our community Discord server where you can browse topics from the PowerSync community and ask questions.