v0.2.2 - Complete Local-First Collaboration Platform
SyncKit v0.2.2: Complete Local-First Collaboration Platform
This release transforms SyncKit from a sync engine into a complete collaboration platform. You can now build Google Docs-style editing with conflict-free text, rich formatting, live cursors, and cross-tab undo—all working together out of the box.
Production Status: Production Core / Public Beta Features
🎉 Try It Live!
⚡ Try Live Demo - Open in two tabs to see real-time sync in action!
What You Can Build Now
Collaborative Text Editing
Add real-time text collaboration to your app:
- Conflict-free editing: Multiple users can edit simultaneously without overwrites (Fugue CRDT)
- Rich text formatting: Bold, italic, and links with deterministic conflict resolution (Peritext)
- Editor integration: Production-ready Quill binding included
- Cross-tab sync: Changes in one tab appear instantly in another (BroadcastChannel)
Real-Time Presence
Show who's online and where they're working:
- Awareness protocol: Track online users and their current selections
- Live cursors: Smooth, animated cursors with viewport positioning
- Cross-tab sync: Presence updates appear instantly across all tabs
Persistent History
Undo and redo that works like users expect:
- Cross-tab undo: Undo changes made in other tabs or sessions
- Persistent history: Undo/redo survives page refresh
- Custom CRDTs:
PN-Counterfor likes/votes,OR-Setfor tags/lists
Framework Support
Write less glue code with native framework adapters:
- React:
useSyncText,useRichText,usePresence,useOthers - Vue 3: Full Composition API integration with
useSyncKit - Svelte 5: Modern runes API (
$state,$derived)
✨ What's New in v0.2.2
Production-Ready Demo
- Created collaborative editor demo with room isolation
- Prevents shared state chaos with unique room IDs
- Live demo deployed at https://synckit-demo.netlify.app
- Open in multiple tabs to see real-time synchronization
Cross-Tab Sync Improvements
text()method now has cross-tab sync (previously onlyrichText()had it)- Real-time synchronization between browser tabs works for all document types
- Uses BroadcastChannel for instant local sync without network latency
Documentation
- Added comprehensive research credits (Fugue, Peritext, Loro, Ink & Switch)
- Created README for synckit-core crate (now visible on crates.io)
- Updated demo text for accuracy (local-first vs P2P)
- Added live demo link to main README
🐛 Bug Fixes
v0.2.1 (intermediate fix):
- Fixed lz-string import to use default export instead of named exports
- Resolved module loading errors in browser environments
v0.2.2:
- Added missing CrossTabSync to text() method
- Fixed real-time sync between tabs for plain text documents
Quality & Reliability
We take stability seriously:
- 1,081 tests (100% passing)
- 87% code coverage
- Zero critical vulnerabilities
- Zero unsafe Rust blocks
- <1ms local operations
📦 Installation
npm install @synckit-js/[email protected]Need a smaller bundle? Use @synckit-js/sdk/lite (46KB) for basic sync without rich text and frameworks.
🔗 Links
- Live Demo: https://synckit-demo.netlify.app
- npm: https://www.npmjs.com/package/@synckit-js/sdk
- Rust crate: https://crates.io/crates/synckit-core
- Quick Start: https://github.com/Dancode-188/synckit/blob/main/docs/guides/getting-started.md#quick-start-your-first-synced-document
- Migration guide: https://github.com/Dancode-188/synckit/blob/main/docs/guides/migration-from-v0.1.0.md
Breaking Changes
Bundle size increased to 154KB (from 59KB in v0.1.0) to support rich text, undo/redo, presence, and framework adapters. If you only need basic document sync, use the lite variant (46KB).
📝 Full Changelog (v0.2.0 → v0.2.2)
v0.2.2:
- feat: add CodeSandbox demo and fix cross-tab sync (2bd66ad)
- docs: add comprehensive research credits and acknowledgments (c4303a7)
- docs: add README for synckit-core crate (5382e33)
- polish: update demo text for accuracy (331866a)
- docs: add live demo link to README (b660e48)
- docs: remove outdated 'coming soon' text (eba5d14)
v0.2.1:
- fix: lz-string import to use default export
v0.2.0:
- feat: rich text editing with Peritext CRDT
- feat: persistent undo/redo across sessions
- feat: real-time presence and live cursors
- feat: React, Vue 3, and Svelte 5 adapters
- feat: cross-tab synchronization with BroadcastChannel
- feat: production-ready Quill editor binding
See the full changelog for detailed changes.
What's Next
Jump straight to the Quick Start guide to start building, or try the live demo to see SyncKit in action!
Thanks for using SyncKit! 🚀