u/jtysonwilliams

▲ 61 r/DigitalEscapeTools+1 crossposts

A privacy-first, ad-free grocery list built on public relays (no account, end-to-end encrypted, open source)

Every shared grocery list app my wife and I tried wanted an account before we could share one list, and most shipped with the usual analytics and ads. For a grocery list. So I built one the opposite way, where the privacy is in the architecture, not a policy page.

You make a list, share it with a link or a QR code, and the other person taps it once. From then on, whatever either of you adds or checks off shows up on the other phone within a second or two. It sorts itself into aisles as you type, and "Finish shop" clears what you bought but keeps the list for next time.

How the sharing actually works, since this sub will care:

- No account. Pairing is a random per-list key carried in the share link or QR. The only "identity" is a throwaway signing key made per session, which identifies nothing and is never saved.

- End-to-end encrypted. Every change is sealed with NaCl secretbox (via TweetNaCl) under a key derived from that per-list secret. Ciphertext is all that ever leaves your phone.

- No server of mine. The encrypted changes ride over a handful of free, public Nostr relays as ephemeral events (NIP-16, so relays pass them along and don't store them). I don't run or pay for any relay. The merge is conflict-free and happens on each device, so two phones converge with nothing authoritative in the middle.

- Local-first. The list lives on your phone and works fully offline; sync just re-converges whenever a relay is reachable.

Honest threat model: a relay can see connection timing, your IP to that relay, and that some random channel tag is active. It can't see the list, the items, who you are, or who you share with, and there's no stable identifier tying your sessions together. No analytics, no crash reporting, no telemetry anywhere in the app, so "Data Not Collected" on the store listings is literally true.

It's free and open source (MIT), so none of the above is something you have to take on faith. You can read it: https://github.com/Josh-Approved/grocery-list. There's an optional tip jar and that is the entire business model. It's one of a few utilities I build under "Josh Approved," all the same way. Why I do it: https://joshapproved.com/about

Full disclosure, I'm the developer. I'd genuinely value scrutiny of the privacy model and the sync design, and bug reports if the sharing ever hiccups.

Get it (picks your store): https://joshapproved.com/apps/grocery-list?install=1 

TL;DR: an ad-free, no-account grocery list whose shared lists sync over public Nostr relays, end-to-end encrypted, with no server of mine in the path. Open source, no tracking, no telemetry.

u/jtysonwilliams — 5 days ago