Sharing Excess is a 501(c)(3) nonprofit organization based in Philadelphia, PA. We work across the country to fight food insecurity by redistributing surplus food from farms, wholesalers, and retailers to local community hunger organizations. Since 2018, we've managed the distribution of over 150 million lbs. of food to our network of over 1,500 community partners in Philadelphia, New York, Washington DC, Chicago, Detroit, Los Angeles, and across the country.
Learn more about Sharing Excess at sharingexcess.com.
Below you'll find a high-level overview of our team, mission, and platform architecture. For specific developer documentation and "getting started" guides, check out docs.sharingexcess.com.
Tech @ Sharing Excess is a team of volunteers, students, part and full-time contributors. We work to build tools that enable SE to create impact across the country in a way that's efficient, transparent, and deeply measurable. We work hard to build a community based on collaborative learning, constant exploration, and easy-to-read code that makes it easy for new folks to jump in and help.
Ryan McHenry: @ryanmarshallmc Tate Gallagher: @tategallagher Satwik Shresth: @satwikShresth
Tech@SE works to make food rescue as simple and transparent as possible. We design and develop tools to provide a shared language and framework for rescuing food, connecting our food donors, recipients, staff, and philanthropic funders with all of the information they need to get people fed. We provide our partners and funders with best-in-class data and insights, enabling us to build a continuously expanding network that is easy to join, and even easier to support.
Food rescue is inherently complex, and incredibly dynamic. We strive to build products that are clear, logical, and easy to understand for first-time users and industry veterans alike.
Sharing Excess's mission requires the support of partners and funders, and we continuously work to earn their trust by providing an unmatched level of transparency into the impact we create. We loathe "magic numbers", and aim to "show our work" with precise and detailed calculations in all of our products and services.
We understand that our work today may not look exactly like our work tomorrow, and prioritize building tools and models that can grow and change with us. We consciously balance creating tailored experiences against the urge to over-optimize for the present.
Our tech platform consists of a number of data systems, servers, and web + mobile based clients that allow the SE team to rescue food around the clock, around the country. Here's a basic (and hopefully current) map of the system (updated September 2025):
View the system architecture in Figma
First and foremost, we are a Typescript shop, for the front and back end. Our system is entirely based in a monorepo, with apps/packages for each service, including our frontend PWA-based app, our API server, our Storage/S3 proxy server, our cron-based services, our database configuration, and our type/schema definitions.
We're big supporters of Bun and use it as our runtime for all services (as well as package management).
We deploy and host our services using Docker on Railway, also using their S3 service for object storage via the Bun S3 Client, while DNS is managed on Vercel.
We use Sentry for error handling across our entire stack, Mixpanel for product analytics, and APITally for server analytics.
All of our AI + LLM tooling is powered by Anthropic proxied by our API server.
Our frontend app is hosted at app.sharingexcess.com, and is designed to be installed as a PWA on iOS, Android and Mac. It's built with React (currently v18), packaged using Vite (and VitePWA for mobile native install and offline support). We use Chakra UI as our primary UI library, Tanstack Query for data fetching, Tanstack Form for form management, Tanstack Store for state management (yep, big Tanstack fans), Clerk for user management and authentication, and Mapbox for all location services and routing.
Our API server is hosted at api.sharingexcess.com, complete with OpenAPI Docs and live genereated Database Schema Diagrams. It's built with Hono, using @hono/zod-openapi.
Our Stroage/S3 Proxy server is hosted at storage.sharingexcess.com, offering public file serving and private file browsing, previewing, and admin operations. This is also built with Hono and served via Railway.
Our documentation site is hoted at docs.sharingexcess.com, and is built with NextJS and Fumadocs, offering a detailed breakdown of our terminology and impact measurement calculations, and a litany of detailed developer docs.
Our cron-baseed services for backups and storage cleanup are deployed via Docker and Railway, using their built-in cron scheduling implementation.
Our PostgreSQL database is configured with Drizzle ORM for schema and connection management, and hosted with Neon.
We also use Zod for Typescript type definition and checking, Clerk for user management and authentication, Retool for external data visualizations, and Resend for sending transactional emails.