Transform any document into professional presentations with AI
Snap2Slides is an AI-powered presentation generator built from scratch over 3 weeks as a learning project. It transforms images, PDFs, and documents into professional PowerPoint slides using Google's Gemini Vision API, with robust multi-API failover system and comprehensive mobile support.
Real application, real AI processing, real PowerPoint downloads
Built from scratch in 3 weeks - A complete learning journey from concept to deployed application
This project represents a full-stack development experience with real challenges and solutions:
- π₯ Week 1: Core architecture, Next.js 14 setup, Gemini API integration
- β‘ Week 2: Multi-API failover system, PowerPoint generation, mobile optimization
- π Week 3: Production deployment, comprehensive documentation, GitHub presentation
Key Learning Highlights:
- Mastering AI API integration and building resilient failover systems
- Developing comprehensive error handling and application monitoring
- Learning responsive design principles for complex file processing workflows
- Growing skills in thorough documentation and professional project organization
π Read the Complete Development Story β Deep dive into challenges, solutions, and architectural decisions
This isn't just another AI tool - it's a complete production application built with real-world challenges in mind:
- π€ Multi-API AI Processing - Google Gemini Vision with automatic failover
- π Universal File Support - Images, PDFs, Word docs, PowerPoint (up to 50MB)
- π± True Mobile-First - Tested on real devices, works perfectly on phones
- β‘ Real-time Processing - Live progress tracking, no fake loading screens
- πΎ Instant Downloads - Professional PowerPoint files ready for presentation
- π§ Admin Monitoring - Built-in system health dashboard
- Reliable System Design - Multi-API rotation prevents downtime
- Cross-Device Compatibility - Network-enabled testing across devices
- Performance Optimized - React.memo, code splitting, hardware acceleration
- Comprehensive Error Handling - Graceful degradation and user feedback
- Security First - Input validation, file type restrictions, API protection
-
Install Dependencies
npm install
-
Configure Gemini API
- Get your API key from Google AI Studio
- Add it to
.env.local
:
GEMINI_API_KEY=your_actual_api_key_here
-
Run Development Server
npm run dev
-
Open in Browser
- Navigate to
http://localhost:3000
(or the port shown in terminal)
- Navigate to
- Upload Image: Drag and drop or click to select an image file (JPG, PNG, WebP up to 10MB)
- Generate Slides: Click "Generate Slides" to process with AI
- Download Result: PowerPoint file will automatically download when ready
- Next.js 14: React framework with App Router
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Google Gemini AI: Advanced image analysis and content generation
- PptxGenJS: PowerPoint file generation
POST /api/gemini-vision
: Process images with AIPOST /api/generate-pptx-slides
: Create PowerPoint presentations
app/
βββ api/
β βββ gemini-vision/route.ts # AI image processing
β βββ generate-pptx-slides/route.ts # PowerPoint generation
βββ globals.css # Clean, professional styling
βββ layout.tsx # Root layout
βββ page.tsx # Main application interface
GEMINI_API_KEY=your_gemini_api_key_here
-
Build the application:
npm run build
-
Start production server:
npm start
Make sure to set the GEMINI_API_KEY
environment variable in your production environment.
- TypeScript: Full type safety and excellent developer experience
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Google Gemini AI - Image analysis and content generation
- MongoDB - Database for storing presentations
- Framer Motion - Smooth animations
-
Install Dependencies
npm install
-
Environment Setup
cp .env.local.example .env.local # Add your API keys
-
Run Development Server
npm run dev
-
Open Browser Visit http://localhost:3000
βββ app/
β βββ api/ # API routes
β βββ components/ # Reusable components
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Homepage
βββ public/ # Static assets
βββ next.config.js # Next.js configuration
βββ tailwind.config.js # Tailwind configuration
npm run dev
- Start development servernpm run build
- Build for productionnpm run start
- Start production servernpm run lint
- Run ESLintnpm run type-check
- TypeScript checking
- Drag & drop interface
- Multiple file support
- AI-powered content extraction
- Smart title generation
- Professional templates
- Automatic layout optimization
- Content suggestions
- Export capabilities
Ready to deploy on Vercel, Netlify, or any Node.js hosting platform.
MIT License - feel free to use for personal and commercial projects.
Built with β€οΈ for the future of presentations