Introduction
GoSync is an offline-first synchronization engine designed to solve the "Two-Language Problem" in modern web development.
Most sync solutions force you to duplicate business logic: writing validation in JavaScript for the frontend and again in Go/Node/Python for the backend. GoSync eliminates this by running a Shared Brain.
Why GoSync?
- Unified Logic: Write your conflict resolution and validation rules once in Go. We compile it to WASM for the browser and a native binary for the server.
- Bandwidth Efficient: Uses Merkle Trees to compare datasets. If you have 1GB of data but only changed 1KB, we only send 1KB.
- True Offline: Your app works perfectly without internet. We queue changes in IndexedDB and sync automatically when the connection returns.
- Privacy-Centric: Self-hosted. No data ever touches a third-party cloud.
Architecture
At its core, GoSync is a matching engine. It maintains a Merkle Tree of your dataset on both the Client (Browser) and Server.
- Client: The Go-WASM worker intercepts data changes and writes them to IndexedDB.
- Sync: When online, it exchanges Merkle Root Hashes with the server.
- Delta: If hashes differ, it drills down to find the specific items that changed and exchanges only those.
Current Status
Note: GoSync is currently in Public Beta (v0.1.0). While the core engine is stable, APIs may change.
Ready to build? Get Started →