Transform your ideas into stunning presentations with AI-suggested themes and professional layouts. Just paste your markdown, and watch the magic happen.
Try SlideGenius now: https://slide-genius-green.vercel.app/
- Frontend: Deployed on Vercel
- Backend API: Deployed on Railway at https://slidegenius-production.up.railway.app
- Database: Supabase PostgreSQL with real-time features
- AI-Powered Enhancement: Automatically improves markdown content for better presentation flow
- Smart Theme Selection: AI suggests optimal themes based on content analysis
- Real-time Preview: Live preview of generated slides
- Multiple Export Options: Download as HTML or view in fullscreen
- User Authentication: Secure login with Supabase integration
- Presentation Management: Save, edit, and organize your presentations
- Responsive Design: Works seamlessly across devices
- FastAPI: Modern Python web framework
- SQLAlchemy: Database ORM
- LangGraph: AI workflow orchestration
- Groq API: LLM integration for content enhancement
- Supabase: Authentication and database
- Reveal.js: Presentation framework
- Next.js 15: React framework with App Router
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- shadcn/ui: Modern UI components
- React Query: Data fetching and caching
SlideGenius/
βββ backend/ # FastAPI backend
β βββ app/
β β βββ api/ # API routes
β β βββ llm/ # LangGraph pipeline
β β βββ services/ # Business logic
β β βββ models.py # Database models
β βββ requirements.txt
βββ frontend/ # Next.js frontend
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # React components
β β βββ contexts/ # React contexts
β β βββ services/ # API clients
β βββ package.json
βββ db/ # Database migrations
βββ supabase/
- Python 3.8+
- Node.js 18+
- Supabase account
- Groq API key
-
Navigate to backend directory:
cd backend -
Create virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create
.envfile:# Database DATABASE_URL=your_supabase_db_url # Supabase SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_key SUPABASE_JWT_SECRET=your_jwt_secret # AI Services GROQ_API_KEY=your_groq_api_key # CORS ALLOWED_ORIGINS=http://localhost:3000
-
Run the backend:
python run.py
-
Navigate to frontend directory:
cd frontend -
Install dependencies:
npm install
-
Create
.env.localfile:NEXT_PUBLIC_API_URL=http://localhost:8000
-
Run the frontend:
npm run dev
-
Create Supabase project at supabase.com
-
Run migrations:
cd db npx supabase db push
- Sign up/Login to your account
- Click "Create New Presentation" from dashboard
- Enter title and paste markdown content
- Click "Generate Presentation" to create slides
- Preview in real-time or export as HTML
Use standard markdown with slide separators:
# Title Slide
Your presentation title
---
## Slide 2
- Bullet point 1
- Bullet point 2
---
## Slide 3
**Bold text** and *italic text*POST /api/auth/register- User registrationPOST /api/auth/token- User loginGET /api/auth/me- Get current user
POST /api/presentations/generate- Start presentation generationGET /api/presentations/{id}/status- Check generation statusGET /api/presentations- List user presentationsGET /api/presentations/{id}- Get specific presentationPUT /api/presentations/{id}- Update presentationDELETE /api/presentations/{id}- Delete presentation
- Suggest & Improve Node: Enhances markdown content and suggests themes
- Generate HTML Node: Converts markdown to Reveal.js HTML
- Persist Node: Saves presentation to database
- User registers/logs in via Supabase Auth
- JWT token stored in HTTP-only cookies
- Protected routes require valid authentication
- User submits markdown content
- Backend creates presentation record
- AI pipeline processes content asynchronously
- Frontend polls for completion status
- Generated HTML returned to user
DATABASE_URL=postgresql://...
SUPABASE_URL=https://...
SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
SUPABASE_JWT_SECRET=...
GROQ_API_KEY=gsk_...
ALLOWED_ORIGINS=http://localhost:3000# For local development
NEXT_PUBLIC_API_URL=http://localhost:8000
# For production (Vercel)
NEXT_PUBLIC_API_URL=https://slidegenius-production.up.railway.app- β Backend: Railway - https://slidegenius-production.up.railway.app
- β Frontend: Vercel - https://slide-genius-green.vercel.app/
- β Database: Supabase PostgreSQL
- Connect GitHub repository to Railway
- Set environment variables:
DATABASE_URL=your_supabase_db_url SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_key SUPABASE_JWT_SECRET=your_jwt_secret GROQ_API_KEY=your_groq_api_key ALLOWED_ORIGINS=https://slide-genius-green.vercel.app
- Ensure Procfile is configured:
web: uvicorn app.main:app --host 0.0.0.0 --port $PORT - Deploy automatically on push to main branch
- Connect GitHub repository to Vercel
- Set environment variable:
NEXT_PUBLIC_API_URL=https://slidegenius-production.up.railway.app
- Deploy automatically on push to main branch
- Custom domain configured at slide-genius-green.vercel.app
- Fork the repository
- Create feature branch:
git checkout -b feature-name - Commit changes:
git commit -m 'Add feature' - Push to branch:
git push origin feature-name - Submit pull request
MIT License - see LICENSE file for details