MenuViz

Next.js 16TypeScriptTailwind CSS 4SupabaseGemini AIVercel AI SDKshadcn/ui
MenuViz preview

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

MenuViz Dashboard

Clean interface for prompt input and style selection

Image Gallery

Grid layout displaying generated food images

Generation History

Track all generation attempts and status

User Settings

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.

Project Impact

100+
users
500+
images Generated
< 5s
avg Generation Time
4
styles Available
MenuViz | Deepak Modi