Inspiration
Every shelter has the same quiet crisis: more animals than kennels, and not enough people who know a foster spot is open right now. Most shelters coordinate fostering through spreadsheets, group texts, and Facebook posts that get buried within hours. Meanwhile, willing fosters give up looking because there's no single place to see who actually needs help today. We wanted to close that gap with something as simple as a claim board: shelters post an animal, fosters post their availability, and a match happens in minutes instead of days.
What it does
FosterMatch is a live board connecting shelters with foster volunteers. Shelters post an animal that needs a temporary home, including species, timeline, and any special needs (medical care, bottle-feeding, no other pets, etc.). Fosters browse the board, filter by what they can take on, and claim a match with one click. The moment a match is claimed, it locks so two fosters don't show up for the same animal, and the shelter gets the foster's contact details to coordinate pickup. A simple sign-up form lets new fosters list their constraints once (home type, experience, animals they can't take) so shelters can see at a glance whether someone is a fit.
How we built it
We built FosterMatch as a single-page web app using HTML, CSS, and JavaScript, prioritizing a working, demoable prototype over infrastructure. The board uses a lightweight claim-and-lock pattern: listings are objects in state, filtered by category and availability, and claiming a listing updates its status instantly across the UI. We designed the visual language around warmth and urgency, using color-coded timing (how soon an animal needs placement) the same way we'd use color to flag urgency in other rescue-coordination tools. For this prototype, data lives in-browser rather than in a database, which let us focus our limited time on getting the matching flow and interaction design right.
Challenges we ran into
The hardest problem wasn't the interface, it was the matching logic. A "match" isn't just availability, it's compatibility: a foster who can't take a large dog shouldn't see large dogs at the top of their board, and a shelter shouldn't have to read ten profiles to find one that fits. We went through a few filter designs before landing on one that surfaces relevant matches without overwhelming either side with options. We also had to decide how to handle trust and verification without a backend or vetting process in place yet, and settled on treating that as a clearly scoped "next step" rather than pretending to solve it in a weekend.
Accomplishments that we're proud of
We're proud that FosterMatch is a fully working prototype, not just a mockup: shelters can post, fosters can claim, and the board updates live, so judges can actually experience the core loop instead of being told about it. We're also proud of how closely the design mirrors the emotional stakes of the problem, urgency is visible at a glance, and the whole flow, from posting an animal to confirming a match, takes under a minute.
What we learned
We learned how much of animal welfare work is actually a coordination problem, not a resource problem. Many communities already have enough willing fosters; what's missing is a fast, trustworthy way to connect them to the shelters that need them. We also learned how much visual design affects urgency: small choices like color and ordering change how quickly someone acts, which matters when an animal's shelter time is genuinely limited.
What's next for FosterMatch
Next, we want to add persistent storage and real shelter accounts so listings survive beyond a single session, plus lightweight verification so shelters can trust new fosters faster. We'd also like to add automated notifications (text or app push) when a matching listing goes up, a simple map view showing nearby fosters, and a post-placement check-in flow so shelters can follow up on how the foster is going. Longer term, we'd love to partner with a local shelter network to pilot FosterMatch with real listings.
Log in or sign up for Devpost to join the conversation.