Gundeep Singh Sidhu
HomeSeriesBlog

Series

Building a Local-First Task App From Scratch

A ground-up series on building a local-first task app around operation logs, idempotent writes, sync, and PostgreSQL as canonical state.

4 parts•51 min total
Local-firstDistributed SystemsPostgresSync
Start reading
  1. 1
  2. 2
  3. 3
  4. 4
Jun 5, 2026•22 min readPart 1

Why I'm Building a Todo App Like a Distributed System

A first-principles post on building a local-first task app around operation logs, idempotent writes, sync, and PostgreSQL as canonical state.

Local-firstDistributed SystemsPostgresSyncBackendArchitecture
Jun 11, 2026•25 min readPart 2

The Architecture Of A Local-First Sync System

A high-level walkthrough of the architecture behind a local-first task app: clients, edge, Go services, PostgreSQL shards, outbox, Kafka, projections, and object storage.

Local-firstDistributed SystemsPostgresKafkaSyncBackendArchitecture
Jun 16, 2025•2 min readPart 3

Command Logs and Reconciliation

Part 3 — turning state into an append-only stream of facts, and merging them deterministically.

SystemsSyncPostgres
Jul 6, 2025•2 min readPart 4

The Sync Engine

Part 4 — the component that carries commands between devices and the canonical server.

SystemsSyncPostgres