// the find
powersync-ja/powersync-js
SDK that enables local-first and real-time reactive apps with embedded SQLite for JavaScript clients, including React Native and Web
PowerSync is a client-side SDK for building offline-first apps that sync a local SQLite database with a server-side PowerSync service (supports Postgres, MongoDB, MySQL, SQL Server). It covers React Native, Web, Node.js, and Electron with framework integrations for React, Vue, Angular, and ORMs like Drizzle and Kysely. You still need PowerSync's hosted or self-hosted sync service — this repo is the client half only.
- Genuinely broad platform coverage: one coherent abstraction works across React Native, browser (OPFS-backed SQLite via WASM), Node.js, Electron, and Capacitor — the shared `packages/common` core keeps behavior consistent.
- ORM integrations for Drizzle and Kysely are first-class packages, not afterthoughts, so you don't have to give up type-safe query builders to go local-first.
- The reactive query model (watch a SQL query, get updates when data changes) is a good fit for UI frameworks and avoids hand-wiring change events to component state.
- Monorepo is well-structured with changesets for versioning, multiple CI workflows including simulator/emulator tests, and a diagnostics app for inspecting local sync state at runtime.
- Hard dependency on the PowerSync sync service — there's no way to use just the local SQLite layer with your own sync protocol without building a custom connector, and the sync bucket model requires server-side configuration that ties you to their platform.
- Several packages are still in alpha or deprecated (attachments package is deprecated, attachments-storage-react-native is alpha, Node SDK is relatively new) — the surface area looks complete until you check the fine print.
- Web SQLite uses WASM + OPFS which has real gotchas: OPFS requires cross-origin isolation headers (`COOP`/`COEP`), breaking many third-party embeds, and the setup docs don't front-load this warning prominently enough.
- Metro symlink workaround for React Native development (the mtsl hack described in the README) signals fragility in the local dev loop — iterating on the native SQLite layer requires copying files around manually, which will frustrate contributors.