-
-
Keep your fridge, freezer, and pantry organized with visible dates and foods sorted by urgency.
-
Track completed rescue actions and food rescued. The 500 g shown is from the demo session.
-
Your daily rescue plan: see which foods to use, freeze, or cook first. Built-in demo kitchen.
-
Rescue-first recipes show ingredient matches, missing items, preparation time, and servings.
-
1024 × 1024 app icon
-
Screenshot WITHOUT device frames
What inspired Pantrio
Food can be forgotten even when a kitchen is well stocked. A yogurt needs attention today, spinach disappears behind a container, and fruit waits for a meal that never happens. Keeping an inventory helps, but the next question is what to do with it.
Pantrio starts with that question: What can we rescue with the food we already have?
It is a food rescue copilot for everyday kitchens, designed to connect the food on hand with a clear action: use it, freeze it, share it, or cook it before it is wasted.
What Pantrio does
Pantrio turns kitchen inventory into a daily Rescue Plan. Users can scan a product barcode, point Date Lens at a printed package date, review the recognized details, and add the item to their fridge, freezer, or pantry.
The Today screen prioritizes food that needs attention. Dates remain visible, and recommendations help users decide what to act on first. Rescue recipes consider urgent ingredients and how well a recipe matches the rest of the kitchen.
When users complete a rescue action, Pantrio records the amount of food rescued. The Impact screen reflects completed actions, making progress visible through recorded activity rather than inventory alone.
A shared household kitchen keeps inventory and recipes synchronized across devices, helping people coordinate what has been added, used, or still needs attention.
Date guidance and recipe validation
Pantrio distinguishes between use-by and best-before dates in its recommendations. Ingredients past their use-by date are excluded from recipe generation, and shared rules check food eligibility, allergens, and dietary preferences.
Recipe generation begins with a deterministic local draft. Optional AI generation through DeepSeek can write the title, summary, cooking steps, additional cupboard staples, and substitution suggestions. The selected pantry ingredients remain anchored to the local draft, and storage guidance remains deterministic.
The generated candidate is validated before it is accepted. Allergen information is derived from ingredient knowledge rather than accepted from the model's claims. If the response is invalid, unavailable, or fails validation, Pantrio falls back to the local draft.
The design goal is to make generated recipes useful while keeping the app's eligibility and validation rules in control.
How it was built
Pantrio uses Kotlin Multiplatform and Compose Multiplatform, with modular Clean Architecture and a Redux-style MVI approach. Common code contains domain rules, repositories, state management, navigation, and feature UI. Platform-specific services sit behind shared interfaces.
Pantrio is published on both Android and iOS. The same shared application foundation powers both versions, while native adapters handle the services that depend on each operating system.
Android uses CameraX and ML Kit for camera recognition. iOS uses AVFoundation and Apple Vision. Room provides the local source of truth, while Firebase Authentication connects accounts and Cloud Firestore synchronizes household data. Protected Firebase Cloud Functions handle optional AI requests without placing provider credentials in the mobile app. Koin assembles the modules.
This is the basis of the Ship Kotlin Everywhere entry: one shared product across two published mobile platforms, with common UI and business rules alongside native camera and billing integrations.
Building a sustainable product with RevenueCat
Core food rescue tools remain free. Pantrio Plus extends the experience with unlimited pantry items and Date Lens scans, the fuller daily plan, impact history, and household sharing.
RevenueCat manages subscription offerings, purchases, restoration, and the Plus entitlement through the native platform billing systems. Billing identity is connected to the signed-in account, allowing subscription access to follow the user across installations.
The product aims to make its value clear before asking users to upgrade: start with the food already in the kitchen, complete a useful rescue action, and choose Plus when the additional planning tools are needed.
Challenges during development
- Keeping date-based recommendations current. Urgency must be recalculated as time passes, rather than relying on a stored number of days remaining.
- Coordinating local and shared data. Local inventory and remote household changes need to converge without repeated writes or inconsistent screens.
- Validating generated recipes. Fluent text is not enough. Generated content needs to meet the same pantry, allergen, equipment, timing, and dietary constraints as the local draft.
- Handling subscription identity and lifecycle. Sign-in, purchases, restoration, and app restarts need to resolve to a consistent entitlement state.
- Sharing the product while respecting platform differences. Camera recognition, permissions, and billing require native implementations, even when the UI and business logic are shared.
These challenges shaped the architecture: shared policy, a local data foundation, explicit platform interfaces, and validation before accepting generated content.
Lessons from development
Building Pantrio highlighted the value of connecting information to a small, timely action. A kitchen inventory becomes more useful when it helps someone decide what to use or freeze today.
It also showed where multiplatform sharing is most valuable: keeping date logic, recipe constraints, state management, and navigation consistent while letting each platform use its native services.
What's next
With Pantrio available on both Android and iOS, the next steps are to improve Date Lens across more label formats and locales, expand the rescue-first recipe library, and gather feedback from more households.
The long-term goal is to help every kitchen recognize what needs attention next and act before food is wasted.
Use what you have. Waste less.
Built With
- android
- camerax
- cloud-firestore
- cloud-functions
- compose-multiplatform
- crashlytics
- deepseek
- firebase
- firebase-app-check
- firebase-auth
- gradle
- ios
- jetpack-compose
- koin
- kotlin
- kotlin-coroutines
- kotlin-multiplatform
- ml-kit
- node.js
- revenuecat
- room
- sqlite
- swift
- typescript
Log in or sign up for Devpost to join the conversation.