AI-powered viral TikTok/Instagram slideshow creator that transforms authentic photos into engaging content in under 10 seconds.
This is a monorepo containing:
api/- Next.js serverless API on Vercelmobile/- React Native Expo mobile appshared/- Shared TypeScript types and utilities
- Frontend: React Native with Expo
- Backend: Next.js API Routes (Serverless)
- Database: Supabase (PostgreSQL with JSONB)
- Storage: Cloudflare R2
- AI: OpenRouter.ai (GPT-4o, Claude 3.5, Whisper)
- Deployment: Vercel (API) + Expo (Mobile)
- Node.js 18+
- npm
- Expo CLI
- OpenRouter.ai API key
- Supabase account
- Cloudflare R2 account
- Clone and install dependencies:
npm install- Set up environment variables:
# Copy and configure environment files
cp api/.env.example api/.env.local
cp mobile/.env.example mobile/.env.local- Start development servers:
npm run devThis will start both the API server and mobile app concurrently.
npm run dev- Start both API and mobile in developmentnpm run build- Build both projects for productionnpm run type-check- Run TypeScript checksnpm run lint- Run ESLint
├── api/ # Next.js API (Serverless)
│ ├── src/app/api/ # API routes
│ ├── src/lib/ # Utilities and services
│ └── src/types/ # API-specific types
├── mobile/ # React Native Expo app
│ ├── src/ # Mobile app source
│ ├── components/ # React components
│ └── screens/ # App screens
├── shared/ # Shared code
│ ├── src/types/ # Common TypeScript types
│ ├── src/utils/ # Utility functions
│ └── src/constants/ # App constants
└── claude.md # Product requirements
- Async Image Analysis - Batch processing with OpenRouter.ai
- Voice-to-Slideshow - 10-second AI-powered creation
- Viral Templates - Research-backed formats
- Real-time Updates - Supabase subscriptions
- Fast Export - TikTok-ready video generation
- Serverless Scaling: Vercel Edge Functions handle AI workload
- Async Processing: 5-10 images per batch for optimal performance
- JSONB Querying: Lightning-fast asset selection
- Real-time UI: Live analysis progress updates
- Cost Optimization: OpenRouter.ai model switching
cd api
vercel deploycd mobile
expo buildOPENROUTER_API_KEY=your_openrouter_key
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
CLOUDFLARE_R2_ENDPOINT=your_r2_endpoint
CLOUDFLARE_R2_ACCESS_KEY=your_r2_access_key
CLOUDFLARE_R2_SECRET_KEY=your_r2_secret_key
CLOUDFLARE_R2_BUCKET_NAME=your_bucket_name
EXPO_PUBLIC_API_URL=http://localhost:3000
EXPO_PUBLIC_SUPABASE_URL=your_supabase_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
- Follow the existing code style
- Update types in
shared/for API changes - Test both API and mobile before committing
- Use conventional commits
Private - All rights reserved