HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Dancode-188
synckit
TypeScript2025–2026
Dancode-188 / synckit

synckit

Local-first collaboration SDK for React, Vue, and Svelte. Batteries-included: Rich text, undo/redo, cursors, and presence.

3Distinct people
8Mentions
0Explicit recommenders
672GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Local-first collaboration SDK for React, Vue, and Svelte. Batteries-included: Rich text, undo/redo, cursors, and presence.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week8 dated mentions

Observed mentions: 2025-11-27 14:31:44 UTC to 2026-02-10 15:41:48 UTC. Weeks start Monday, UTC.

012342025-11-24 00:00:00 UTC to 2025-12-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 commentsNov 242025-12-01 00:00:00 UTC to 2025-12-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-08 00:00:00 UTC to 2025-12-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-15 00:00:00 UTC to 2025-12-22 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-12-22 00:00:00 UTC to 2025-12-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-12-29 00:00:00 UTC to 2026-01-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsDec 292026-01-05 00:00:00 UTC to 2026-01-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-12 00:00:00 UTC to 2026-01-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-19 00:00:00 UTC to 2026-01-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-26 00:00:00 UTC to 2026-02-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-02 00:00:00 UTC to 2026-02-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-09 00:00:00 UTC to 2026-02-16 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsFeb 9

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Nov 242025-11-24 00:00:00 UTC2025-12-01 00:00:00 UTC413
Dec 12025-12-01 00:00:00 UTC2025-12-08 00:00:00 UTC000
Dec 82025-12-08 00:00:00 UTC2025-12-15 00:00:00 UTC000
Dec 152025-12-15 00:00:00 UTC2025-12-22 00:00:00 UTC211
Dec 222025-12-22 00:00:00 UTC2025-12-29 00:00:00 UTC000
Dec 292025-12-29 00:00:00 UTC2026-01-05 00:00:00 UTC000
Jan 52026-01-05 00:00:00 UTC2026-01-12 00:00:00 UTC000
Jan 122026-01-12 00:00:00 UTC2026-01-19 00:00:00 UTC000
Jan 192026-01-19 00:00:00 UTC2026-01-26 00:00:00 UTC000
Jan 262026-01-26 00:00:00 UTC2026-02-02 00:00:00 UTC000
Feb 22026-02-02 00:00:00 UTC2026-02-09 00:00:00 UTC000
Feb 92026-02-09 00:00:00 UTC2026-02-16 00:00:00 UTC211

What Hacker News says

8 sources
Try it now: https://localwrite-demo.fly.dev Open in two tabs, join a room, start typing. That's the pitch. SyncKit is an offline-first sync engine. Rust core compiled to WASM, TypeScript SDK, works in any framework. What's new since v0.1.0 (which some of you saw here 75 days ago): - Live demo (LocalWrite) - collaborative editor you can try right now - Rich text CRDTs (Fugue + Peritext) not just LWW anymore - Live cursors and presence - React/Vue/Svelte adapters - Multi-language servers (TypeScript, Python, Go, C#) - 2,100+ tests, formally verified with TLA+ The demo shows character-level sync, slash commands, a community Word Wall, and offline editing. Disconnect your network, keep typing, reconnect - it merges automatically. Known limitations: - SDK undo/redo not yet wired into the demo editor (browser native works) - No E2E encryption y
Read the rest
et Security note on the demo: LocalWrite is a public collaborative space with no authentication. Rooms are accessible to anyone with the URL and so don't share sensitive or personal data. The server sees all content in plaintext. Rate limiting and input validation are in place, but there's no content moderation or identity verification. Treat it like a public whiteboard. GitHub: https://github.com/Dancode-188/synckit npm: @synckit-js/sdk Happy to answer questions about the CRDT implementation, architecture, or anything else.
In Show HN: SyncKit – Open two browser tabs and watch CRDTs sync in real-time
Hey HN, I'm Daniel, creator of SyncKit. I've been obsessed with the Ink & Switch "Local-First Software" vision for some time now—apps that work offline, feel instant, and give users control of their data. But every time I tried to build a local-first app, I hit the same wall: integration complexity. The existing CRDT libraries (Yjs, Automerge) are incredible—they pioneered the algorithms that make local-first work. Kevin's optimization work on Yjs is masterful, and Automerge changed how I think about distributed systems. But they're designed as modular primitives. You compose networking, storage, and conflict resolution yourself. That flexibility is powerful for complex systems, but it creates what I call the "Day 1 problem" for local-first: you spend 3 days wiring infrastructure before writing features. I built SyncKit to solve this. Dif
Read the rest
ferent philosophy: Where Yjs gives you powerful primitives (build your own local-first stack), SyncKit gives you a pre-wired local-first database. Persistence, sync, presence—built-in, not plugins. The technical approach: - Rust core with zero unsafe blocks (you can grep the codebase) - TLA+ verified (explored 6.5M states to prove correctness) - 154KB bundle (everything compiled together) - 1,081 tests, 80 chaos tests Performance: Competitive within 1-2ms of Yjs for standard ops. The win is local-first DX - one package that handles offline, sync, and conflict resolution. What's included: - Rich text editing (Fugue algorithm for non-interleaving edits) - Live cursors & presence - Undo/redo (CRDT-native) - IndexedDB persistence - React/Vue/Svelte adapters Built this in Nairobi, 9pm-3am. v0.1.0 got 601 stars in 3 weeks which honestly shocked me. Try it live: https://synckit-demo.netlify.app GitHub: https://github.com/Dancode-188/synckit Happy to answer questions about the TLA+ verification or the local-first architecture choices.
In Show HN: SyncKit – TLA+ verified CRDT for local-first apps (zero unsafe Rust)
Please do in the repo, and thank you for the wonderful contribution on multiple fronts. This is very well done work and documentation. A few tips to help others discover the value on the Readme: Add the key memory benchmark (currently just above the acknowledgments) to the top of the Readme and link to the rest of the benchmarks on the page that you already have (maybe rename it benchmarks.md in the process): https://github.com/Dancode-188/synckit/blob/main/docs/guides...
In Show HN: SyncKit – Offline-first sync engine (Rust/WASM and TypeScript)
The conflict resolution guide seems quite clear: https://github.com/Dancode-188/synckit/blob/main/docs/guides... But I’m a little confused about why it says “Zero data loss with automatic conflict resolution” on the top level page and “data loss possible” under the disadvantages of last-write-wins conflict resolution. It makes sense that you have to start somewhere, but to my mind, last-write-wins isn’t really conflict resolution? What does using this library solve? I guess it means edits to different fields don’t conflict. But if it’s the same field, it will get clobbered.
In Show HN: SyncKit – Offline-first sync engine (Rust/WASM and TypeScript)
Hey HN, I built SyncKit after shipping two local-first projects (RestBolt and Graft) and realizing there's no simple way to add cross-device sync. The problem: Existing solutions are either too complex (Automerge/Yjs require learning CRDTs) or too restrictive (Firebase isn't truly local-first, Supabase has no offline support - issue #357 has been open 4+ years with 350+ upvotes). SyncKit is the middle ground: simple API, works offline-first, self-hostable. Technical highlights: - TLA+ formal verification: 118,711 states checked, caught bugs before implementation - Rust → WASM core (48.9KB gzipped) - 700+ tests including 80 chaos tests (zero data loss) - Server: Bun/Hono WebSocket (SDK works in any JS runtime) - Production-ready: v0.1.0 on npm and Docker Hub Known limitations (v0.1.0): - LWW only - advanced CRDTs (Text, Counter, Set) comin
Read the rest
g in v0.2.0 - React hooks only - Vue/Svelte adapters planned - Reference server is Bun (Node/Deno coming v0.3.0) Happy to answer questions about the CRDT implementation, TLA+ modeling, or WebSocket architecture. GitHub: https://github.com/Dancode-188/synckit npm: @synckit-js/sdk
In Show HN: SyncKit – Offline-first sync engine (Rust/WASM and TypeScript)

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.