DEV Community

Cover image for Simmer: Snap Your Fridge, Get 3 Recipes
Himanshu Nikam
Himanshu Nikam

Posted on

Simmer: Snap Your Fridge, Get 3 Recipes

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

My flatmate asks the same question almost every day: what should we eat? Before breakfast, before dinner, and on holidays every few hours. The fridge usually has enough in it. The hard part is deciding.

So I built Simmer. You snap a photo of your fridge or type what you have, pick the meal (breakfast, lunch, a snack, or dinner), and Simmer gives you exactly three recipes you can make right now. Each one has short steps and a "need to buy" list, and the three are ranked by how little extra shopping they need. One tap copies that list.

Who would pay for this? Students and young professionals living away from home, people sharing a flat, anyone who opens the fridge, stares at it, and orders food anyway. It's a small problem that comes back every day, so the price is small too: three meals are free, then ₹99 for the whole year. No account, and no monthly plan to remember to cancel.

Demo

In the video: a fridge photo turns into a list of ingredients, I pick dinner, and three recipes come back. After the third free meal, the yearly offer shows a UPI QR. The buyer pastes their UTR and email, I check the payment in my UPI app and switch it to Paid on the admin page, and a PDF receipt lands in their inbox.

Code

Simmer

Snap your fridge. Get three doable recipes for the next meal.

Simmer reads a photo of your fridge, or the ingredients you type, and suggests exactly three recipes for breakfast, lunch, a snack, or dinner. Each recipe lists the steps and a short "need to buy" list, ranked by how little extra shopping it asks for.

The model runs locally through Ollama (Gemma 3 4B). A fridge photo is not sent to a paid vision API, and that is why the yearly price can be small.

Try 3 meals free. Then ₹99 for the year.

Built for the DEV Hacktoberfest Open-Source AI Challenge, Week 2: Side Hustle.

Simmer landing page

Contents

Features

  • Four meals. Breakfast, lunch, snacks…

How I Built It

The whole app runs on one open-weight model: Gemma 3 4B, served locally through Ollama. The same model reads the fridge photo and writes the recipes, so there's no separate vision service.

  • Frontend: React, Vite and Tailwind, installable on a phone as a PWA.
  • API: FastAPI. It builds the prompt from your ingredients, the meal, your dislikes, and limits like "15 minutes" or "veg only", then asks Gemma for strict JSON with exactly three recipes.
  • Data: MongoDB Atlas stores each kitchen's session, pantry, saved recipes, suggestion history and payment claims. There's no login; a private cookie remembers your kitchen.
  • Payments: a UPI QR for ₹99, a form for the UTR and email, a password-protected admin page with a Paid switch, and a PDF receipt sent by email.

The photo step taught me the most. My first version simply asked Gemma to list the ingredients in the photo. I tested it with a screenshot of a chat window, and it confidently returned tomato, cheese, onion, garlic, bread and potato. Asking "is this food?" didn't help either, because the question itself pushed it towards food. What worked was asking it first to describe, in one plain sentence, what is actually in the picture. If that sentence doesn't sound like a fridge, a counter or a plate, Simmer stops and asks for a real photo. Only then does it ask for ingredients, and you still confirm the list before cooking.

Speed was the other lesson. On my 8 GB MacBook Air, one suggestion takes about a minute (around 10 tokens a second) and a photo takes 10 to 30 seconds. I raised the timeout and told Ollama to keep the model loaded between requests, so the next person doesn't have to wait for it to load again.

The prompt is written for an Indian home kitchen: rice, dal, eggs, onion, roti, leftovers. It's told not to suggest things like tahini or truffle oil unless you already have them, and never to talk about calories.

Why Does Open Innovation Matter?

It's the reason the price can be ₹99.

A paid vision API charges for every image. A Simmer user might send a fridge photo every day, sometimes three times a day. Paying per call would either eat the whole ₹99 or force a monthly plan, which nobody wants for a "what's for dinner" app. With Gemma running on my own machine, a photo costs electricity, not an API bill.

It also keeps the fridge private. A photo of your fridge says a lot about how you live. With a local model, that photo goes only to the computer running Simmer, and Simmer doesn't store it.

And I'm not locked in. The model is one line in a config file. If a better small open model comes out next month, I can swap it in without rewriting the app or agreeing to someone's new pricing.

To be fair to closed models: a large hosted vision model would read a messy fridge more accurately, and it would answer faster. A 4B model sometimes misses a jar or names something wrong. I designed around that instead of hiding it: the scene check, the "check these before adding" step, and recipes that lean on staples you almost certainly have.

My First User

My first user was my flatmate, the same person who gave me the idea. He's the one asking "what should we eat?" every day, and on holidays it's breakfast, lunch, snacks and dinner. He used Simmer on his own to answer that question.

Prize Categories

  • Best Use of Gemma: Gemma 3 4B, running locally through Ollama, is the core of Simmer. It reads the fridge photo and writes all three recipes.
  • Best Use of MongoDB Atlas: Atlas is the data layer behind the app: kitchen sessions, the free-meal count, pantries, the recipe box, suggestion history and UPI payment claims.

Top comments (0)