Powersync
Build local-first, offline-capable TypeScript apps with PowerSync. Use when implementing real-time sync between SQLite and backend databases (Postgres, MongoDB, MySQL, SQL Server). Covers schema definition, database setup, CRUD operations, React/Vue hooks, watch queries, and Kysely/Drizzle ORM integration.From its SKILL.md
npx -y skills add guillempuche/ai-standards --skill powersyncAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.9 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
PowerSync TypeScript Skill
Sync engine for local-first apps with real-time sync between client SQLite and backend databases.
When to Use
- Offline-first/local-first applications
- Real-time sync between client and server
- Instant UI responsiveness with background sync
Installation
| Platform | Package |
|---|---|
| Web | @powersync/web + @journeyapps/wa-sqlite |
| React Native | @powersync/react-native + @powersync/op-sqlite |
| React hooks | @powersync/react |
| Vue composables | @powersync/vue |
| Node.js | @powersync/node |
| Kysely ORM | @powersync/kysely-driver |
| Drizzle ORM | @powersync/drizzle-driver |
Core Setup
API Quick Reference
| Operation | Method |
|---|---|
| Get one | db.get(sql, params) / db.getOptional(sql, params) |
| Get all | db.getAll(sql, params) |
| Execute | db.execute(sql, params) |
| Transaction | db.writeTransaction(async (tx) => { ... }) |
| Watch | db.query({sql, parameters}).watch() |
| Diff watch | db.query({sql, parameters}).differentialWatch() |
Full CRUD: docs
React Hooks
| Hook | Purpose |
|---|---|
useQuery | Query with loading/error states |
useSuspenseQuery | Query with Suspense |
useStatus | Connection status |
usePowerSync | Database instance |
ORM Integration
| ORM | Docs | Example |
|---|---|---|
| Kysely | docs | source |
| Drizzle | docs | source |
| TanStack DB | docs | demo |
Documentation
Local References
references/sync-rules.md- Sync Rules configurationreferences/examples.md- All official example projects
GitHub Source
| Package | Description |
|---|---|
| common | Shared core (schema, sync, types) |
| web | Web SDK |
| react-native | React Native SDK |
| node | Node.js SDK |
| capacitor | Capacitor SDK |
| react | React hooks |
| vue | Vue composables |
| tanstack-react-query | TanStack Query integration |
| kysely-driver | Kysely ORM driver |
| drizzle-driver | Drizzle ORM driver |
| attachments | File attachments helper |
| powersync-op-sqlite | OP-SQLite adapter |
| adapter-sql-js | SQL.js adapter (Expo Go) |
What ships with it: 2 files
13.4 KB alongside SKILL.md
references/
- examples.md7.2 KB
- sync-rules.md6.2 KB