Releases: Dancode-188/synckit
v0.3.0 - Production-Ready Multi-Language Servers
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.ServerFull Changelog: v0.2.2...v0.3.0
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! 🚀
v0.2.0 - Complete Local-First Collaboration Platform
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-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)
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/sdkNeed 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
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
- @matthewcorven - SDK test fixes and improvements
Full Changelog: v0.1.0...v0.1.1
v0.1.0 - Production-Ready Release 🚀
SyncKit v0.1.0 - Production-Ready Local-First Sync
Published Packages:
- 📦
@synckit-js/sdk- TypeScript client SDK (59KB gzipped) - 📦
@synckit-js/server- WebSocket server (Bun + Hono)
✨ 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
- npm SDK: https://www.npmjs.com/package/@synckit-js/sdk
- npm Server: https://www.npmjs.com/package/@synckit-js/server
- GitHub: https://github.com/Dancode-188/synckit
- Documentation: docs/
Built with: Rust, TypeScript, React, and modern web technologies.