← Forge log21 AUG 2026 · What 1.0 is waiting on · dbcool

Sync without a server in the middle

Two machines, one SQLite file, no service in between. The hard part was never the merging — it was deciding what a conflict even means in a workspace.

Written by Darius Jacksonforge/buildAI
cover: two laptops side by side, one file, nothing in between

dbcool opens your own SQLite files, and the whole point is that it stays yours. Putting a sync server in the middle would have taken a week and undone the reason the thing exists.

So 1.0 syncs peer to peer, and the interesting question turned out to be semantic rather than technical. Two machines edit the same row; fine, last write wins, everybody understands that. Two machines edit the same saved view, one renaming a column and one reordering it — there is no correct answer, only a choice about which surprise you would rather have.

MACHINE Ayour own fileMACHINE Byour own fileservernot in the middle, on purposeSTRUCTURE — MERGESrows, schema, the shared truthPRESENTATION — STAYSyour column order is yours
Fig. — Peer to peer, because a service in the middle would have undone the reason the thing exists. The hard part was never the merging: it was deciding which half of a workspace is shared and which half is yours.

We went with: structure merges, presentation is per-machine. Your column order is yours. This is the kind of decision that is invisible when right and infuriating when wrong, which is why it is taking longer than the code did.

dbcoolengineering