electricsql

v2026.09.24

ElectricSQL real-time Postgres sync engine using Shapes for partial replication. Covers ShapeStream API, React hooks, where clause filtering, column selection, auth proxy patterns, and progressive write strategies from online-only to through-the-database. Use when setting up ElectricSQL, configuring Postgres sync, implementing shape-based data loading, building auth proxies for shapes, or choosing write patterns for local-first apps with Electric.

GitHub
Install command
npx skhub add oakoss/electricsql
Markdown
SKILL.md

ElectricSQL

Overview

ElectricSQL is a sync engine that streams partial replicas of Postgres data to local clients via Shapes. It handles the read path — syncing rows from Postgres to the client in real-time using logical replication. Writes flow back through your existing API; Electric syncs the confirmed state back to all connected clients.

When to use: Real-time sync from Postgres to client apps, local-first architectures needing live data from Postgres, replacing polling with streaming updates, apps using TanStack DB with Electric collections, multi-client collaborative apps backed by Postgres.

When NOT to use: Non-Postgres databases, apps needing client-to-server sync built into the engine (Electric handles reads only), simple REST CRUD with no real-time needs, apps that don't benefit from local data.

Quick Reference

PatternAPI / ApproachKey Points
Shape requestGET /v1/shape?table=items&offset=-1Initial sync fetches full snapshot
Live updates?live=true&handle=...&offset=...Long-poll for real-time changes after initial sync
SSE streaming?live=true&live_sse=truePersistent Server-Sent Events connection
Where clause?where=status='active'SQL-style row filtering at the server
Parameterized where?where=user_id=$1&params[1]=abcSQL injection safe parameterized filtering
Column selection?columns=id,title,statusSync only needed columns to reduce bandwidth
Full replica?replica=fullComplete row data on updates and deletes
Changes only?log=changes_onlySkip initial snapshot, receive only new changes
ShapeStream (JS)new ShapeStream({ url, params: { table } })Low-level streaming client with auto-reconnect
Shape (JS)new Shape(stream)Materializes stream into a Map of current values
useShape (React)useShape({ url, params: { table } })React hook with loading/error states
Auth proxyRoute shapes through your API serverValidate tokens, inject where clauses per user
Docker setupdocker run -e DATABASE_URL=... electricsql/electricSingle container, needs wal_level=logical
Electric secretELECTRIC_SECRET=key env varRequired for production; ELECTRIC_INSECURE=true for dev

Common Mistakes

MistakeCorrect Pattern
Exposing Electric directly to the internetPut Electric behind an auth proxy that validates tokens
Forgetting wal_level=logical in Postgres configRequired for logical replication; Electric will not start without it
Using Electric for writesElectric is read-path only; writes go through your API
Not returning txid from write handlersReturn { txid } so Electric can confirm sync completion
Syncing entire tables to every clientUse where clauses and column selection for partial replication
Hardcoding shape URL in client codeUse a proxy endpoint that adds auth and where clauses server-side
Using offset=-1 for every requestUse offset=-1 only for initial sync; use returned offset after
Not handling FetchError 401 in ShapeStreamUse onError callback to refresh tokens and retry

Delegation

If the local-first skill is available, delegate architecture decisions and sync engine comparison to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s local-first -a claude-code -y If the tanstack-db skill is available, delegate collection setup, live queries, and optimistic mutation patterns to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s tanstack-db -a claude-code -y If the tanstack-start skill is available, delegate shape proxy implementation with server functions to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s tanstack-start -a claude-code -y

  • Setup and deployment: Use Task agent for Docker and Postgres configuration
  • Architecture review: Use Plan agent for auth proxy and write pattern design

References

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

skills/electricsql

Default branch

main

Latest commit

85e3a39

Tree SHA

a4c9e7b