Inspiration
I was already using AI to come up with meal ideas, but every conversation was painfully long. I had to re-explain what ingredients I had, what I didn't have, my dietary restrictions, my nutrition goals, every single time. I got tired of it and wanted something that just knew all of that already and did a better job of meeting all my requirements without the back-and-forth.
What it does
MealThinker is an AI meal planner that stores your dietary preferences, allergies, and kitchen inventory. When you ask for meal ideas, it suggests recipes using ingredients you already have, prioritizing anything that's about to expire. It also generates shopping lists and tracks your nutrition automatically.
How I built it
- Frontend & Backend: Next.js with TypeScript and React
- Database: PostgreSQL via Supabase, with Prisma as the ORM
- AI: Google Gemini for meal generation and conversational planning
- Payments: Stripe for subscriptions
- Hosting: Hetzner VPS with Coolify for deployment
- Mobile: iOS app via Capacitor, plus mobile-responsive web app
Challenges
The hardest part was making the AI responses feel personalized rather than generic. Feeding the right user context (preferences, pantry contents, recent meals) into each prompt without hitting token limits took a lot of iteration. Building a subscription system that works seamlessly across web and iOS was also a significant challenge.
What I learned
Shipping a real product as a solo developer means making hard tradeoffs every day. I learned to focus on the features that actually solve the core problem, reducing daily meal decision fatigue, and resist the urge to add everything at once.
Built With
- coolify
- gemini
- hetzner
- next.js
- postgresql
- prisma
- react
- stripe
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.