mcpField
E
electricsql

electricsql

github.com/oakossData & databases20102 installsUpdated 10w ago
Repository

About electricsql

ElectricSQL is a skill for building real-time sync from Postgres to local clients using Shapes. It suits developers creating local-first apps; reads are synchronized while writes remain in an existing API.

Key features

  1. 01Real-time Postgres data sync
  2. 02Filter replicas by rows and columns
  3. 03ShapeStream and React hook support
  4. 04Handle authentication through an API proxy
  5. 05Sync confirmed state after writes

Use cases

  1. 01Provide live Postgres data to client apps
  2. 02Replace polling with streaming updates
  3. 03Build apps using TanStack DB
  4. 04Support collaborative apps backed by Postgres

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/oakoss/agent-skills --skill electricsql

After installing, type/electricsqlin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
auth-and-security.md
error-handling.md
monitoring.md
setup.md
shapes-and-streams.md
sync-performance.md
write-patterns.md

Details

From the project README

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

Comments

Markdown supported