Inspiration

Growing up, our parents struggled to find food to support our families. We understand firsthand how stressful and overwhelming it can be to figure out where the next meal will come from. That experience inspired us to create Necessities.

What it does

Necessities is a free web app that helps people across the OKC metro find food, shelter and support.

  • Find help: 110 food pantries, hot meals, shelters and day centers on one map. Set your location by ZIP code, your phone's location, or a tap on the map. Filter by food or shelter, category, and open right now, and sort by distance, category, open-now or name. Numbered pins match the list, and every place shows hours, distance, features like walk-ins or drive-thru, and one-tap Call and Directions.
  • Safety first: domestic violence shelters are listed with a phone number only, with no pin and no address.
  • SNAP & WIC: how to apply in Oklahoma, free help lines, WIC clinics, and Double Up Oklahoma, which matches SNAP up to $20 a day on fresh produce.
  • Save money: practical grocery tips and local stores and apps with deals.
  • Donate: local charities with what your gift does, plus 15 clothing drop-off locations showing what each one takes and doesn't take.

How we built it

We kept it simple on purpose: plain HTML, CSS and JavaScript, with no framework, no backend and no build step. It loads fast on low-end phones and can be hosted free anywhere.

  • Map: Leaflet with Esri street tiles, so no API key is needed.
  • Data: 110 listings gathered from the Regional Food Bank of Oklahoma's partner-pantry locator, the Homeless Alliance, the Cities of Oklahoma City and Norman, Hunger Free Oklahoma and public pantry directories, with coordinates from the U.S. Census geocoder. Each listing stores its weekly hours as data, so we can calculate "open now" in Oklahoma City time and handle seasonal shelters.
  • Architecture: one state object holds the user's choices, and a single render function draws the list, map and details panel from the same result, so pin numbers always match the list.
  • Privacy: location is used on the device only and is never saved or sent anywhere.
  • We used Claude Code as an AI coding assistant to speed up development and testing.

Challenges we ran into

  • A blank map. Our first map wouldn't show at all because the page was missing a doctype, which put the browser into an old compatibility mode. Then our first tile provider started requiring an API key, so we switched to Esri.
  • Messy real-world data. Pantry hours look like "2nd and 4th Thursday" or "closed the 1st Thursday." We store a weekly schedule for the "open now" logic and keep a plain-language hours line for people.
  • Data we couldn't verify. Some clothing drop-off details only existed in old news articles. Instead of guessing, we label those "confirm before you go."
  • Browser caching. Changes sometimes looked broken because the browser was mixing old and new files. We learned to hard-refresh and to make the code fail gracefully.
  • Scrolling and layout. Tapping a pin used to scroll the whole page away. We redesigned it so the selected place moves to the top of the list and the page stays put.

Accomplishments that we're proud of

  • 110 real places across the whole metro, from Edmond to Noble and Yukon to Choctaw, in one place.
  • "Open right now" that actually works in local time, including winter-only shelters.
  • A design that feels calm, not clinical, which matters when someone is having a hard day.
  • Protecting confidential shelter locations by design.
  • Being honest about data: sources listed, dates shown, and unverified details flagged.

What we learned

  • Most of the work in a civic tool is the data: collecting it, cleaning it, and being clear about how current it is.
  • Small UX details, like where the page scrolls or whether a pin number matches the list, make a big difference to someone using a phone under stress.
  • A framework isn't always needed. Plain HTML, CSS and JavaScript can be fast, accessible and easy to maintain.
  • Commit early and often. Version control saved us more than once, and we wished we'd started sooner.

What's next for Necessities

  • Spanish translation, and eventually more languages.
  • Text-message access for people without data or a smartphone.
  • A simple update form so pantries and shelters can keep their own hours current, ideally in partnership with the Regional Food Bank or the Homeless Alliance.
  • Live weekly grocery deals sorted by the stores closest to you.
  • Map clustering where many places overlap downtown.
  • Expanding to other Oklahoma cities, since only the data file and ZIP list change.

Built With

Share this project:

Updates

Submission history