Devpost Submission — Laro Food Recipe App
Copy each section below into the corresponding Devpost field.
Elevator Pitch
Laro is an AI-powered recipe and meal planning app that cuts through food blog clutter to extract any recipe in one tap, tracks what's in your fridge, tells you what to cook before ingredients expire, and walks you through every step hands-free — all self-hostable, offline-first, and built with neurodivergent accessibility from day one.
Project Story
Inspiration
Cooking at home should be the easy part — but managing recipes never is. We were drowning in bookmarked blog posts buried under ad walls, handwritten notes on sticky papers, and the nightly question: "What do I even make with what's in the fridge?"
Existing recipe apps were either paywalled, lacked intelligence, or couldn't be self-hosted for real data ownership. We wanted one app that could rip a recipe from any website, know what's in our pantry, suggest what to cook tonight, plan the whole week, and walk us through each step — all while keeping our data entirely under our control.
What it does
Laro is a complete recipe management and meal planning platform — native Android app, progressive web app, and one-command Docker deployment.
- AI Recipe Import — Paste any URL. AI extracts the title, ingredients, steps, and nutrition, cutting through 2,000-word life stories to find the actual recipe.
- Raw Text & Photo Parsing — Snap a photo of grandma's handwritten recipe or paste raw text. AI structures it into a clean, scalable recipe card.
- Pantry & Fridge Tracking — Log ingredients with expiry dates, swipe to mark items as used, and get alerts before food goes to waste.
- "What Can I Make?" Suggestions — Ask Laro what to cook and it suggests recipes — filtered by style (Quick & Easy, Slow Cook, Healthy) — based on what you actually have on hand, prioritizing ingredients about to expire.
- AI Meal Planning — A weekly calendar with AI auto-generation of balanced meal plans tailored to your household's preferences and dietary needs.
- Smart Shopping Lists — Auto-generated from meal plans with intelligent ingredient grouping.
- Cook Mode — A full-screen, distraction-free step-by-step guide with built-in timers and an AI cooking assistant you can ask questions mid-recipe.
- Sharing & Households — Share recipes via unique links or WhatsApp. Families and roommates share recipes, pantries, and meal plans with role-based permissions.
- Neurodivergent Accessibility — Dyslexia-friendly fonts, ADHD focus mode, autism predictability presets, high contrast, and reduced motion — built in from day one.
- Offline-First — Every recipe, every meal plan, available without an internet connection.
How we built it
Backend: Python/FastAPI with PostgreSQL 17 and Redis 7 for caching and real-time pub/sub. Background jobs run on Celery workers. Security middleware implements OWASP headers, rate limiting, CSP, HSTS, and audit logging.
Web Frontend: React + TypeScript, built with Vite, styled with Tailwind CSS and 47 shadcn/ui components. Designed as a PWA with code splitting and lazy loading.
Android App: Native Kotlin with Jetpack Compose, Room database for offline-first architecture, Hilt dependency injection, and Material 3 with a calming sage-green theme.
AI Integration: Pluggable LLM system supporting Ollama (free, local), OpenAI, Anthropic Claude, Google Gemini, and Groq — powering recipe extraction, meal plan generation, pantry-based suggestions, and the in-cook assistant.
Auth & Security: JWT + OAuth (Google, GitHub) with TOTP two-factor auth, email verification, device trust, IP allowlists/blocklists, account lockout, and GDPR data export.
Infrastructure: Single docker-compose up -d for self-hosting. Railway for cloud deployment with auto-deploys from GitHub.
Challenges we ran into
Reliable recipe extraction from the wild web. Food blogs are notoriously inconsistent. We designed robust AI prompting strategies with fallback parsing to handle everything from clean JSON-LD to sprawling posts where the recipe hides after a 2,000-word preamble about a trip to Tuscany.
Offline-first sync for shared households. Making the Android app fully functional offline with Room while staying in sync with the server required careful conflict resolution — especially when multiple household members edit the same pantry or shopping list simultaneously.
Multi-LLM provider abstraction. Supporting five AI providers with a single interface meant wrangling vastly different API shapes, token limits, and response formats behind one clean abstraction layer.
Real-time collaboration on mobile networks. Shared shopping lists and meal plans needed WebSocket infrastructure with Redis pub/sub, plus graceful reconnection handling for spotty cellular connections.
Designing for neurodivergent users. Accessibility isn't a checkbox. We researched ADHD, dyslexia, and autism-specific design patterns and built a comprehensive settings panel with quick presets — not as an afterthought, but as core architecture that touches typography, animations, layout density, and interaction patterns across every screen.
Accomplishments that we're proud of
- One-tap recipe import that actually works across thousands of food blogs — solving the frustration that plagues every recipe-clipping tool.
- Fully self-hostable with a single command — no cloud dependency, no subscription, full data ownership.
- Contextual AI cooking assistant in Cook Mode — ask "Can I substitute butter for oil in this step?" while your hands are covered in flour.
- Pantry-aware suggestions that reduce food waste by prioritizing ingredients about to expire.
- Industry-leading neurodivergent accessibility — dyslexia-friendly fonts (OpenDyslexic), ADHD focus mode, autism predictability presets, reading rulers, and high contrast — all configurable per-user.
- Native Android experience built with Jetpack Compose that feels fast, works offline, and maintains full feature parity with the web app.
- 19-category notification preference system — users control exactly what alerts they get, from expiry warnings to cooking streak celebrations.
- Open source under MIT — anyone can run, modify, and contribute.
What we learned
AI is only as good as its prompts. Consistent, structured recipe output from LLMs required extensive prompt engineering, output validation, and retry logic. A small prompt tweak could break extraction for entire categories of sites.
Offline-first is a design philosophy, not a feature toggle. Bolting offline support onto an existing app is painful. Building it in from day one with Room and a clear sync strategy made the Android experience dramatically better.
Self-hosting UX matters. Even technical users expect sane defaults and a setup that "just works." Our Docker Compose approach with auto-admin creation on first launch came directly from user feedback.
Accessibility drives better design for everyone. Building for neurodivergent users forced us to simplify information density, add confirmation dialogs, reduce animation, and improve error messaging — changes that made the app better for all users.
Food is deeply personal. Recipes touch culture, dietary restrictions, family traditions, and budgets. Building a flexible system — tags, categories, scaling, cost tracking, nutrition — that doesn't impose a single workflow was essential.
What's next for Laro
- Voice Controls in Cook Mode — Hands-free navigation through recipe steps so you never touch your phone with flour-covered fingers.
- iOS App — Bringing the native mobile experience to iPhone and iPad.
- Community Recipe Hub — An opt-in marketplace where users publish and discover community recipes.
- Smarter Nutrition Tracking — Integration with health apps, automatic macro calculation, and dietary goal planning tied to meal plans.
- Receipt Scanner — OCR-powered automatic cost tracking from grocery receipts, feeding per-recipe cost analytics.
- Deeper Home Assistant Integration — Trigger smart kitchen devices (ovens, timers, smart displays) directly from Cook Mode, turning Laro into the brain of a connected kitchen.
Built With (add as individual tags)
Kotlin · Jetpack Compose · Python · FastAPI · React · TypeScript · PostgreSQL · Redis · Celery · Tailwind CSS · Vite · Docker · Room Database · Hilt · Material Design 3 · Firebase Cloud Messaging · OpenAI · Anthropic Claude · Ollama · Groq · WebSockets · OAuth · JWT · Railway · GitHub Actions
Try It Out Links
| URL | Description |
|---|---|
| https://laro.food | Web App |
| Google Play (Beta) | Google Play Store |
| GitHub Repository | Source Code |
Built With
- anthropic-claude
- celery
- docker
- fastapi
- firebase-cloud-messaging
- github
- groq
- hilt
- jetpack-compose
- jwt
- kotlin
- material-design-3
- oauth
- ollama
- openai
- postgresql
- python
- railway
- react
- redis
- room-database
- tailwind-css
- typescript
- vite
- websockets
Log in or sign up for Devpost to join the conversation.