Skip to content

v0.2.2 - Complete Local-First Collaboration Platform

Choose a tag to compare

@Dancode-188 Dancode-188 released this 19 Dec 15:03
· 99 commits to main since this release

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-Counter for likes/votes, OR-Set for 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 only richText() 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


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! 🚀