PPPTX
Generate customizable lyrics presentations from any browser.
Next.jsReactTypeScriptSupabaseTailwind CSSshadcn/uiPptxGenJSGoogle Gemini AI
PPPTX - AI-Powered Presentation Generator
Problem Statement
Worship leaders and church volunteers spend significant time creating presentation slides for lyrics, prayers, and worship content. Traditional methods require manually formatting text in PowerPoint or Google Slides, which is time-consuming. Enterprise solutions such as ProPresenter have high price tags and limited portability due to license restrictions. PPPTX solves this by enabling instant generation of professionally formatted worship presentations from any browser, starting free.
Architecture
- Frontend Application: Next.js 15 with React 19 and TypeScript
- Presentation Editor: Interactive WYSIWYG-style editor
- AI Formatting Service: Google Gemini integration via Vercel AI SDK
- PPTX Generation: Server-side PowerPoint file creation
- Database Layer: Supabase PostgreSQL with Drizzle ORM
- Authentication: Supabase Auth with JWT cookies
- Payment System: Stripe integration for subscriptions
- Storage: Supabase Storage
Challenges
- On 02/04/2026, Supabase had a DNS lookup error that caused the Supabase project to be unreachable. It was resolved within hours (kudos to the team), and I was able to follow updates via their status page and Discord.
Key Decisions
- Try-Before-Signup User Flow: Implemented freemium onboarding where guests can create and preview presentations without authentication, but must sign up to download or save. This reduces friction for new users while maintaining conversion opportunities.
- Server-Side PPTX Generation: Generate PowerPoint files on the backend and upload to S3, rather than client-side generation. This enables a few things: persistence of presentations and pptx files, and enables usage tracking, as well as fits into a sustainable freemium model.
- Download-Only vs Saved Presentations: Implemented two presentation modes - download-only (temporary, counts against generation limit) and saved (persistent, counts against storage limit). These are the two main modes of usage.
What I Learned
- This was a milestone project for me. Not in terms of difficulty - there were few technical holdups. It was a milestone because this was my first e2e SaaS app where I got to focus primarily on the product & UI/UX as opposed to the actual programming blocks of building a SaaS. I am optimistic that this marks a certain acceleration point in my next chapter of software engineering.
- I'll be sure to note also that this is actually PPPTX V2, as a few months prior I had just built the same app using Wasp's OpenSaaS. I found the declarative style extremely powerful and fast for development. It was ai-agent friendly to code, and allowed for quick manual edits. After completing the V1 project I decided to make V2 with Supabase, preferring the latter's comprehensiveness. With Wasp I still had to choose my stack for Storage & Database, which was easy enough but it detracted from the time saved by the declarative framework. I avoid framework lock-ins when possible and did not see a strong enough case for Wasp to win here, for the scale of micro-SaaS products I wanted to build.
Future Improvements
- Build templates/custom backgrounds
- Soft deletes for presentations (currently hard delete)
- Collaboration features for team editing
- Version history for presentations
- Advanced AI features (auto-suggest verses, optimize readability scores)