What I Built
Over the last month itself, almost half of my friend group has moved overseas for jobs or studies. When I read the theme, "Build for a Friend", I didn't think of one person. I thought of all of them.
I'm a foodie, so when I talked to them about what they were missing, I wasn't surprised by the answer. It wasn't the weather or the traffic. It was home food. The dish their mother makes, the street snack from the corner stall, and the frustration of standing in a foreign supermarket holding half a recipe, unable to find one key ingredient.
So I built Home Craving, a website for people cooking far from home. It does four things:
- Finds the recipe for a dish they miss. They type something like Kerala beef fry or vada pav and get a full recipe with quantities, timings and steps.
- Swaps what they can't buy. Ingredients that are hard to find in their country are replaced with ones available in ordinary shops, chosen so the final dish suffers as little as possible. Each swap gets a score out of 100 and a short tip on how to use it.
- Works with their own family recipe. If they already have a recipe, they can paste it in and get the same substitutes without changing the recipe itself.
- Gets them to the shop. For each swap, it shows nearby shops that are likely to sell it, with a Navigate link and an online reference price (not a local shelf price) so they know roughly what to expect.
Both flows end with step-by-step cooking instructions that can be read aloud, so they can keep their hands in the pan instead of on the phone. There's also a "Keep out of every recipe" list for allergies and foods they avoid.
"so it's good, shows the recipe... showed the alternatives I can get in UK... that's cool"
— Sarah, a friend in the UK
Demo
Live site: https://home-craving-hacktober-2026.onrender.com/
A quick tour: type a dish, hit Find a recipe, then enter where you live and press Find local substitutes. Or switch to Adapt my own recipe and paste your own.
(The free Render instance may take a moment to wake up on the first visit.)
Code
Home Craving GitHub Repository
The project is open source under [LICENCE]. Because it's a Hacktoberfest entry, I made it easy to contribute to: the substitution data lives in a plain substitutions.csv, so you can add swaps from your own cuisine with a one-line pull request.
How I Built It
-
Gemma (
gemma-4-26b-a4b-it, through Google AI Studio's OpenAI-compatible endpoint) does the core work: it writes recipes, picks out the hard-to-find ingredients, proposes substitutes with a 0 to 1 rating on flavour, texture, moisture, acidity and heat, and rewrites the recipe with the swaps applied. - TabPFN scores each swap using a small table of rated substitutions, and the ratings my friends give after cooking (Great / Okay / Poor) are saved as new training rows. [CONFIRM: the app shows "tabpfn" or "fallback" next to each score. Say which one was running in your demo. If it was "fallback", delete this bullet and the TabPFN prize line.] The starter table was written by me, so the scores are a rough guide until real ratings come in.
- FastAPI serves the app and the single-page front end. OpenStreetMap (Nominatim and Overpass) finds your location and nearby shops, and SerpApi supplies online reference prices, capped and cached to stay inside the free plan.
- ElevenLabs reads the cooking steps aloud
- Render hosts it.
- I built it with Claude as a coding assistant, and I tested, debugged and deployed it myself and sent to my friends to use as well.
A few things went wrong along the way, and fixing them taught me the most:
- Gemma copied my instructions back at me. I'd described the expected reply as a format outline, and the model returned the outline instead of real data. Showing it one filled-in example fixed it, and an automatic retry catches the rest.
- The bigger model was too slow. The 31B model kept timing out, so I switched to a 26B mixture-of-experts model that activates only about 4B parameters per token, and split recipe writing from swap-finding so each call stays small.
- Location lookup worked on my laptop but failed on Render. Shared cloud addresses can get blocked by free geocoding services, so I added fallbacks.
- Free API limits shaped the design. SerpApi's free plan allows about 250 searches a month, so I added a monthly cap and a cache so repeat lookups cost nothing.
Why Does Open Innovation Matter?
I'll be straight about the limits first. My live demo calls Gemma through a hosted API, so it's open-weight but not offline or private, and I haven't benchmarked it against a closed model, so I can't claim it's better.
Here's what open did make possible:
- No lock-in. Moving from the 31B to the 26B model was a one-line settings change. Pointing the same code at Gemma running locally with Ollama is also just settings, so a family recipe never has to leave a laptop if someone prefers that. [CONFIRM: say whether you've tried it locally; if not, say "I haven't run the demo this way".]
- The knowledge belongs to everyone. A dish is only as good as the swaps behind it, and no one cook knows every cuisine. Plain CSV rows mean a friend in Toronto can add what works there, and a cousin in Dubai can add what works in her kitchen, without asking a company for permission.
- It can learn one person's taste. Ratings are saved to a file the user owns, so the scorer can reflect what actually worked in a real kitchen.
Prize Categories
- Best Use of Gemma: it writes the recipes, finds the substitutes and rewrites the dish.
- Best Use of ElevenLabs: it reads the cooking steps aloud and transcribes voice input.
- Best Use of Render: the app is hosted there.
- Best Use of SerpApi: it supplies online reference prices, within a monthly cap.
- Best Use of TabPFN:creates a growing dataset that can be used to improve future substitution scores.




Top comments (0)