{"slug": "pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend", "title": "PantryPal: A Private, Offline Kitchen Assistant Built for My Friend", "summary": "A developer built PantryPal, an offline kitchen assistant that recommends recipes based on the ingredients a user already has, using a hybrid architecture that pairs deterministic Python logic with a local Qwen3-VL 4B model served through Ollama. The app keeps nutrition math, portion scaling and constraint checks in code while the language model only selects from a constrained list of substitution candidates and rewrites steps, with a fallback mode that works without Ollama. It is released under the MIT License.", "body_md": "*This is a submission for the [Hacktoberfest Weekend Challenge: Build for a Friend](https://dev.to/challenges/hacktoberfest-weekend-2026-10-01).*\n\nI built PantryPal for a friend who lives in a flat, rarely has every ingredient required by a recipe, and wants to follow either a light-oil healthy diet or a high-protein carnivore diet.\n\nPantryPal starts with what my friend actually has:\n\nIt then recommends recipes that can realistically be cooked in their kitchen.\n\nThe app also:\n\nThe project includes:\n\nPantryPal uses a hybrid design where deterministic code handles the parts that must be reliable, while the local language model handles the parts where language and taste judgment are useful.\n\n| Layer | Responsibility | Technology | \n|---|---|---|\n| Code | Filtering, scoring, scaling and nutrition math | Python | \n| Local AI | Ingredient substitutions and step rewrites | Qwen3-VL 4B through Ollama | \n| Data | Profile, pantry, recipes and nutrition | SQLite and JSON | \n| UI | Kitchen assistant interface | Streamlit | \n\nThe model does not calculate nutrition or invent arbitrary ingredients.\n\nThe code first creates a constrained list of valid substitution candidates. Qwen3-VL then chooses from that list and explains the choice. The result is validated before it is shown to the user.\n\nThe nutritional calculations, portion scaling and macro tolerance checks remain deterministic because a small language model should not be trusted with arithmetic.\n\nPantryPal also has a fallback mode. If Ollama is unavailable, the core application still works using code-based recommendations.\n\nOpen innovation was important because this app handles highly personal information: body measurements, dietary preferences and pantry contents.\n\nWith local inference:\n\nA closed hosted API would have made the first version easier to connect, but it would have required sending personal dietary and pantry data to a service my friend does not control.\n\nUsing Ollama and Qwen3-VL made privacy and offline operation part of the product instead of an afterthought.\n\nI tested PantryPal using my friend's actual kitchen constraints rather than a generic demo profile.\n\nThe most important design decisions came from their real situation:\n\n“I liked that it used what I already had instead of giving me another shopping list.”\n\nThe most useful architecture decision was keeping the language model away from calculations.\n\nThe local model is good at choosing between culinary alternatives and rewriting instructions. Python is better at checking ingredients, calculating nutrition, scaling portions and enforcing constraints.\n\nThat separation made the application more predictable while still giving it a natural, helpful interface.\n\nPantryPal is released under the MIT License.", "url": "https://wpnews.pro/news/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend", "canonical_source": "https://dev.to/gruks/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend-b7e", "published_at": "2026-10-04 10:35:35+00:00", "updated_at": "2026-10-04 10:42:43.528218+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "ai-products", "developer-tools"], "entities": ["PantryPal", "Qwen3-VL 4B", "Ollama", "Streamlit", "SQLite", "Python", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend", "markdown": "https://wpnews.pro/news/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend.md", "text": "https://wpnews.pro/news/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend.txt", "jsonld": "https://wpnews.pro/news/pantrypal-a-private-offline-kitchen-assistant-built-for-my-friend.jsonld"}}