← Selected work

Home & household · Everyday friction

NextHaul

The shared grocery & meal-planning list a household actually sticks with. The list is the home screen, adding an item is the fastest thing you can do, and nothing gets lost.

everyday friction offline-first Flutter · Supabase

§ What it does

A fast, uncluttered shared list with real-time sync and an anonymous identity — no login wall. Items auto-group by aisle, duplicates merge instead of piling up, and checking something off is a swipe with an undo. You can add by voice, barcode scan, the Android share sheet, or a home-screen widget.

§ Quietly smart

  • “Heading to the store” mode — one loud ping to the household and a live banner as their last-minute adds stream in.
  • Meals & recipes — plan the week, share a recipe URL into the app and it parses into a saved recipe, then push ingredients onto the list.
  • Receipt scanning that learns — on-device OCR reads a receipt, and NextHaul learns your usual prices and categories for smarter future scans.
Part of the household family alongside Cadora — it even shares Cadora’s server for push — and a tool Anamanti can add to by voice.

§ How it’s built

Flutter with an offline-first cache, Supabase (Postgres, RLS, Auth, Realtime) as the backend, and FCM for push (sent server-side so the notify policy can’t be spoofed). Android-first. The successor to our earlier CrispList.

Flutter / DartSupabasePostgres · RLS FCMML Kit OCR