We dive deep into every local-first sync engine so you don’t have to. This is our technical research of the best realtime sync services available.
{updatedAt: "2024-05-23"}
- Moe Amaya
Co-founder
Monograph
In 2018 Linear was founded. It set the bar for what high-quality software really means—speed is the key. Subsequently, several companies were founded around this realization: Linear’s sync engine is the magic, how can we offer it as a product? Today those products are commercially available and ready for production.
Instead of you digging in documentation, building prototypes, trawling Discord conversations and talking to all of the founders, I did it for you. Along with my own co-founders, I’m starting a new company built on a technical foundation of a sync engine. I’ll share my requirements and technical evaluation to help you on your own research.
Overview
- Replicache - Best for raw speed and syncing moderate datasets
- Powersync - Best for PostgreSQL and queries across large datasets
- InstantDB - Best for a modern dev experience and easy data modeling
- ElectricSQL - Best for quick prototyping with PostgreSQL
Releasing soon
- Zero (from Replicache team)
- LiveStore with a sweet demo to get you excited
Replicache
4.5 ✦✦✦✦✧
Pros
- Ridiculously performant in-memory store on top of IndexDB. Having built identical prototypes with all the sync engines, Replicache’s speed is mind blowing.
- Control of synching in code for both how and what syncs.
- Undo/Redo out of the box
- Open-source, production-ready applications at scale (SST, BaseHub)
- Experienced, helpful team and public advocates (CEO Aaron, Dax)
Cons
- Dataset limitations at 100mb. Aaron the CEO shared that the Reflect (hosted version of Replicache) model works best in document based applications like a spreadsheet, presentation, or Figma file because of the 64mb data constraint. While Replicache is able to handle 100mb it does require selectively syncing and active management.
- Quite a bit of boilerplate code. This can be offset using hosted Reflect and/or writing scaffolding scripts.
Resources
- Mother of all sync engine demos
- Aaron Boodman on localfirst podast
- Dax on localfirst talking about building with Replicache
PowerSync
4.5 ✦✦✦✦✧
Pros
- Postgres and SQLite are tried and true foundations
- Spin-off technology from large industrial software use cases which needed offline sync. These applications have been in production for years so you can trust the sync engine’s robustness.
- Very active Discord with engineers answering questions, shipping bug fixes, features, sdks, etc
- SQLite in the browser means your customers can write SQL-based reports
Cons
- Fast but not quite Replicache fast
- Cumbersome UI for writing sync rules
- A lot of resources are dedicated to mobile frameworks (Flutter, Swift, Kotlin) which means javascript might have less focus
Resources
InstantDB
4.2 ✦✦✦✦✧
Pros
- Super easy to get started—similar to Firebase in speed to working code
- Data modeling and relationships are simple to construct on the fly. I had 10 tables with multiple relationships and connections created in 30min.
- Their UI is the best of the bunch.
- Thoughtful approach to data architecture using triples.
- Permissions using CEL expressions is clear and straightforward.
- The founders are incredibly hands-on at this stage. Fixed a bug that I reported in a couple of hours.
Cons
- You have to trust a startup to be around for a while and also be your primary store of data
- A triple as a store is brilliant but also non-standard. Will likely need custom tooling for any data analysis
- Early stages so not a bunch of examples in production to see what pitfalls you may run into.
Resources
- The best essay on sync engines from a product perspective that I’ve ever read.
- My only gripe with the essay is that I love SQL and find its universality a feature esp on the frontend.
- The other essays the founders wrote are worth a read if you’re at all interested in the technology behind sync engines.
ElectricSQL
Waiting on permissions resolution
Currently ElectricSQL is in alpha
while it works out the permissions model. Roadmap