Esc

Skip to content
← Projects · 2026

RescueRelay

A two-sided demo that matches a donor's surplus meals to a nonprofit by fixed rules, then leaves the decision to people.

Built
09-2026
Stack
React 19 · TypeScript · Vite · Convex

Prepared food can only be reused for a short time, yet donors still search across organisations, read different intake rules and repeat themselves by phone. RescueRelay records one offer, checks it against three New York nonprofits and explains every exclusion. It was built for the WebMCP Challenge: nothing is sent to a real charity, and the public demo keeps its state in your browser.

7checks, run in order, each with its own reason

Screens

The donor's workspace, with one saved offer of 36 vegetarian meals and a preliminary fit.
The donor's side: one saved offer, three live records, one preliminary fit.
The recipient's view of 36 meals for The Bowery Mission, with the handoff accepted.
The recipient's side: identity checked against live registry data, then the handoff accepted.

How it works

  1. Seven checks run in order: active partner, food category, sealed packaging, allergen labels, storage, pickup window and capacity. Every failing reason is kept, so an exclusion explains itself.
  2. Each nonprofit's legal name, EIN and latest filing come live from ProPublica's Nonprofit Explorer, through a small proxy that only answers for three allow-listed organisations.
  3. A reservation only moves forward: prepared, sent, then accepted or declined. Eligibility is checked again at the moment of sending.
  4. An agent can fill in the offer and prepare both sides through five WebMCP tools. Sending and accepting stay as buttons a person presses.
  5. 18 Vitest cases cover eligibility, live data, state changes and the agent tools.