We Built an Open Source App to Rescue Food. Here’s Why.

Ryan McHenry
Sharing Excess
Published in
6 min readMar 17, 2022

Hi there!

My name’s Ryan, and I’m the Director of Technology @ Sharing Excess. Based out of West Philadelphia, SE rescues and redistributes over 100,000 lbs. of food every week, delivering it directly to food pantries, community fridges, and mutual aid organizations in our community. In partnership with organizations on all sides of the food industry, from Philabundance to Trader Joe’s, we’ve rescued over 10 million pounds of perfectly edible food since 2018.

All of this is thanks to a ton of boots-on-the-ground-work, an incredibly passionate network of volunteers, and our custom built, open source tech platform that keeps everything in sync.

I’m here to talk about that last part.

I first came across Sharing Excess in a 2020 Philadelphia Inquirer article. It was early in the COVID-19 pandemic, and while I was stuck holed up in my apartment, Evan and the team at Sharing Excess were knee deep in an unprecedented amount of food waste — exceeding even the 40% of all food wasted we’ve become accustomed to in the US.

With vacation days building up at work and nowhere to go, I saw an opportunity to reconnect with the Philadelphia community I called home. And so with all the glamour of a cold LinkedIn DM, I reached out to Evan to see if the team had any need for a software engineer like myself.

see also: me not yet realizing that “nonprofit” is one word 🤦‍♀️

Believe it or not, Sharing Excess had rescued and redistributed just over 1.2 million lbs. of food up to that point, running off nothing more than a couple Google Forms and an unthinkable amount of elbow grease. After a couple zoom calls, Evan and I were able to nail down an initial concept for what would become the Food Rescue App, giving our distribution team the ability to organize volunteers and partner organizations around scheduled food rescues. I moved back to Philadelphia, and we sprinted ahead to ship v1 in just under 2 months.

did we build a dark mode feature before a ton of more crucial things? …well, yeah ¯\_(ツ)_/¯

From the very start, we knew that developer resources were going to be super lean. We were both a startup and a nonprofit after all, so doing a lot with a little was going to be absolutely paramount. Looking to build on top of the latest (and the leanest) software frameworks, we chose to build a React based web application that could be used in any browser, as well as installed on the home screen of both iPhone and Android devices.

This up-and-coming standard (known as a Progressive Web Application) gave us the superpower of writing a single codebase that would run across any device. Furthermore, without the need to distribute through an app store, we could push out new code any time we wanted, without ever needing to ask our volunteers to install an update.

looks like an app… smells like an app… could it be an app? 🤯

Turning our brains to the nitty gritty of databases, authentication, hosting — the super fun and sexy parts of software development — we again prioritized doing more with less. Recent trends in the cloud computing and “serverless” application space provided lots of interesting options for lightweight backend systems. AWS tools like Amplify, AppSync, and Elastic Beanstalk all offered compelling pieces of the puzzle, but when we came across Google Cloud’s Firebase platform, our decision became easy.

Linked up to our existing Google Workspace account, our app gained OAuth login with +/- 13 lines of code, a realtime database queried without any server side code, direction integration with APIs like Maps, Autocomplete, and Sheets without additional credentials, and automated deployments to our domain with Github actions — all completely out of the box, no config needed.

…ok it’s a bit more complex today, but it was pretty damn cool to get up and running with just this code 💅

Firebase also made it impressively easy to setup multiple environments for development and production data, and because of its all-in-one design, just swapping out .env files made it possible to switch from one to the other seamlessly. In my (heavily opinionated) opinion — this is about as developer friendly as it gets.

we ended up eventually even hosting our marketing website on firebase 🤷‍♀️

This brings us around to an important point — who was going to be working on this codebase anyway?! From its inception, Sharing Excess has been tightly partnered with colleges and universities — especially with Drexel University, where SE was originally founded. Across the entire organization, we’ve worked with over 100 Drexel students (roughly 15 on the software team) completing 6 month internships during their undergraduate study.

2021 co-op crew during a mentoring session with Rizel Scarlett, Developer Advocate @ Github

In exchange for their extremely hard work and dedication, we provide mentorship, networking, and the professional level experience of shipping real code to real users on a weekly basis. The architecture we chose — React, Firebase, and top-to-bottom Github integration — provides a wildly approachable, yet powerful and scalable structure for our app to grow, and our student engineers to grow with it.

we 💚 Github stats! but no seriously, it’s all open-source and public, go look! github.com/sharingexcess

This lean, mean, VS-Code-live-sharing team has thrown down over 1,100 commits since our inception, managing the rescue and redistribution of over 10,000,000 lbs. of surplus food. We’re committed now and forever to sharing our software as an entirely open source project, and are so thankful for the support we’ve received from the open source community at large (special shoutouts go to Rizel, Lexi, and Scott for their above and beyond support).

… so where to next?

Boy oh boy do we have some ideas.

First and foremost, we can acknowledge that we’re not alone in this space. There are other amazing nonprofits inspiring the work we do, like 412 Food Rescue/Food Rescue Hero and Replate. We’re excited to work cooperatively to help address food waste and scarcity across the country, combining knowledge and efforts to make 1+1 > 2.

We’re equally thrilled to continue building alongside data and logistics partners like ReFED and DoorDash: Project DASH to expand our mission, continuously working to make food rescue more effective and efficient.

ReFED’s Solution Provider Directory

Finally, we’re wildly inspired by the support we’ve found in the tech sector, from organization’s like Github Social Impact. We had the opportunity to present our work at Mozilla’s MozFest 2022 as a part of Hackers to Humanitarians, and are eager to continue growing our roots in the open source community.

Our ultimate goal? Collaboratively design, build, and evangelize a unified data model for food rescue across the country.

Food waste is a problem of massive scale, and the better we understand the effectiveness of potential solutions, the better we can coordinate the effort to solve it. Our own impact measurement and analytics tools have completely revolutionized our internal perspective as we expand in Philadelphia and beyond. We’re so excited to imagine the impact it could have at a national and global scale.

Want to get involved?

We can’t wait for you to get on board. If you have software development, UI/UX/visual design, or any other skills you think could be helpful, come find us on Github. Our organization, repos, and backlog are all fully open source and visible to the public — come pick your project!

our backlog is fully open to the public — come grab a project, we’d love to have you.

Additionally, we are always in need of financial support to continue the work we do, both technically and logistically. If you have the means, please consider donating at sharingexcess.com/donate. For every $1 contribution, we provide 16 meals to our community.

For any other questions, you can always reach our team at tech@sharingexcess.com. We can’t wait to hear from you.

Cheers,
Ryan

--

--

Ryan McHenry
Sharing Excess

Director of Technology @ Sharing Excess — working on creating a unified data model for food rescue nationally.