FeedSeek, surplus food shared before it hits the bin

  • Role

    Solo developer — app and backend

  • App

    React Native, iOS and Android

  • Backend

    API, auth and an admin console

  • Cost

    Free — nothing is sold

  • FeedSeek Give or get — Two ways in, one community — the app does not split into separate apps.
  • FeedSeek Food near you — The feed: what is going spare nearby, who has it, how far, and until when.
  • FeedSeek Share food — Post leftovers in under a minute — the step that has to be effortless.

Overview

A bakery closes with six loaves left. Someone cooks for eight and feeds three. A grocer has fruit that will not survive the weekend. All of it is edible, all of it is local, and almost all of it goes in the bin — not because nobody wants it, but because the people who do have no way of knowing it exists in the two hours it stays good.

FeedSeek is a React Native app for that window. Surplus goes up with a photo, a portion count and a pickup deadline; neighbours see what is free around them on a map, reserve a portion, and collect it with a code. Everything is given away — the app has no payments in it at all.

  • One app for both sides — give food away or come and collect it
  • Listings scoped to a neighbourhood, with a pickup deadline on every one
  • A map for what is free nearby, right now
  • Reserve a portion in two taps, so nobody arrives to find it gone
  • A pickup code that closes the handover without an account exchange
  • A short chat thread per reservation, for the practical details
  • Community needs, so giving can follow where it is actually wanted
  • A running count of what a person has shared

Approach

The constraint that shaped everything is that food expires. A listing is not an item for sale, it is a claim on a few hours — so a pickup deadline is required at creation, drives the sort order, and removes the listing when it passes. Without that the map silently fills with bread that went stale on Tuesday, and one wasted journey is enough to lose a user for good.

Reservations exist for the same reason. An open listing is a race, and a race means several people walk to the same bakery for one bag. Reserving holds a portion against a person for a bounded time and releases it if they do not show, which turns the whole thing from first-come-first-served into something you can plan around. The pickup code closes it: the giver sees a short code, the collector shows it, and neither has to swap a phone number or a surname to complete a handover between strangers.

Both sides live in one app rather than two. A bakery giving away bread in the evening is also someone who collects produce at the weekend, and splitting that in half would have doubled the install friction for no benefit. Chat is deliberately thin — threaded to a reservation, not a general inbox — because the only messages that matter are “I am five minutes away” and “the side door is open”.

Behind the app sits a backend doing the parts a phone should not: accounts and auth, listings and their expiry, reservation state, the chat threads, and an admin console for moderating what gets posted. A platform where strangers hand each other food cannot rely on good intentions alone — someone has to be able to pull a listing, and that is a server-side job, not a client one.

Finding and collecting

From opening the app to walking away with the food, with a reservation in the middle so the journey is never wasted.

  • FeedSeek Food near you — The feed: what is going spare nearby, who has it, how far, and until when.
    Food near youThe feed: what is going spare nearby, who has it, how far, and until when.
  • FeedSeek Map — See what is free right around you, with distance and time left.
    MapSee what is free right around you, with distance and time left.
  • FeedSeek Listing — Know what it is, how much there is, and when it has to be collected.
    ListingKnow what it is, how much there is, and when it has to be collected.
  • FeedSeek Reserve — Hold your portion in two taps, so nobody travels for nothing.
    ReserveHold your portion in two taps, so nobody travels for nothing.
  • FeedSeek Pickup code — Show the code, collect the food — the handover needs nothing else.
    Pickup codeShow the code, collect the food — the handover needs nothing else.
  • FeedSeek Chat — Sort the practical bits in a short thread tied to the reservation.
    ChatSort the practical bits in a short thread tied to the reservation.

Giving

The side that has to be frictionless, because the person posting is usually about to close up or go to bed.

  • FeedSeek Share food — Post leftovers in under a minute — the step that has to be effortless.
    Share foodPost leftovers in under a minute — the step that has to be effortless.
  • FeedSeek Community needs — What the area is short of, so giving can follow demand.
    Community needsWhat the area is short of, so giving can follow demand.
  • FeedSeek Impact — A running tally of what one person has kept out of the bin.
    ImpactA running tally of what one person has kept out of the bin.

Outcome

A complete loop in one app: post in under a minute, find on a map, reserve, collect with a code. No payments, no accounts to exchange, and nothing that asks either side to do more than the moment allows.

The decision I would keep is making expiry a first-class field rather than metadata. It sorts the feed, empties the map and bounds the reservation, all from one value — and on a platform about food, a listing that cannot go stale is the difference between a useful map and a graveyard.