AI Presentation Maker turns long-form source material into fully designed slide decks. Paste a research paper, meeting notes, strategy memo, or rough outline, choose a format and visual direction, and the app generates a presentation with narrative structure, themed slides, editing tools, presentation mode, and PDF export.
This repo ships the full web application: authenticated dashboard, real-time generation flow, editable slide previews, Cloudflare R2 asset storage, and a two-stage AI pipeline that separates presentation planning from final slide rendering.
- Converts raw source material into complete presentations instead of filling a template.
- Supports two deck styles:
Presenter Slidesfor live delivery andDetailed Deckfor standalone reading. - Uses a two-stage AI pipeline:
- a reasoning model plans the narrative, slide structure, and design theme
- an image model renders each slide as a complete visual composition
- Tracks generation progress in real time with per-slide status.
- Lets users regenerate slides with natural-language edit instructions and undo changes.
- Exports completed decks as landscape PDFs.
- Includes fullscreen presentation mode for live delivery.
- Framework: Next.js 16 + React 19
- AI orchestration: Vercel AI SDK
- Reasoning model provider: DeepInfra
- Image generation provider: Runware
- Database: Drizzle ORM + Neon
- Storage: Cloudflare R2
- Auth: better-auth
- Styling: Tailwind CSS
The high-level product walkthrough lives in docs/feature-overview.md.
It covers:
- input workflow and supported presentation formats
- the two-stage generation pipeline
- editor, retry, undo, presentation mode, and PDF export flows
- storage, auth, and resilience architecture
- Clone the repository:
git clone https://github.com/amxv/presentation-ai.git
cd presentation-ai- Install dependencies:
bun install- Create
.env.localwith the required variables:
# Authentication
BETTER_AUTH_SECRET=""
BETTER_AUTH_URL="http://localhost:3000"
NEXT_PUBLIC_BETTER_AUTH_URL="http://localhost:3000"
# Database
DATABASE_URL=""
# Cloudflare R2
R2_ACCOUNT_ID=""
R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
R2_BUCKET_NAME=""
R2_PUBLIC_BASE_URL=""
# AI providers
DEEPINFRA_API_KEY=""
RUNWARE_API_KEY=""- Push the schema:
bun run db:push- Start the dev server:
bun run devOpen http://localhost:3000.
- The app is built around authenticated usage and per-user presentation ownership.
tmp/is intentionally gitignored for local generated assets and scratch outputs.- If you want the fuller product rationale and UX behavior, start with docs/feature-overview.md.
Apache License 2.0. See LICENSE.