A creation of Temple Consulting, LLC.
A web-based food pantry management system built for William Temple House and shared as an open-source reference implementation for other nonprofits running food-distribution programs at scale.
Production deployment: https://feed.williamtemple.app License: AGPL-3.0-or-later Status: v1.5.0-beta.3 — evaluating the Tailwind v4 migration and procurement import throughput on production hardware
FEED was built to support food pantry needs and take inventory management beyond simple spreadsheets, without the costs of enterprise inventory software. FEED supports the common operational reality of food pantries:
- Inventory management — categories, food items, per-item and per-category limits, in-stock / out-of-stock / clearance status.
- Shopping list builder — an interactive canvas-based template editor that produces printable, multi-page, multi-language shopping lists. Social Services staff design templates once; the system generates current-inventory-aware PDFs on demand.
- AI-powered document translation — staff can upload English forms and announcements (DOCX) and get back native-quality translations in any of 59 supported languages, with a managed cache so the same content isn't re-translated and re-billed. Backed by configurable AI providers (Anthropic, OpenAI, Google) with per-configuration cost limits.
- Multi-language client materials — Arabic, Persian, Hebrew, CJK, and other non-Latin scripts render correctly in both the in-browser preview and the exported PDFs (right-to-left bidi, font fallback, Arabic-script shaping all work as expected).
- Dashboards — translation throughput, cost projections, token usage by provider, response-time monitoring; all with proper empty-state handling for fresh installs.
- In-app Help — searchable staff guides written in plain language, plus a concise About page with project and license information.
- Magic-link OTP authentication — no passwords. Email-based sign-in via Resend.
- Food pantries and food banks running distribution operations they want to digitize without an expensive software contract.
- Nonprofits building multilingual client materials and looking for a translation pipeline that performs better than Google Translate.
- Developers who want a non-trivial reference for a React + Express + Prisma + SQLite app that includes a real PDF generation pipeline, and LLM integration.
If you fall into any of those buckets and FEED looks useful, you can fork it, modify it, and deploy your own instance — see LICENSE for the terms.
Shopping List Builder — design a printable template once; the system generates current-inventory-aware PDFs on demand. Here, an English template previews inline in Chinese:
Dashboard — inventory distribution, translation throughput, and cost monitoring, with full light/dark theming:
| Dark | Light |
|---|---|
![]() |
![]() |
Food Item Management — inventory with per-item limits, stock status, and dietary flags:
Document Translator — upload English DOCX files and manage translations across 59 languages:
AI Configuration — configure providers, models, cost limits, and system prompts:
- Node.js 20 or 24 (Node 23 has known
fontkitissues with PDF rendering) - Docker Desktop (for the full local stack)
- A modern terminal
git clone https://github.com/MattGeiger/williamtemple-feed.git
cd williamtemple-feed
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --buildThat starts the backend on http://localhost:3001 and the frontend
on http://localhost:5173. Open the frontend URL in a browser to
sign in.
For an even faster inner-loop dev experience (without Docker), see the "Development environment" section in CONTRIBUTING.md.
On a fresh database, you'll need to:
- Sign in via the magic-link OTP flow (use any email you control)
- Configure at least one AI provider in Tools → AI Configuration (Anthropic, OpenAI, or Google)
- Enable languages you care about in Languages
- Start adding categories, food items, and templates
The seed scripts in packages/backend/scripts/ populate the default
language list and a starter set of system prompts. Run
npm run seed in packages/backend if you want them.
FEED is deployed in production on a Raspberry Pi 5 via Docker, fronted
by Cloudflare Tunnel. The complete deployment guide is at
docs/deployment/DOCKER_DEPLOYMENT.md.
Other deployment-related references:
docs/deployment/raspberry-pi-cloudflare-tunnel.md— the specific Pi + Cloudflare setup we usedocs/deployment/deployment-checklist.md— pre-deploy verificationdocs/deployment/troubleshooting.md— known issues and fixes
The Docker images are published from this repo. The stack is portable to any Docker host (Synology, NAS, cloud VPS, your own home server).
- Frontend: React 18, TypeScript, Vite, Tailwind CSS, Shadcn/Radix UI components, Motion (formerly Framer Motion) for the animated icon system
- Backend: Node.js, Express, TypeScript, Prisma ORM
- Database: SQLite (file-backed; switchable to Postgres via Prisma adapter)
- PDF generation: Chromium / HTML-to-PDF via Puppeteer; pdfmake retained as a reference path
- AI providers: Anthropic (Claude family), OpenAI (GPT family), Google (Gemini family) — selectable per use case via in-app config
- Email: Resend for the magic-link OTP flow
- Deployment: Docker, Cloudflare Tunnel, multi-arch images (amd64 + arm64)
packages/
backend/ Node + Express + Prisma + SQLite API server
prisma/ Schema + migrations + seed scripts
src/
routes/ Express route handlers (one file per feature area)
services/ Business logic (AI providers, translation pipeline,
shopping list builder, etc.)
frontend/ Vite + React app
src/
components/ Feature components and shared UI primitives
services/ Frontend API + error/message service layer
hooks/ Custom hooks (dialog state, message system, etc.)
contexts/ React context providers (theme, categories, etc.)
docs/ Per-section documentation, deployment guides,
design-system reference
Project conventions, error-handling patterns, and deeper architecture
notes are in AGENTS.md — required reading for
non-trivial contributions.
Bug reports, feature requests, and pull requests are all welcome. See CONTRIBUTING.md for setup details, branching conventions, and PR expectations.
If you're not sure whether a contribution fits the project direction,
open a Discussion or a question issue before investing significant
work.
Security issues — please do not open a public issue. See SECURITY.md for the private disclosure process.
The application code is open source. The William Temple House deployment is branded. The brand is not open source.
The FEED application code is licensed under AGPL-3.0-or-later. In plain English:
- The application code is AGPL-3.0-or-later.
- Anyone may use, study, modify, redistribute, and self-host the software under the AGPL terms — free of charge.
- If someone modifies FEED and offers it to others over a network (including as a hosted web service), AGPLv3 requires them to offer the corresponding source code to those users. This network-use clause is what distinguishes AGPL from MIT or Apache 2.0, and it's why FEED uses it: improvements should flow back to the community of pantries and nonprofits who run their own instances.
- The William Temple House name, logo, visual identity, and other branding assets are not open source and may not be reused without separate written permission. See TRADEMARKS.md.
- Food pantries deploying FEED should replace the included branding — name, logo, colors, and contact information — with their own before any public deployment.
FEED is a creation of Temple Consulting, LLC., built by Matt Geiger to serve the clients of William Temple House, a Portland-based nonprofit that has served the Pacific Northwest community since 1965, where it runs in production. The application code is Temple Consulting's own work, released as open source so peer organizations can use and improve it; the William Temple House branding it ships with belongs to William Temple House (see TRADEMARKS.md).
FEED was built with Claude, by Anthropic — a collaboration between a human author and an AI agent. The project began with Claude Sonnet 3.5 (the Model Context Protocol was a turning point, giving the model direct access to the file system), and significant portions were later built with Claude Code.
The animated icon system uses Lucide React as its base icon set, with context-driven motion variants from animate-ui and Lucide Animated.
Translation infrastructure is built on top of the major AI providers (Anthropic, OpenAI, Google) with their model APIs.
- General questions / discussion: open a GitHub Discussion or
questionissue. For non-GitHub contact, email technology@williamtemple.org. - Bug reports: open an issue with the
bugtemplate. - Security disclosures: see SECURITY.md.
- Project maintainer: Matt Geiger, Temple Consulting, LLC. — matt@templepdx.com · templepdx.com. FEED is developed and maintained by Temple Consulting, LLC.; the application code is not owned by William Temple House.
- William Temple House (the originating deployment): https://www.williamtemple.org/about/contact/





