Inspiration
The problem. Families cook for everyone, every night. On the nights two people are out, the extra pasta sits in the fridge and gets thrown away. Cooking more than gets eaten is one of the most common ways households waste food, and it happens a few times a week in a lot of homes.
What it does
4:00 PM: every family member's phone asks one question: Home for dinner? One tap: Home, Save me a plate, or Out. The cook's screen turns the count into an exact amount: "3 eating + 1 plate → Cook 320 g pasta", with the reason underneath. After dinner, the cook taps how much was left (ran out / none left / a bowl / a lot), and the app adjusts that family's amount for that dish. Within about a week, it matches how your family eats, not what the box says. Leftovers get claimed: the next day's question asks who's taking last night's chili for lunch.
How we built it
A vanilla JavaScript installable web app (no build step) with a Node + Express API and Postgres (Neon). Real push notifications use Web Push with VAPID keys and a service worker, including the iPhone Home Screen path. The learning is a small set of pure, unit-tested functions (src/portions.js). The landing page is a scroll-driven three.js scene with models, materials, and a camera move made in Blender 4.5, using CC0 textures. The app screens were designed from Mobbin research. Code was written with AI coding tools (Claude Code), directed, reviewed and tested by me.
Privacy (it's an app about where kids are). First names only: no email, phone, last name or location. A family code only lets you ask to join; the family's creator lets you in, and each device gets its own secret token. Answers expire after 30 days, and "Leave family" really deletes you.
Challenges we ran into
Making "none left" mean just right, so the amount doesn't creep up forever. Keeping dates in each family's own time zone, so an 8 PM report doesn't land on tomorrow's date. And iPhones only allow notifications from a Home Screen app, so we had to build the install path first.
Accomplishments that we're proud of
It's real and live, not a mockup: families can join with a code today, and the 4 PM question arrives as a real push notification, including on iPhones added to the Home Screen.
The amount really learns. After a few nights of "a lot left", the amount drops for that family and that dish, and the app tells you why ("your family eats about 15% less than the box says").
We designed the learning so "none left" means just right. A family that finishes everything keeps the same amount instead of drifting up forever.
Privacy we'd trust with our own family: first names only, a family code only lets you ask to join, every device gets its own secret token, and "Leave family" really deletes you.
What we learned
The hard part of a "simple" idea is the edge cases. An 8 PM leftover report has to land on the family's own date, not tomorrow's UTC date, so every date in the app runs through one time-zone helper, tested across daylight-saving changes.
iPhones only allow web push from an app added to the Home Screen, so we had to put the install step first in the design, not last.
A family code is not a password. Anyone can forward it, so joining had to become a request that someone in the family approves.
What's next for Dinner-Count
Grocery-list amounts that come from the same learning, and more dishes.
Log in or sign up for Devpost to join the conversation.