AI-Powered Image-to-PowerPoint Converter
💡 Seeking Microgrant: $400 for PDF improvements and better error handling. See funding details →
A Next.js web app that converts images and documents into PowerPoint presentations using Google Gemini Vision API. Built as a learning project to understand AI integration, file processing, and Next.js deployment.
- Upload images (JPG, PNG, WebP) or PDFs
- AI analyzes content with Gemini Vision
- Generates structured slide content
- Downloads as editable PowerPoint (.pptx)
✅ Image Analysis - Google Gemini Vision API integration
✅ PowerPoint Generation - Creates editable .pptx files (pptxgenjs)
✅ File Upload - Drag & drop, up to 10MB
✅ Mobile Responsive - Works on phones and tablets
✅ 8 API Endpoints - analyze, generate, health checks
✅ Production Ready - Deployed on Vercel
# Clone and install
git clone https://github.com/SaurabhCodesAI/snap2slides.git
cd snap2slides
npm install
# Set up environment
cp .env.example .env.local
# Add your Google Gemini API key
# Run development server
npm run devVisit http://localhost:3000
Get API Key: Google AI Studio
- 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
- pptxgenjs - PowerPoint file generation
snap2slides/
├── app/
│ ├── api/ # 8 API routes (analyze, generate, health, etc.)
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Homepage
├── components/ # React components
├── lib/ # Utilities and API handlers
├── public/ # Static assets
├── next.config.js # Next.js configuration
└── package.json # Dependencies
Current Focus: PDF improvements and error handling (funded by microgrant)
- Better PDF-to-slide conversion
- Improved error handling for large files
- Mobile UI optimization
- Comprehensive test suite
- More document formats (Word, Excel)
- Custom slide templates
- Batch processing
- API access for developers
See ROADMAP.md for detailed timeline and budget.
# Development server
npm run dev
# Production build
npm run build
npm start
# Type checking and linting
npm run type-check
npm run lintThis is a learning project, but contributions are welcome! See CONTRIBUTING.md for guidelines.
Areas Where Help Is Needed:
- PDF parsing improvements
- Test coverage
- Error handling
- Documentation
⭐ Star this repo if you find it useful
💰 Sponsor development via GitHub Sponsors
🐛 Report bugs via Issues
🤝 Contribute via Pull Requests
MIT License - See LICENSE for details.
Built by: Saurabh Pareek (@SaurabhCodesAI)
Contact: [email protected]
Status: Active development, seeking $400 microgrant for improvements