Skip to content

Releases: Dancode-188/synckit

v0.3.0 - Production-Ready Multi-Language Servers

10 Feb 14:06
4f001bc

Choose a tag to compare

SyncKit v0.3.0: Production-Ready Multi-Language Servers

Full server parity across TypeScript, Python, Go, and C#, with comprehensive security hardening, OPFS storage, and a benchmark suite for cross-server performance comparison.

Production Status: Production Core / Public Beta Features


What's New

Multi-Language Servers

Your backend, your language. All four servers use the same binary protocol and are drop-in replacements for each other.

  • Python Server — Production-ready FastAPI implementation with JWT/RBAC, PostgreSQL, Redis pub/sub, rate limiting, and awareness cleanup
  • Go Server — High-performance Gorilla WebSocket implementation with JWT (golang-jwt/v5), PostgreSQL (pgx/v5), Redis (go-redis/v9), rate limiting, and origin validation
  • C# Server — ASP.NET Core implementation with full binary protocol support, JWT/RBAC, PostgreSQL, Redis, delta batching, ACK tracking, and 711 tests

OPFS Storage Adapter

Origin Private File System storage for browsers — 4-30x faster writes and 3-6x faster reads than IndexedDB, with automatic fallback for unsupported browsers and multi-tab coordination via SharedWorker.

Benchmark Suite

Cross-server performance comparison with throughput, latency, memory leak detection, and CLI runner. Results (50 concurrent clients, 60s):

Server Throughput p95 Latency
Go ~1,200 ops/sec ~12ms
TypeScript ~800 ops/sec ~18ms
Python ~600 ops/sec ~25ms

Snapshot API

doc.createSnapshot() and doc.restoreSnapshot() with automatic scheduling and server-side persistence in PostgreSQL.

LocalWrite Demo Improvements

Typing indicators, milestone celebrations, contribution stats, emoji reactions, time-lapse replay, onboarding hints, and Word Wall with live voting.


Security

  • SQL injection prevention in cleanup queries (PostgreSQL make_interval())
  • JWT secret enforcement in production (32+ characters required)
  • Anonymous authentication rejection by default
  • Rate limiting enforcement on all servers
  • WebSocket origin validation (Go server)

Bug Fixes

  • Concurrent Edit Divergence — Split-to-match merge algorithm fixes text divergence during simultaneous editing
  • Bidirectional Real-Time Sync — Fixed one-way sync issues with server-authoritative values
  • Delta Batch Message Loss — Fixed delta_batch messages being dropped on deployed infrastructure
  • Server Memory Leaks — 4 leaks plugged (connection cleanup, awareness state, subscription maps)
  • Test Suite Stability — Fixed 30 flaky tests in load and chaos suites

Migration from v0.2.x

All v0.2.x APIs remain compatible. New servers are drop-in replacements:

# TypeScript (existing)
cd server/typescript && bun run start

# Python (new)
cd server/python && uvicorn src.synckit_server.main:app

# Go (new)
cd server/go && go run cmd/server/main.go

# C# (new)
cd server/csharp/src && dotnet run --project SyncKit.Server

Full Changelog: v0.2.2...v0.3.0

v0.2.2 - Complete Local-First Collaboration Platform

19 Dec 15:03

Choose a tag to compare

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

v0.2.0 - Complete Local-First Collaboration Platform

18 Dec 13:36

Choose a tag to compare

SyncKit v0.2.0: 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


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

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: Changes in one tab appear instantly in another (BroadcastChannel)

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)

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/sdk

Need a smaller bundle? Use @synckit-js/sdk/lite (46KB) for basic sync without rich text and frameworks.


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).

Migration guide: https://github.com/Dancode-188/synckit/blob/main/docs/guides/migration-from-v0.1.0.md


What's Next

See the full changelog for detailed changes, or jump straight to the Quick Start guide to start building.

Thanks for using SyncKit!

v0.1.1 - Test Coverage Improvements & SDK Bug Fixes

03 Dec 02:44

Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • SDK: Fixed document initialization and integration test failures (PR #10 by @matthewcorven)
  • Resolved async initialization race conditions
  • Fixed integration test suite to properly wait for document initialization
  • Improved test reliability and determinism

✨ New Features

  • Binary Protocol Tests: Added comprehensive test coverage for production WebSocket binary protocol
  • 7 new binary protocol integration tests
  • Tests now verify actual production protocol used by SDK clients
  • Validates all message types and encoding/decoding

🔧 Improvements

  • Test Infrastructure: Enhanced test suite to use binary protocol adapters across all test categories

  • All integration tests now use BinaryAdapter (matches production SDK behavior)

  • Load tests updated for binary protocol (73 tests)

  • Chaos tests updated for binary protocol (86 tests)

  • Total test count: 410 tests with 100% pass rate ✅ (up from 385 tests)

  • Improved test realism - tests now verify actual production code paths

  • Code Quality: Removed debug logging and unused code for cleaner production builds

  • Removed verbose debug console.log statements

  • Cleaned up unused methods and dead code

  • Fixed TypeScript warnings

📚 Documentation

  • Updated test coverage documentation across all docs
  • Test count updated from 385 to 410 tests
  • Added binary protocol test category to documentation

📦 Installation

npm install @synckit-js/[email protected]
npm install @synckit-js/[email protected]

🙏 Contributors

Full Changelog: v0.1.0...v0.1.1

v0.1.0 - Production-Ready Release 🚀

26 Nov 18:47

Choose a tag to compare

SyncKit v0.1.0 - Production-Ready Local-First Sync

Published Packages:

✨ Features

  • LWW-CRDT with vector clock conflict resolution
  • Offline-first with automatic sync
  • React hooks (useSyncStore, useSyncDoc)
  • Binary WebSocket protocol (40% bandwidth savings)
  • PostgreSQL + Redis support
  • JWT authentication + RBAC
  • 700+ tests (91% SDK pass rate)

📊 Performance (All Targets Exceeded)

  • Local operations: <0.1ms (10x better than target)
  • Remote sync: ~10ms p95 (10x better than target)
  • Bundle size: 59KB gzipped (default), 45KB (lite)
  • Concurrent connections: 1000+ per server

📚 Getting Started

added 1 package, and audited 374 packages in 5s

84 packages are looking for funding
  run `npm fund` for details

5 moderate severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

added 40 packages, and audited 414 packages in 11s

87 packages are looking for funding
  run `npm fund` for details

5 moderate severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

📖 Documentation

🎯 What's Included

  • 3 Production Examples: Todo app, Collaborative editor, Project management
  • 8 Comprehensive Guides: Getting started, Offline-first, Performance, etc.
  • 3 Migration Guides: From Firebase, Supabase, Yjs/Automerge
  • Complete Deployment Docs: Docker, Fly.io, Railway

⚡ Timeline

  • Completed: 16 days (Nov 11-26, 2025)
  • Originally planned: 37 days
  • Speed: 2.3x faster than planned

🔗 Links


Built with: Rust, TypeScript, React, and modern web technologies.