MenuViz

Overview
MenuViz is an AI Creative Studio built for restaurants to generate professional food images from text descriptions. No photography needed - just describe your dish and let AI create appetizing visuals for your menu. Features include AI prompt enhancement, multiple style presets, and a complete gallery management system.
Technical Implementation
Advanced AI Integration
Leverages Google's Gemini 2.5 Flash Image model for high-quality food generation and Gemini 2.0 Flash for intelligent prompt enhancement, transforming simple descriptions into detailed artistic prompts.
Modern Tech Stack
Built with Next.js 16 App Router, TypeScript, and Tailwind CSS 4 for a cutting-edge, performant web application. Uses Supabase for robust backend services including authentication and PostgreSQL database.
Secure Data Management
Implements Row Level Security (RLS) in Supabase to ensure user data isolation. API keys are securely managed, allowing users to switch between shared and personal keys with local storage persistence.
Optimized User Experience
Features a polished UI with real-time previews, loading states, and instant feedback. Solved complex state management challenges to ensure prompt enhancements and generation flows work seamlessly.
Project Demo
Key Features
- AI Image Generation using Gemini 2.5 Flash Image
- One-click prompt optimization with Gemini 2.0 Flash
- Secure Authentication with Supabase Auth & Google OAuth
- 4 Professional Style Presets (Photorealistic, Artistic, etc.)
- Persistent Image Gallery with filtering and sorting
- Generation History tracking with status indicators
- Custom API Key support for unlimited usage
- Responsive design with Tailwind CSS 4 and shadcn/ui
Screenshots

Clean interface for prompt input and style selection

Grid layout displaying generated food images

Track all generation attempts and status

Manage API keys and account preferences
Challenges & Solutions
Challenge: Handling Gemini API Rate Limits
Solution: Implemented robust error handling with user-friendly messages and retry suggestions. Added support for custom API keys to allow power users to bypass shared quota limits.
Challenge: Persisting Enhanced Prompts Correctly
Solution: Fixed state synchronization issues where old prompts persisted by implementing auto-clear on input change and visual feedback mechanisms to clarify which prompt is active.
Challenge: Next.js 16 Middleware & Auth
Solution: Migrated from deprecated middleware patterns to a robust `proxy.ts` solution for secure route protection and session management with Supabase.
Challenge: Google OAuth Redirection
Solution: Resolved authentication flow issues by moving OAuth logic to the client-side and configuring proper redirect URLs for a seamless login experience.