Inspiration
The frustration was real - turning documents into presentations is a massive time sink. As developers, we constantly need to create slides from technical docs, research papers, and project documentation. Traditional tools require manual copying, formatting, and restructuring that takes hours.
I wanted to build something that could intelligently understand document context and generate professional presentations automatically. But not just any solution - it had to be enterprise-grade, scalable, and cost-effective for real-world use.
What it does
RAG-based Presentation Generator transforms any document into professional presentations using Amazon Bedrock.
Key Features:
• 📄 Upload any PDF - drag & drop with progress tracking
• 🧠 RAG-powered intelligence - understands document context using Bedrock Knowledge Base
• 🎨 AI-generated slides - creates 3-15 professional slides with Amazon Nova Pro
• 🔒 Perfect user isolation - each user gets their own Knowledge Base
• 💰 90% cost savings - uses S3 Vectors instead of expensive vector databases
• 📤 Multiple exports - HTML, Reveal.js, and Marp formats
• ⚡ Serverless architecture - scales automatically with zero infrastructure management
Live Demo: https://main.d2ashs0ytllqag.amplifyapp.com
Email: demo@aipptgenerator.com
Password: DemoPass123!
How we built it
Architecture: Complete AWS-native serverless stack
Frontend
• Next.js/React with AWS Amplify v6 authentication
• Drag & drop uploads with real-time progress tracking
• Professional UI with status management and export options
Backend (15 Lambda Functions)
• Document Processing Pipeline: Upload → Parse → Chunk → Embed → Index
• Per-User Knowledge Bases: Individual Bedrock Knowledge Base per user
• RAG Query System: Semantic search across user's documents
• AI Generation: Context-aware slide creation using Nova Pro
Infrastructure
• AWS CDK for infrastructure-as-code
• DynamoDB for metadata storage
• S3 for document and presentation storage
• S3 Vectors for cost-optimized vector storage (90% cheaper!)
• Amazon Bedrock Nova Pro + Titan embeddings
Unique Per-User Architecture
User A → Knowledge Base A → S3 Vectors A (only User A's docs)
User B → Knowledge Base B → S3 Vectors B (only User B's docs)
User C → Knowledge Base C → S3 Vectors C (only User C's docs)
Challenges we ran into
1. S3 Vectors Metadata Limit Crisis 💥
Problem: AWS S3 Vectors has a strict 2048-byte metadata limit per vector. Our initial implementation exceeded this, causing complete ingestion failures.
Solution: Comprehensive metadata optimization: • Ultra-minimal S3 key structure (docs/hash/file.txt vs long paths)
• Removed user isolation filtering from vector metadata
• Optimized chunking and parsing prompts
• Result: 80%+ metadata size reduction, successful ingestion
2. False "Failed" Status Bug 🐛
Problem: Documents showed confusing "failed" status during processing, even when ultimately successful.
Root Cause: Batch records with same ingestion job IDs interfering with status updates.
Solution: • Fixed Knowledge Base Manager to exclude batch records from status updates
• Implemented pragmatic frontend solution to hide false failures
• Result: Clean user experience with proper status progression
3. Per-User Knowledge Base Complexity 🏗️
Problem: Managing individual Knowledge Bases for each user without shared resources was architecturally complex.
Solution: • Dynamic Knowledge Base creation on first document upload
• Automated cleanup and resource management
• Status tracking across multiple AWS services
• Result: Scalable architecture supporting 100+ users per account
Accomplishments that we're proud of
🏆 First Implementation of S3 Vectors with Bedrock Knowledge Base - Among the first to implement this cost-saving architecture
🚀 Production-Ready Enterprise Architecture - Complete serverless stack with perfect user isolation
💰 90% Cost Reduction - S3 Vectors vs traditional OpenSearch Serverless for vector storage
🔒 Perfect Data Isolation - Each user gets completely separate AWS resources
⚡ 15 Lambda Functions - Complex distributed system working seamlessly together
🎯 Real-World Problem Solved - Actually deployed and solving document-to-presentation challenges
📊 Comprehensive Documentation - README with troubleshooting guides and architecture details
What we learned
Technical Deep Dives
• S3 Vectors Mastery: Understanding metadata limitations and optimization strategies for new AWS services
• Bedrock Knowledge Base: Advanced RAG implementation with per-user isolation patterns
• Serverless Orchestration: Managing complex workflows across 15+ Lambda functions
• AWS CDK Expertise: Infrastructure-as-code for multi-service, multi-tenant deployments
Product Engineering
• User Experience Design: Hiding technical complexity behind intuitive interfaces
• Error Handling at Scale: Robust status management across distributed systems
• Cost Engineering: How architectural decisions directly impact SaaS economics
• Scalability from Day One: Designing for multi-tenant isolation and growth
Problem-Solving Methodology
• Root Cause Analysis: Deep debugging across multiple AWS services and APIs
• Pragmatic Solutions: Sometimes frontend fixes solve backend complexity more elegantly
• Documentation-Driven Development: Comprehensive docs prevent future debugging sessions
• Version Control Discipline: Meaningful commits with detailed problem-solution mapping
What's next for RAG-based Presentation Generator
🎨 Enhanced AI Capabilities
• Multi-modal inputs: Support for images, videos, and audio files
• Advanced templates: Industry-specific presentation templates with AI customization
• Real-time collaboration: Multi-user editing with conflict resolution
🏢 Enterprise Features
• Multi-account architecture: Scale beyond 100 users with AWS Organizations
• Advanced analytics: Usage metrics, cost optimization insights, and performance monitoring
• API ecosystem: REST/GraphQL APIs for third-party integrations
🚀 Platform Expansion
• Mobile applications: Native iOS/Android apps with offline capabilities
• Browser extensions: One-click presentation generation from web content
• Slack/Teams integration: Generate presentations directly from chat conversations
💡 Advanced AI Features
• Presentation coaching: AI feedback on slide effectiveness and presentation flow
• Auto-updating slides: Dynamic content that updates when source documents change
• Voice narration: AI-generated speaker notes and audio narration
Built With
- amazon-s3-vectors
- amazon-titan-embedding
- aws-amplify
- aws-bedrock-nova-pro
- aws-cdk
- aws-cognito
- aws-lambda
- dynamodb
- graphql/appsync
- next.js/react
- node.js-18+
- python-3.11
- serverless
- titan-embeddings
Log in or sign up for Devpost to join the conversation.