Realtime sync for any backend stack

 

Replicache makes it easy to add realtime collaboration, lag-free UI, and offline support to web apps. It works with any backend stack.

 

Benefits

Realtime Multiplayer Collaboration. Popularized by Google Docs, Figma, and Notion — realtime collaboration is awesome, but famously hard to build. Replicache provides a programming model that makes it much easier.

Bring Your Own Backend. Replicache is entirely client-side technology, and works with any standard web service backend. Your data stays on your servers.

Lag-Free UI. By executing all reads and writes against a local cache, apps built with Replicache respond instantly, without waiting for the server. It even works if the app is…

Offline. Replicache persists its cache to client-side storage, so apps boot and render instantly. Online, offline, or anything in between.

Transactional Conflict Resolution. Conflicts are a fact of life when syncing, but they don't have to be exceptionally painful. Replicache rewinds and replays your transactions during sync, sort of like git rebase for application state. It's the easiest way to deal with conflicts that is…

Correct. Replicache was designed in consultation with indepedent distributed systems expert Kyle Kingsbury of Jepsen. When properly integrated with your backend, Replicache provides Causal+ Consistency — one of the strongest consistency models possible in a synchronizing system. See the Replicache Design Document or Jepsen's summary for more information.

How it Works

Replicache is a persistent key/value store that lives inside your web app. Use it as your app's state, in place of things like MobX, Redux, Recoil, Apollo, etc.

You don't need REST or GraphQL APIs when you use Replicache. Instead, read and write directly to Replicache from the UI, as if it was in-memory state. Replicache continuously synchronizes itself with your server using two special endpoints: replicache-push and replicache-pull. It also persists itself to local storage in the background, so the next startup is instant.

Visit the documentation for more details on how Replicache works.

Status

We are working toward a General Availability Release of Replicache for early 2022 that features:

  • Support for up to 100MB of local storage
  • 1ms local write/subscribe/read time
  • Local persistence in the background, not blocking responsiveness
  • Sync throughput suitable for highly interactive multiplayer applications

In the current (Q4'21) beta you can use Replicache in two modes:

  • In its default configuration, Replicache stores data persistently (in IndexedDB) and provides local reads and writes in tens of ms. This enables near-instant startup, navigation, and optimistic mutations, but is not ideal for multiplayer collaboration.
  • With the useMemstore: true flag, Replicache provides faster (single digit ms) responsiveness suitable for multiplayer collaboration, but does not store data persistently, and thus is less useful for fast startup and navigation.

In both configurations, you can store about 2-3MB of data before you start to see performance degradation, and you can sync about 5x/second with typical backend setups. This works for many applications but is not ideal for true multiplayer collaboration.

Questions?  Contact Us — we'd be happy to chat.

Price

Replicache is free for any amount of non-commercial use. For commercial use:

🛹🚴🏽‍♀️🏎🚀
MAC< 500< 10k< 100k100k - ∞
PriceFree$500/mo$2,500/mo$5,000/mo
SupportSharedDedicatedDedicatedDedicated

Fine Print

  • A MAC is a Monthly Active Client. For example, if a user runs your application on their phone, tablet, and on Firefox and Chrome on their computer, that would be four clients.

Get Started Now

Start with Replicache right now for free. Only pay once you have over 500 clients.

Who's Behind This?

Hey there, we're Rocicorp. We're building a small, sustainable software partnership.
No VC financing, no rocketship growth. Just high-quality software, sold at a fair price.

What People are Saying