{"repo":"michaelshimeles/self-sync","free":true,"listed":false,"github":"https://github.com/michaelshimeles/self-sync","clone":"git clone https://github.com/michaelshimeles/self-sync.git","description":"A local-first sync engine for SvelteKit and Effect with reactive IndexedDB state, WebSockets, and Postgres/MySQL adapters.","language":"TypeScript","stars":88,"topics":["effect","indexeddb","local-first","mysql","postgres","sveltekit","sync-engine"],"license":null,"category":"databases-storage","readme_excerpt":"Self Sync Self Sync is a local-first sync framework for SvelteKit and Effect. It gives you instant local UI, atomic multi-record mutations, durable SQL-backed sync, and realtime convergence without making realtime the source of truth. Apps transact against IndexedDB first, queue whole transactions while offline, sync to Postgres or MySQL when a connection is available, and use WebSockets to wake up other clients after commits land. In one line: Local-first UX, SQL durability, realtime convergence. Live app: https://sveltekit-effect-local-first-sync.vercel.app How To Explain It Self Sync is both local-first and realtime, but local-first is the core. Realtime is the acceleration layer. It does not carry authoritative app state or replace sync. It only tells connected clients that something changed, then each client pulls through the same sync endpoint and merges the result into its local database. That means the app stays useful offline, feels instant while online, and still converges across tabs, browsers, and devices. What This Gives You - Instant UI: reads and writes hit IndexedDB first, and Svelte updates from Dexie liveQuery . - Offline writes: creates, edits, drag/drop moves, and deletes queue locally when the network is unavailable. - Transactions as a primitive: related reads, writes, and outbox entries commit together locally and remain one atomic unit on the server. - Durable sync: the server persists records in Postgres or MySQL through a shared sync contract. - Real","default_branch":null,"files":null,"tree":[],"storefront":"/r/michaelshimeles","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/michaelshimeles/self-sync/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}