Inspiration
As students, we kept running into the same problem every week: eating healthier felt expensive, and staying on budget meant repetitive or low-quality meals. We wanted to build something that turns meal planning into a practical, cost-aware workflow — not just a recipe browser. The core idea was to combine nutrition guidance with real supermarket pricing so users can see what they can actually afford before they ever set foot in a store.
What it does
Untitled is a budget-first meal planning app that generates a multi-day breakfast, lunch, and dinner plan based on your preferences. A 3-step wizard captures your budget, dietary restrictions, cuisine preferences, difficulty, and cooking time — then produces:
- A full day-by-day meal calendar
- Estimated cost per meal and weekly total
- A consolidated shopping list with quantities and prices
- Meal detail modals with ingredients, macros, and instructions
- Regeneration controls to quickly replan using notes and include/avoid ingredient lists
How we built it
We built the app with Next.js 16 App Router, TypeScript, and Tailwind CSS.
Frontend: A landing page feeds into the wizard, which encodes preferences into a URL. The results page generates and renders the plan client-side via an API workflow.
AI workflow: An ingredient selection agent picks practical ingredients from the dataset, while a weekly planner agent generates meals in strict JSON format. The server validates responses with Zod schemas, enriches meals with pricing and images, and computes totals.
Cost and planning logic: Recipes are filtered by hard constraints (diet, difficulty), then scored by weighted factors — affordability, nutrition, cuisine fit, and ease — and assigned greedily into meal slots with variety checks. Shopping quantities are aggregated and priced against the cheapest matching products.
The scoring formula is: S = 0.40·A + 0.25·N + 0.20·C + 0.15·E, where A is affordability, N is nutrition match, C is cuisine match, and E is ease/time fit.
Challenges we ran into
- AI JSON reliability: Models occasionally returned extra text around JSON, requiring hardened parsing and fallback extraction logic.
- Budget realism: Per-serving costs can look affordable while real checkout totals are higher due to pack sizes — we had to calculate both theoretical consumption and actual shopping costs.
- Ingredient normalization: Raw ingredient records had inconsistent naming and price fields, requiring careful deduplication and normalization.
- Constraint balancing: Keeping plans varied, nutritionally sound, and within budget simultaneously required multiple rounds of iteration and retry logic.
- UX during generation: Without a strong loading state, generation felt abrupt. We added staged progress indicators and animated skeletons to improve perceived responsiveness.
Accomplishments that we're proud of
- Built an end-to-end pipeline that goes from user preferences to a fully actionable shopping plan
- Integrated AI generation with strict schema validation and robust error handling
- Implemented dual cost views and shopping aggregation logic that reflects real-world spending
- Delivered a polished results experience with interactive meal detail modals and smooth loading animations
- Kept the entire flow simple and fast — no sign-in required
What we learned
- Reliable AI products need guardrails, not just prompts. Schema validation and retries are non-negotiable.
- Cost modeling is nuanced. Users need clear distinction between per-serving estimates and real checkout totals.
- UX details build trust. Loading states and control placement significantly affect how credible the app feels.
- Strong type safety pays off. Shared data contracts made it much easier to evolve a multi-step workflow quickly.
What's next for Untitled
- Live supermarket price sync and historical price tracking
- Smarter budget optimization using pack-aware selection instead of simple heuristics
- Personalized reranking based on meal feedback (likes, dislikes, swaps)
- Allergy-safe and pantry-aware planning modes
- Export options — shopping checklists, calendar views, and printable meal prep cards
- Test coverage for scoring, costing, and schema validation paths
Built With
- chatgpt
- claude
- nextjs
- react
- vercel
- woolworths
Log in or sign up for Devpost to join the conversation.