Plan meals. Generate groceries. Simplify your week.
Live Demo β’ Report Bug β’ Request Feature
Menubelo is a meal-planning and grocery-list web application designed to eliminate weekly cooking decision fatigue. Organize your recipes, schedule meals by day and time slot, and automatically generate consolidated shopping lists with printable supermarket checklists.
Built for practical weekly cooking workflows, Menubelo helps you plan ahead, reduce food waste, and streamline your grocery shopping experience.
This project was built by MC Monkeys β where humans and AI agents collaborate to build real-world digital solutions. MC Monkeys is the team behind Mission Control for Claude Code, a system that makes AI agent work visible in real time.
Menubelo was developed using this human-AI collaborative approach, combining strategic planning, modern development practices, and operational visibility to deliver a production-ready application.
Learn more: https://mcmonkeys.up.railway.app/
- π Recipe Library β Create and manage your collection of favorite recipes
- π Smart Recipe Import β Parse recipes from URLs or paste raw text with AI-powered extraction
- π Weekly Meal Planner β Visual week-at-a-glance layout with customizable meal slots (breakfast, lunch, snack, dinner)
- π Auto-Generated Grocery Lists β Automatically consolidate ingredients from your weekly plan
- β Interactive Shopping β Check off items as you shop with category-organized lists
- π¨οΈ Printable Checklists β Export clean, printer-friendly grocery lists for the supermarket
- π’ Serving Adjustments β Scale recipe quantities up or down based on servings needed
- π·οΈ Ingredient Categories β Organize shopping by aisle (dairy, produce, pantry, etc.)
- π Spanish UI β Interface optimized for Spanish-speaking users
- π± Responsive Design β Works seamlessly on desktop, tablet, and mobile devices
| Technology | Purpose |
|---|---|
| Next.js 14 | React framework with App Router for optimal performance and server-side rendering |
| TypeScript | Type-safe development and enhanced developer experience |
| Prisma | Type-safe ORM with auto-generated client and migration system |
| SQLite | Zero-configuration local database (easily swappable for PostgreSQL) |
| Tailwind CSS | Utility-first styling with custom design tokens |
| Anthropic Claude | AI-powered recipe parsing and ingredient extraction (optional) |
| Lucide React | Beautiful, consistent icon library |
Before you begin, ensure you have the following installed:
- Node.js (v18.17 or higher)
- npm (v9 or higher) or yarn / pnpm
- Git for version control
Follow these steps to get Menubelo running on your local machine:
git clone https://github.com/billymcmonkeys/menubelo.git
cd menubelonpm installOr if you prefer yarn:
yarn installCreate .env file in the root directory:
DATABASE_URL="file:./prisma/dev.db"
ANTHROPIC_API_KEY=your_key_hereNotes:
- AI parsing is optional β the app includes fallback parsing when no API key is provided
- Database is SQLite by default (no additional setup required)
.envis gitignored and will never be committed
npm run db:setupThis command will:
- Run Prisma migrations to create the database schema
- Seed the database with demo recipes and meal plans
npm run devIf port 3000 is busy, use a custom port:
npm run dev -- -p 3010Navigate to http://localhost:3000 to see the application running.
The page will automatically reload when you make changes to the code.
-
Browse Recipes (
/recetas)- View your complete recipe collection
- Search recipes by name
- Click any recipe to view full details
-
Add New Recipe (
/agregar)- Option A: Paste URL β Import from YouTube, TikTok, or recipe websites
- Option B: Paste Text β Copy/paste recipe text for AI extraction
- Review parsed ingredients before saving
- Edit details (servings, prep time, cook time)
- Add optional recipe image URL
-
Edit Recipes
- Open recipe details
- Modify name, description, or ingredients
- Update serving sizes
- Delete recipes you no longer need
-
Navigate to Planner (
/planificador)- See the current week at a glance
- Use arrow navigation to browse previous/next weeks
- Visual week strip shows days with planned meals
-
Add Meals to Your Week
- Click "Add a meal" under any day
- Select meal slot (breakfast, lunch, snack, dinner)
- Choose a recipe from your library
- Adjust servings for that meal
-
Manage Planned Meals
- View all meals organized by day
- Edit servings without changing the recipe
- Remove meals from your plan
- Rearrange meals across different days
-
Generate Grocery List
- Click "Generate Shopping List" button
- Automatically aggregates all ingredients from your week
- Scales quantities based on servings
- Organizes by ingredient category
-
View Your List (
/compras)- See all ingredients grouped by category
- Categories appear in shopping-friendly order
- Total quantities calculated automatically
-
Shop Interactively
- Check off items as you add them to your cart
- Checked items move to the bottom
- Progress indicator shows completion percentage
-
Regenerate List
- Make changes to your meal plan
- Click "Regenerate" to update your grocery list
- All changes reflected instantly
-
Print Your List (
/compras/imprimir)- Export a clean, printer-friendly checklist
- Organized by category for efficient shopping
- Checkbox format for manual marking
- Perfect for taking to the supermarket
menubelo/
βββ app/ # Next.js App Router
β βββ layout.tsx # Root layout with navigation
β βββ page.tsx # Home page
β βββ globals.css # Global styles + design tokens
β βββ recetas/ # Recipe library page
β β βββ page.tsx # Browse and search recipes
β βββ agregar/ # Add recipe flow
β β βββ page.tsx # Import from URL or text
β βββ planificador/ # Weekly meal planner
β β βββ page.tsx # Week view with meal slots
β βββ compras/ # Grocery list management
β β βββ page.tsx # Interactive grocery list
β β βββ imprimir/ # Printable checklist
β β βββ page.tsx
β βββ api/ # API route handlers
β βββ recipes/ # Recipe CRUD operations
β β βββ route.ts # GET (list/search) + POST (create)
β β βββ [id]/ # GET, PATCH, DELETE by ID
β βββ parse/ # AI recipe parsing
β β βββ route.ts # Parse from URL or text
β βββ planner/ # Week plan management
β β βββ route.ts # GET (list) + POST (create plan)
β β βββ [id]/ # Plan details and entries
β βββ grocery/ # Grocery list generation
β βββ route.ts # GET all + POST generate
β βββ [weekPlanId]/ # Week-specific grocery lists
βββ components/ # Reusable React components
β βββ Navbar.tsx # Main navigation bar
β βββ Footer.tsx # Site footer
β βββ recipe/ # Recipe-related components
β βββ planner/ # Planner-specific components
β βββ grocery/ # Grocery list components
β βββ ui/ # Shared UI primitives
βββ lib/ # Utility functions and helpers
β βββ db.ts # Prisma client singleton
β βββ grocery.ts # Grocery list generation logic
β βββ utils.ts # Shared utility functions
βββ prisma/ # Database schema and migrations
β βββ schema.prisma # Prisma schema definition
β βββ seed.ts # Database seed script
β βββ migrations/ # Migration history
β βββ dev.db # SQLite database file (gitignored)
βββ docs/ # Documentation
β βββ architecture.md # Technical architecture decisions
β βββ api-spec.md # API endpoint documentation
β βββ design-tokens.md # Design system tokens
β βββ wireframe-*.md # UI wireframes and flows
β βββ test-plan.md # Testing strategy
βββ public/ # Static assets
β βββ images/ # Image files
βββ .env # Environment variables (gitignored)
βββ .env.example # Example environment file
βββ .gitignore # Git exclusions
βββ next.config.mjs # Next.js configuration
βββ tailwind.config.ts # Tailwind + design tokens
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies and scripts
| Command | Description |
|---|---|
npm run dev |
Start development server at localhost:3000 |
npm run build |
Create optimized production build |
npm run start |
Start production server (requires build first) |
npm run lint |
Run ESLint to check code quality |
npm run db:migrate |
Create and apply new Prisma migration |
npm run db:generate |
Generate Prisma client from schema |
npm run db:seed |
Populate database with demo data |
npm run db:setup |
Run migrations + seed in one command (recommended for setup) |
- β Complete recipe library management
- β AI-powered recipe parsing (URL and text)
- β Visual weekly meal planner
- β Automatic grocery list generation
- β Printable shopping checklists
- β SQLite database with seed data
- β Responsive UI/UX
- β Spanish language support
- β³ User authentication (email/password + social login)
- β³ PostgreSQL database migration
- β³ User-specific recipe collections
- β³ Privacy controls (private/public recipes)
- β³ Cloud deployment (Vercel + Supabase or Neon)
- β³ Share recipes with friends and family
- β³ Community recipe marketplace
- β³ Meal plan templates
- β³ Recipe ratings and reviews
- β³ Recipe forking and remixing
- β³ Nutritional information tracking
- β³ Dietary restrictions and preferences
- β³ Budget tracking for grocery lists
- β³ Recipe scaling calculator
- β³ Leftover management system
- β³ Integration with grocery delivery APIs
- β³ Native mobile apps (iOS + Android)
- β³ Progressive Web App (PWA)
- β³ Voice assistant integration (Alexa, Google Assistant)
- β³ Smart fridge integration
- β³ Push notifications for meal reminders
Upload a recipe URL or paste recipe text, and Menubelo uses Claude AI to intelligently extract:
- Recipe title and description
- Ingredient list with quantities and units
- Preparation and cooking times
- Serving sizes
Supports popular platforms:
- YouTube cooking videos (extracts from description)
- TikTok recipe videos
- Recipe blogs with structured data (JSON-LD)
- Plain text recipes
Fallback mode: When no API key is provided, basic pattern matching extracts ingredients without AI.
Day-first layout optimized for how people actually plan meals:
- Vertical day-based rows (MonβSun)
- Horizontal meal slots (breakfast, lunch, snack, dinner)
- Flexible meal counts (not every day needs all slots)
- Quick recipe assignment (2 taps max)
- Per-meal serving adjustments
- Week navigation to plan multiple weeks ahead
Automatically aggregates ingredients from your entire week:
- Combines duplicate ingredients across meals
- Scales quantities based on servings
- Groups by category (dairy, produce, meat, pantry, etc.)
- Maintains units (grams, cups, tablespoons, etc.)
- Interactive checkbox system for shopping
- Live progress tracking
Clean, printer-friendly export designed for real-world shopping:
- Category-organized layout
- Checkbox format for manual marking
- Optimized spacing for easy scanning
- No unnecessary UI elements
- Single-page format when possible
- No Authentication: All data is publicly accessible to anyone who can access the app
- Single-User Only: No user accounts, ownership, or privacy controls
- No Rate Limiting: API endpoints can be called unlimited times (abuse vector)
- Local Database Only: SQLite is not designed for concurrent multi-user access
- No CORS Protection: API routes accept requests from any origin
- No Input Validation: Request payloads are not strictly validated
- No Backend Persistence: Refreshing after database reset loses all data
- No File Uploads: Recipe images must be provided as URLs
- Limited Recipe Parsing: AI parsing requires Anthropic API key (optional)
- No Offline Support: Requires active internet connection
- SQLite Only: Database file stored locally (not portable across deployments)
- No Audit Trail: Cannot track who created/modified recipes
- No Undo/Restore: Deleted recipes are permanently removed
- No Data Export: No built-in backup or export functionality
- Seed Data Only: Demo recipes provided for testing, not production content
These limitations are intentional for Phase 0 and will be addressed in:
- Phase 1: Authentication, PostgreSQL, cloud deployment, input validation
- Phase 2: Rate limiting, CORS, security headers, audit logging
- Phase 3: Data export, backup, recovery systems
Use Case: Menubelo Phase 0 is perfect for:
- Personal meal planning on a local development machine
- Testing and exploring the feature set
- Demonstrations and prototypes
- Learning Next.js + Prisma architecture
Not Suitable For:
- Production deployment with real users
- Shared hosting or public internet access
- Sensitive or proprietary recipe data
- Commercial or business use
We welcome contributions! If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please ensure your code:
- Follows the existing TypeScript and code style
- Passes all linting checks (
npm run lint) - Includes appropriate comments and documentation
- Works across all major browsers
This project is licensed under the MIT License β see the LICENSE file for details.
MC Monkeys is a human-AI collaborative system building real-world digital solutions. The team uses Claude Code agents with full operational visibility through Mission Control.
- π Website: https://mcmonkeys.up.railway.app/
- π― Mission Control: Live Demo
- π Our Story: Read the Story
- πΌ GitHub: @billymcmonkeys
- π§ Email: billy.mcmonkeys@gmail.com
- π Report a Bug
- π‘ Request a Feature
- π¬ Ask a Question
- Built using human-AI collaborative workflows with Claude Code agents
- Developed with full operational visibility through MC Monkeys Mission Control
- Recipe parsing powered by Anthropic Claude
- Icons by Lucide
- Built on the amazing Next.js framework
- Database magic by Prisma
- Styling with Tailwind CSS
- Inspired by real-world meal planning challenges
- Built with β€οΈ for home cooks everywhere
Visit MC Monkeys | Star this repo β
Built with human-AI collaboration by MC Monkeys π΅
Making AI agent work visible. One project at a time.