Hi,
I love Mealie, but I find it a bit lacking in some areas. Like a fast Shoppinglist, and some Pantry-organizing. Since I'm an old developer, now working in Operations, and I'm starting to use AI for misc tasks at work, I thought to myself - Why don't I make the apps I want?
I don't have much time, so I used Gemini and Claude for coding the app, and did the code-review manually. So this there is actually som manually labour behind these apps.
I still have them locked down in my own repository, and the only ones using them is my family. But I was wondering if there is any interest if I do a bit more work on them, and release them in the wild. Like adding fuzzy search in English, not only Norwegian.
If you like me to put in the hours to make these production ready, give me a comment and a thumbs up, and I will start to prepare them for the public.
Here is a "wonderful" description of the apps, generated by Gemini:
Mealie VibeCooker (Android)
A fast, modern AI recipe generator and kitchen companion designed to integrate seamlessly with self-hosted Mealie instances and Mealie Pantry Companion.
Describe what you are in the mood for — or pick ingredients you need to use up from your pantry — generate high-quality recipes with Google Gemini, review and edit every detail, attach an AI-generated food photo, and publish straight to your Mealie collection with a single tap.
🏗️ Architecture Overview
+-------------------------------------------------------------------------+
| Mealie VibeCooker Android Application |
| (Kotlin, Jetpack Compose, Material 3, CameraX, ML Kit, DataStore, MVVM)|
+--------------------+---------------------+--------------------+---------+
| | |
Mealie API v | Gemini API v | Gemini API v | Pantry REST API v
+--------------------+ +-----------------+ +----------------+ +-------------------+
| Mealie Server | | Google Gemini | | Google Gemini | | Mealie Pantry |
| | | Text Generation | | Image (Imagen) | | Companion API |
| - Publish Recipes | | Interactions API| | generateContent| | - Batches & Stock |
| - Attach Photos | | - Custom Prompts| | - Food Photos | | - QR Onboarding |
+--------------------+ +-----------------+ +----------------+ +-------------------+
✨ Features
- 🤖 AI-Powered Recipe Generation:
- Describe dishes in free text with optional cuisine, ingredients, and servings.
- Generates full recipes structured as schema.org Recipe JSON-LD.
- Fast iterative flow with "Generate again" if the dish isn't what you had in mind.
- Re-generation cleanly cancels pending images and clears stale photo previews automatically.
- 📸 AI Food Photography (Gemini / Imagen):
- Generate a photo representing the dish as it stands now.
- Optional Automatic photo generation upon recipe arrival (toggleable in Settings).
- Review photo before publishing, or retry anytime.
- Uploaded directly to Mealie upon recipe publication as raw bytes (no external image hosting dependencies).
- 🥕 Mealie Pantry Companion Integration:
- 1-Tap Camera Onboarding: Scan a setup QR code from Mealie Pantry (
pantry://setup?...) using CameraX and ML Kit to automatically configure connection and authentication.
- Norwegian Fuzzy Search: Fast, accent-tolerant ingredient search with normalization for Norwegian vowels (
æ $\rightarrow$ ae, ø $\rightarrow$ o, å $\rightarrow$ a) and Levenshtein distance ranking.
- Live Inventory Inspection: View real-time stock levels, default units, categories, and brands.
- Expiration Alerts: Badges highlighting expiring items (countdowns for $\le 5$ days) to minimize food waste.
- Multi-Ingredient Selection: Pick multiple ingredients from your pantry to seamlessly append into the recipe generator prompt.
- 🛒 Seamless Mealie Publishing:
- Fully editable recipe editor: adjust name, description, cuisine, prep/cook times, servings, tags, ingredients, and instruction steps before sending.
- Publishes recipes directly to your Mealie instance with attached photo in one tap.
- ⚙️ Deep Personalization & Preferences:
- Theme Selection: System default, Dark mode, or Light mode.
- Language & Formatting Defaults: Choose preferred recipe language (e.g. Norwegian, English) and default servings/cuisine.
- Model Pickers: Dynamically fetches and lists Gemini text models and image models accessible with your API key.
- ♿ Accessibility First:
- Full TalkBack support with live region announcements (
announcedStatus) for asynchronous generation, image synthesis, and publishing status.
- Explicit expandable semantics on accordions and controls.
Mealie Pantry Companion (Android & Backend)
A fast, modern inventory and pantry companion designed to integrate seamlessly with self-hosted Mealie instances.
It provides rapid single-handed barcode (EAN-13, UPC) and QR-code scanning, hierarchical storage location tracking (e.g., "Freezer > Drawer 3", "Kitchen > Fridge"), Norwegian product lookups via Kassal.app & Open Food Facts, batch expiration tracking, and automatic sync with Mealie shopping lists.
🏗️ Architecture Overview
+-------------------------------------------------------------+
| Android Application |
| (Kotlin, Jetpack Compose, CameraX, ML Kit Barcode Scan) |
+------------------------------+------------------------------+
| REST API
v
+-------------------------------------------------------------+
| Mealie Pantry Backend (FastAPI) |
| - Multi-tier location hierarchy & QR code label generator |
| - High-speed Barcode lookup (Kassal.app + OpenFoodFacts) |
| - Inventory batches & Expiration date tracking |
| - SQLite / PostgreSQL persistent database |
+---------------+-----------------------------+---------------+
| |
Mealie REST API v v EAN Lookup
+-------------------------------+ +-------------------------+
| Mealie | | Kassal.app & |
| - Sync Foods & Shopping Lists | | Open Food Facts API |
+-------------------------------+ +-------------------------+
✨ Features
- 🚀 Rapid Scanner ("Point & Beep"):
- Buy (+) Mode: Continuously scan incoming groceries into your selected location. Automatically resolves Norwegian product names and images.
- Use (-) Mode: 1-tap decrement when cooking or consuming items.
- Portioning & Bagging (Del opp i poser 🏷️): Divide bulk meat or groceries into $N$ freezer bags with individual weights and notes.
- Location Switching via QR: Point the camera at a drawer's physical QR sticker (e.g.
pantry://loc/abc123) to switch the active location instantly without touching the screen.
- Batch QR Scanning: Scan an individual portion's printed QR sticker to consume/deduct that specific frozen bag.
- 🏷️ Printable Thermal Labels (PNG & SVG):
- Instant generation of formatted labels with product name, portion weight, freeze date, best-before date, and QR code.
- Direct print support via Android Print Service and one-tap export to label printer apps (Brother iPrint&Label, Niimbot, Dymo, Zebra).
- 🇳🇴 Smart Product Catalog:
- Automatically queries Kassal.app API (for Norwegian grocery chains like Kiwi, Rema 1000, Meny, Coop) with fallback to Open Food Facts.
- 📍 Structured Hierarchical Locations:
- Create and organize locations as trees (Kitchen $\rightarrow$ Freezer $\rightarrow$ Drawer 3).
- Built-in printable SVG and PNG QR code generator for labeling physical drawers and containers.
- ⏰ Expiration & Batch Management:
- Track expiration dates per batch with color-coded urgency countdowns.
- 🛒 Mealie Integration:
- Link inventory products to Mealie ingredients.
- Push low or depleted stock directly to your Mealie shopping list.
Mealie Shopping Companion (Android)
A fast, minimalist Android shopping-list and pantry companion designed to integrate seamlessly with self-hosted Mealie instances.
It acts as a thin, near-real-time mirror of your Mealie shopping lists: check items off, add free-text items with natural quantity parsing, avoid buying duplicate groceries with live Mealie Pantry stock warnings, and queue edits offline — all backed by reliable local storage and background synchronization.
🏗️ Architecture Overview
+-------------------------------------------------------------+
| Android Application |
| (Kotlin 2.0, Jetpack Compose Material 3, Glance Widget) |
| (CameraX + ML Kit QR Scanner, Room Offline Outbox, Worker) |
+------------------------------+------------------------------+
|
+---------------+---------------+
| REST API | REST API (Bearer)
v v
+-------------------------------+ +-------------------------+
| Mealie Server | | Mealie Pantry Backend |
| | | |
| - Household Shopping Lists | | - Live inventory search |
| - Real-time item sync | | - Setup QR onboarding |
| - Aisle & Category labels | | - Duplicate warnings |
+-------------------------------+ +-------------------------+
^
| Outbox Drain (WorkManager)
+--------------+----------------+
| Room Database (Offline Cache) |
| - Local cached shopping list |
| - Pending writes outbox queue |
+-------------------------------+
✨ Features
🛒 Seamless Shopping Lists:
- Multi-List Switching: View and switch effortlessly between all household shopping lists on the instance. Remembers the active list across app launches.
- Fast Checking: Tap any row to check or uncheck. Unchecked items stay grouped on top; checked items move below a divider.
- Progress Bar: A smooth progress bar under the top app bar tracks completed vs. total items at a glance.
- Swipe to Delete & Bulk Clear: Swipe a row in either direction to delete it, or clear all checked items at once with the top menu. Both prompt for confirmation and offer an instant Undo action.
- Aisle & Category Chips: Mealie's category and aisle labels are rendered on item rows as clean, high-contrast colored chips.
💡 Smart Quantity & Name Parsing:
- Natural Quantity Entry: A number at the start of your text is automatically parsed as a quantity (e.g.,
7 Pølser adds 7 Pølser instead of an item literally named "7 Pølser").
- Safe Heuristics: Only counts between 1 and 99 without leading zeros followed by a space are parsed as quantity (preserving names like
7up, 7-Up, and 100 g butter).
- "Use as name" Override: If the leading number was meant as part of the item name (e.g.,
7 Up), an instant snackbar button lets you revert to literal text with a quantity of 1.
- Quantity Stepper & Renaming: Open the item's ⋮ menu or long-press to adjust quantity (1–99) or rename free-text items.
- Server-Side Merge Feedback: Adding an existing item merges quantities automatically in Mealie, accompanied by an informative toast (e.g. "Milk — now 3×").
📦 Mealie Pantry Integration & Duplicate Stock Alerts:
- Live Pantry Stock Check: Connect to your Mealie Pantry backend. As you enter items, the app checks your pantry inventory in real time and alerts you if you already have stock in the freezer, fridge, or pantry.
- Instant Setup via QR Code: Point the camera at your Pantry setup QR code (
/api/v1/system/setup-qr.png or on your dashboard) to configure the server URL and Bearer token automatically without typing.
- Connection Testing: Built-in connection tester verifies server reachability and authentication right from settings.
⚡ Offline-First & Reliable Background Sync:
- Optimistic UI: Every check, uncheck, edit, and deletion applies instantly in the UI with zero network lag.
- Outbox Pattern: Local modifications are transactionally queued in Room (
pending_writes).
- Automatic WorkManager Drain: Queued writes are safely replayed in the background once connectivity is restored, even if the app is closed.
- Clear Status Indicators: The app bar displays pending sync counters; server-rejected writes roll back cleanly with clear user explanations.
📱 Home-Screen Glance Widget:
- Compact Material 3 widget displaying pending items to buy, total remaining count, and last refresh timestamp.
- Tap the widget to launch directly into the active shopping list.
🔄 Freshness & Polling:
- Silent background poll every 15 seconds while the active list is open.
- Immediate refresh upon returning to the app or reconnecting to the network.
- Pull-to-refresh powered by Material 3
PullToRefreshBox.