Inspiration

We wanted a faster, calmer way to reunite people with their stuff without spreadsheets, scattered DMs, or mystery bins.

What it does

Collects lost-item reports via SMS/MMS or the web, generates a short pickup ID, stores them in Supabase, and lets staff mark items found. Users can text their short_id + “status” to check progress.

How we built it

Vite/React for the assistant dashboard, Supabase for data and storage, Flask for the SMS webhook, Twilio for messaging, and a sprinkle of Gemini to parse free-text/image reports into structured entries.

Challenges we ran into

Keeping short_ids unique across SMS and web flows, handling status checks when the DB is down, and gracefully dealing with missing media/auth credentials on incoming MMS.

Accomplishments that we're proud of

A single flow from SMS to dashboard to resolution, automatic short_id replies, and a status text-back that actually works without manual lookup.

What we learned

Tight schemas and clear status states beat ad-hoc notes; always cache the ID you promise in SMS; defensive fallbacks keep the experience smooth even when services hiccup.

What's next for LOFO

Add user notifications when a match is approved, richer image matching, and a public “check item” page so users can self-serve without staff involvement.

Share this project:

Updates