DEV.co
Open-Source Databases · powersync-ja

powersync-js

PowerSync is a JavaScript SDK monorepo that syncs SQLite databases on clients with backend databases (Postgres, MongoDB, MySQL, SQL Server), enabling offline-first, real-time apps with instant UI responsiveness. It provides SDKs for React Native, Web, Node.js, and integrations with React, Vue, and popular ORMs like Kysely and Drizzle.

Source: GitHub — github.com/powersync-ja/powersync-js
688
GitHub stars
78
Forks
TypeScript
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorypowersync-ja/powersync-js
Ownerpowersync-ja
Primary languageTypeScript
LicenseApache-2.0 — OSI-approved
Stars688
Forks78
Open issues38
Latest release@powersync/[email protected] (2026-07-07)
Last updated2026-07-08
Sourcehttps://github.com/powersync-ja/powersync-js

What powersync-js is

TypeScript-based monorepo implementing a bidirectional sync engine with embedded SQLite clients, streaming bucket synchronization, and ORM integrations. Supports multiple platforms (React Native, Web, Node.js, Electron, Capacitor) and includes framework bindings (React, Vue) and TanStack Query integration for state management.

Quickstart

Get the powersync-js source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/powersync-ja/powersync-js.gitcd powersync-js# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Offline-First Mobile Apps

React Native applications requiring offline functionality, background sync, and instant UI updates. Example demos show to-do lists and group chat apps with Supabase backends.

Real-Time Collaborative Web Apps

Web applications needing real-time data synchronization across clients and server. Demo includes CRDT-based text collaboration with Yjs and Tiptap.

Multi-Platform Data Sync

Applications deployed across React Native, Web, and Electron that require unified local-first data layer and consistent state across platforms.

Implementation considerations

  • Monorepo structure requires understanding package boundaries; start with the appropriate platform-specific package (react-native, web, or node) rather than the entire monorepo.
  • Multiple ORM integrations (Kysely, Drizzle) and framework bindings (React, Vue) available; choose based on existing tech stack to minimize additional dependencies.
  • Background sync and offline-first patterns require application-level logic for conflict resolution, retry strategies, and user feedback; not purely automatic.
  • SQLite database schema and sync bucket configuration must align with backend schema; migration and versioning strategy should be established early.
  • Performance implications of local SQLite on constrained devices (older mobile phones) should be tested; monorepo includes example projects for benchmarking.

When to avoid it — and what to weigh

  • Server-Only or Purely Cloud-Native Architecture — If your stack is entirely server-side or requires no local persistence, PowerSync adds unnecessary complexity. Standard client libraries or GraphQL subscriptions may be simpler.
  • Non-SQL Datastores — PowerSync targets SQL-based backends (Postgres, MySQL, MongoDB, SQL Server). NoSQL stores without SQL interfaces will require custom integration work.
  • Minimal Offline Requirements — If offline functionality is not a core requirement and real-time sync is secondary, simpler state management (Redux, Zustand) may suffice.
  • Strict Licensing Constraints — If your organization prohibits Apache 2.0 dependencies for commercial use, requires review of indemnification terms, or mandates different license families.

License & commercial use

Licensed under Apache License 2.0, a permissive OSI license allowing commercial use, redistribution, and modification with patent protection. Requires inclusion of license and copyright notice.

Apache 2.0 is a permissive license generally compatible with commercial software. However, verify your organization's legal policy on indemnification clauses and patent grants. No explicit commercial support or SLA provided in the repository data; direct clarification with PowerSync or your legal team if required.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

SQLite on client-side exposes data at rest; encryption example exists (example-vite-encryption) but is opt-in. Authentication and authorization mechanisms are integration points, not built-in; secure implementation depends on backend configuration. No published security audit data in repository; review backend sync logic and auth implementation before storing sensitive data. Offline-first pattern requires careful conflict resolution to avoid data leakage between users.

Alternatives to consider

WatermelonDB

React Native-focused local-first database with ORM-like API. Simpler setup for mobile-only apps but less cross-platform flexibility and smaller ecosystem.

TanStack Query + local storage / IndexedDB

Lighter-weight client-side caching without embedded SQLite. Suitable for apps without strict offline requirements or complex relational data.

Firebase Realtime Database / Firestore with offline support

Managed backend with built-in offline and real-time sync. Limits schema flexibility and backend choice; less control over sync logic but reduced operational burden.

Software development agency

Build on powersync-js with DEV.co software developers

Explore PowerSync's multi-platform SDKs, review demo applications, and start integrating bidirectional sync into your next project.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

powersync-js FAQ

Do I need to run the entire monorepo, or can I install just the React Native SDK?
You install only the package you need (e.g., @powersync/react-native from npm). The monorepo is for development; end users consume published packages.
What happens if my client goes offline—will changes be lost?
No. PowerSync persists changes locally in SQLite. When connectivity resumes, the sync engine uploads changes and reconciles conflicts per your configured logic.
Is authentication handled by PowerSync?
No. PowerSync is a sync engine. You provide auth tokens or credentials; PowerSync uses them to authenticate sync requests with your backend.
Can I use PowerSync with my existing Postgres database?
Yes, if you implement a PowerSync sync adapter for your backend. SDKs integrate with standard SQL backends; Supabase examples are documented as reference implementations.

Work with a software development agency

Need help beyond evaluating powersync-js? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source databases integrations — and maintain them long-term.

Ready to Build Offline-First Apps?

Explore PowerSync's multi-platform SDKs, review demo applications, and start integrating bidirectional sync into your next project.