The landscape
In 2026 you no longer have to write your own sync engine — there are good ones available. But picking the right one is harder than it looks.
What we evaluate
- Schema flexibility. Can we evolve our types without breaking old clients?
- Conflict policy. What's the user-visible behavior when conflicts happen?
- Backend coupling. Does it require a specific cloud, or can we host it ourselves?
- Bundle and runtime cost. Mobile budgets are tight.
When we still roll our own
When the data shape is small and well-understood, and we want full control over conflict resolution. For our transit app, we wrote a 600-line custom sync engine and have been happy with it.
Otherwise
Reach for an off-the-shelf engine. The space is finally good enough.

