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
Operate
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
- Show HN
- Youtube: Postgres Conf, logical replication
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
Resources
- Show HN