All posts

February 26, 2025 · 3 min read · The Sherpsy team

A grocery list two people can edit at once

Two people are in the same grocery store. One is at the produce, one at the dairy case. Both are checking things off the same list. This is the ordinary case, and it is the case most shared lists handle worst.

The failure is silent

Naive syncing overwrites: the last save wins, and one shopper's checks quietly vanish. Nobody notices in the aisle. You notice at home, when the thing you crossed off is not in the bag.

The fix is to treat an item as its own row with its own state, so checking bread and checking milk are independent facts that cannot clobber each other — and to soft-delete rather than delete, so a removal is a state a merge can reason about instead of an absence it has to guess at.

And it has to feel instant

In a store with two bars of signal, a list that waits for the server before checking an item off is unusable. The check lands immediately, the write follows, and if it genuinely fails the item comes back with a message — which is rare, and much better than a list that freezes on every tap.

Give the household one place to look.