K–12 School Meals
GoodieFood
A K–12 School Meal Platform Built on Serverpod
Client
GoodieFood Inc.
Role
Full-stack design & development
Year
2026
Platforms
iOS · Android · Web
Three stakeholder apps shipped on one Dart codebase
GoodieFood brings K–12 school meal programs online for everyone involved: parents order and pay for their children's lunches, food-service operators run their menus, and a platform team oversees the whole network. GBot designed and built the entire product — three applications and a custom backend — from the ground up.
Overview
School meal programs sit at the intersection of families, school food operators, and the platform that connects them. GoodieFood is a white-label solution for that market: a parent app for ordering, an operator console for running a kitchen, and an admin platform for managing the network — all backed by one shared system that moves real money between them.
The Challenge
Each stakeholder needs something different, and money flows through the middle. Parents need a simple way to order and pre-pay for meals and manage multiple children; operators need full control of menus, schedules, and pricing; the platform team needs oversight of payments and settlement across every operator. Tying that together meant building payment and account handling with the reliability a financial system demands — not a feature that can occasionally be wrong.
What We Built
- A parent mobile app for browsing menus, ordering, managing multiple children, and running recurring "auto-pilot" meal plans, with per-child allergen and dietary preferences.
- An operator web app for managing menus, schedules, combos, and pricing.
- A platform-admin web app for overseeing operators, payments, and settlement across the network.
- A custom Serverpod backend in Dart that shares its models and logic with the Flutter clients, backed by PostgreSQL and Redis.
- Stripe Connect for parent payments and operator payouts, with a configurable fee and commission model.
Technical Highlights
- A money system built for correctness: one family wallet per operator, with row-level locking so concurrent top-ups and orders can never corrupt a balance.
- Idempotent payments: Stripe operations and webhooks are idempotent — signatures are verified and events de-duplicated — so a retried request never double-charges or double-credits.
- A configurable fee model: flat or percentage ACH surcharges, operator-absorbed or parent-paid card fees, and a per-operator platform commission.
- Scheduled jobs that generate recurring orders, enforce cut-off times, and batch settlement.
- A money-flow test gate: an integration-test suite that exercises wallets, orders, auto-pilot, refunds, and payouts — payment code cannot merge unless it passes.
- A single Flutter + Serverpod codebase in a Melos monorepo keeps the three apps and the backend consistent.
Outcome & Impact
- A complete, production-grade platform — three applications and a custom backend — running on AWS infrastructure.
- The shared-Dart architecture lets the parent, operator, and admin experiences evolve together from one codebase.
- Payment correctness is enforced by design and protected by an automated test gate, rather than left to manual review.