Skip to main content

Introduction to SyncedStore

SyncedStore is a library for building distributed, real-time collaborative web applications that sync automatically. This used to be quite complex, but with SyncedStore it's as easy as sharing a pie!

It adds an easy-to-use API on top of modern CRDT technology (see below) to make developing multiplayer (or multi-device) experiences just as simple as developing regular applications.

npm versionΒ 
Discord

TL;DR​

Create apps like this:

SyncedStore CRDT screencapture

Play with this example

Using an API as simple as this:

// add a todo
store.todos.push({ completed: false, title: "Get groceries" });

// set todo to completed
store.todos[0].completed = true;
Tip: jump straight into the examples

You can walk through the documentation page-by-page, but if you're curious, you might want to jump straight into the live examples:

Why?​

SyncedStore makes it easy to develop applications that:

  • πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Are collaborative: create multi-user and multi-device experiences without the need to handle complex conflict resolution management yourself.
  • πŸš€ Are fast: operations are handled locally, and data synchronization with other users and devices happens quietly in the background. 0 Latency!
  • πŸ”— Work offline: cloud apps typically don’t work while offline. Supporting both data sync and offline used to be difficult, SyncedStore aims to simplify this.

Perhaps most importantly, it makes it easy to build decentralized applications. This has a lot of security & privacy benefits compared to always relying on central (expensive) servers to keep track of all our data.

Read more about the benefits of Local-first software in this essay

In short, with some technological magic of so-called CRDTs (Conflict-free Replicated Data Types), we can build cross-device apps that are more collaborative, faster, work offline AND put the user back in control of their data.

Sounds great? Let's get started!

Credits ❀️​

SyncedStore builds directly on Yjs (a proven, high performance CRDT implementation) and Reactive. It's also inspired by and builds upon the amazing work by MobX and NX Observe.

SyncedStore is built as part of TypeCell. TypeCell is proudly sponsored by the renowned NLNet foundation who are on a mission to support an open internet, and protect the privacy and security of internet users. Check them out!