AI-powered photography web app for events that transforms photos into themed artistic images.
- 📸 Fullscreen Camera Capture - Instagram-style interface with burst mode (5 photos)
- 🎨 10 Themed Styles - Wedding, vintage, fairytale, anime, and more
- 🤖 AI Image Generation - Powered by Google Gemini 2.5 Flash Image
- 📱 Adaptive Orientation - Supports both portrait and landscape
- 💬 Telegram Integration - Automatic photo sharing to group
- 📥 Instant Download - Photos automatically downloaded
- 📊 Lead Capture - Collect names, Instagram handles, and phone numbers
- Frontend: Vite + React 19 + TypeScript + Tailwind CSS
- AI: Google Gemini 2.5 Flash Image API
- Database: Supabase (PostgreSQL)
- Photo Sharing: Telegram Bot API
- State: Zustand
- Camera: react-webcam
- Node.js 18+
- Supabase account
- Google Gemini API key
- Telegram bot token
# Install dependencies
npm install
# Copy environment variables
cp .env.example .env.local
# Update .env.local with your credentials# Supabase
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_anon_key
# Telegram Bot
VITE_TELEGRAM_BOT_TOKEN=your_bot_token
VITE_TELEGRAM_CHAT_ID=your_chat_id
# Google Gemini AI
VITE_GEMINI_API_KEY=your_gemini_api_key
# App Configuration
VITE_EVENT_ID=default_event
VITE_WATERMARK_IMAGE_URL=/frames/default-frame.pngCreate the leads table in Supabase:
CREATE TABLE leads (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
created_at TIMESTAMPTZ DEFAULT NOW(),
full_name TEXT NOT NULL,
instagram_handle_1 TEXT,
instagram_handle_2 TEXT,
phone_number TEXT NOT NULL,
country_code TEXT NOT NULL DEFAULT '+1',
consent_given BOOLEAN NOT NULL DEFAULT FALSE,
event_id TEXT,
theme_selected TEXT NOT NULL
);
-- Enable Row Level Security
ALTER TABLE leads ENABLE ROW LEVEL SECURITY;
-- Allow anonymous inserts
CREATE POLICY "Allow anonymous inserts" ON leads
FOR INSERT
WITH CHECK (true);- Create a bot via @BotFather
- Get your bot token
- Create a group and add your bot
- Get the Chat ID:
# Send a message in the group, then:
curl https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdatesnpm run devnpm run build
npm run preview- Camera - Capture 5 burst photos in fullscreen mode
- Select - Choose your best photo
- Theme - Pick from 10 artistic styles
- Generate - AI transforms your photo (~30-60s)
- Preview - Review with optional frame overlay
- Details - Enter name, Instagram, phone
- Done - Auto-download + Telegram upload
- Classic Wedding Portrait
- Vintage Romance
- Fairytale Fantasy
- Beach Sunset
- Garden Party
- Black & White Elegance
- Watercolor Art
- Cinematic Movie Poster
- Anime Illustrated
- Cultural Traditional
- Portrait: 1080x1920 (9:16)
- Landscape: 1920x1080 (16:9)
- Real-time orientation detection
All themes use structured prompts with explicit instructions to:
- Maintain facial features and structure
- Preserve skin tone, eye color, hair
- Keep body positions unchanged
- Only modify background and atmosphere
- Uses
useRefto prevent double executions - No duplicate Gemini API calls
- No duplicate Telegram uploads
See PRD.md for detailed product requirements and implementation details.
Proprietary - PixelPro Studios © 2026