# Presenton Plain-Language Wiki > Presenton is a fully self-hosted, open-source AI presentation generator. You give it a topic or a document, it calls an LLM of your choice, and hands back a polished, editable slide deck — no SaaS subscription required. This is a Grok-Wiki source-grounded repository wiki. Use the complete Markdown link when an agent needs the full repo context. ## Context Links - [Complete Markdown wiki](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/llms-full.txt) - [Complete Markdown alias](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc.md) - [Human interactive wiki](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc) - [GitHub repository](https://github.com/presenton/presenton) ## Repository - Repository: presenton/presenton - Generated: 2026-05-24T05:28:45.844Z - Updated: 2026-05-24T05:29:07.660Z - Runtime: Claude Code - Format: Explain Like I'm 5 - Pages: 8 ## Pages - [Explain It Simply: What Is Presenton?](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/01-explain-it-simply-what-is-presenton.md): What this app does in one sentence, the simplest useful analogy, and the three ideas every reader should hold on to before diving deeper. - [Bring Your Own Brain: How LLM Providers Work](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/02-bring-your-own-brain-how-llm-providers-work.md): Presenton does not pick an AI for you. This page explains the 15 supported providers, how the app selects a default model per provider, and what BYOK (bring your own key) means in practice. - [From Prompt to Slides: The Generation Pipeline](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/03-from-prompt-to-slides-the-generation-pipeline.md): Step by step: how a user's topic travels through outline generation, layout selection, per-slide content calls, image fetching, and final assembly — all coordinated by the FastAPI backend. - [What You Can Feed It: Documents, PDFs & Images](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/04-what-you-can-feed-it-documents-pdfs-images.md): Presenton can read uploaded PDFs, Office files, images (via OCR), and plain text to ground the presentation in real content. This page covers the document loader, LiteParse integration, and image generation service. - [Slide Templates & Layouts: How Designs Get Chosen](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/05-slide-templates-layouts-how-designs-get-chosen.md): Presenton ships with named design templates (general, pitch-deck, Education, Code, etc.) and per-slide layouts. The LLM picks a layout index for each slide based on content rules baked into the system prompt. - [The Python Backend: FastAPI Server](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/06-the-python-backend-fastapi-server.md): The FastAPI server is the engine room: it hosts the REST + SSE API, manages the SQLite/Alembic database, runs background export tasks, validates LLM responses, and serves static assets. Every LLM call, slide write, and export goes through here. - [The Browser UI: Next.js Frontend](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/07-the-browser-ui-next.js-frontend.md): The Next.js app is the face the user sees: a dashboard to manage decks, an outline editor, a live slide editor with Tiptap rich text, and an export flow (PDF, PPTX, Google Slides). Routes map directly to stages of the generation workflow. - [The Desktop App: Electron Wrapper](https://grok-wiki.com/public/wiki/presenton-presenton-f6685dc028cc/pages/08-the-desktop-app-electron-wrapper.md): The Electron app bundles the FastAPI backend (as a sidecar process) and the Next.js frontend into a single installable for Mac, Windows, and Linux — no Docker needed. This page explains how the build scripts wire everything together. ## Source Files - `docker-compose.yml` - `electron/app/main.ts` - `electron/build_nextjs_resources.js` - `electron/build.js` - `electron/copy_fastapi_assets.js` - `electron/package.json` - `package.json` - `README.md` - `servers/fastapi/api/lifespan.py` - `servers/fastapi/api/main.py` - `servers/fastapi/api/middlewares.py` - `servers/fastapi/api/v1/ppt/background_tasks.py` - `servers/fastapi/api/v1/ppt/endpoints/ollama.py` - `servers/fastapi/api/v1/ppt/endpoints/presentation.py` - `servers/fastapi/api/v1/ppt/endpoints/theme_generate.py` - `servers/fastapi/api/v1/ppt/router.py` - `servers/fastapi/constants/documents.py` - `servers/fastapi/constants/llm.py` - `servers/fastapi/constants/presentation.py` - `servers/fastapi/constants/supported_ollama_models.py` - `servers/fastapi/enums/llm_provider.py` - `servers/fastapi/services/concurrent_service.py` - `servers/fastapi/services/database.py` - `servers/fastapi/services/document_conversion_service.py` - `servers/fastapi/services/documents_loader.py` - `servers/fastapi/services/export_task_service.py` - `servers/fastapi/services/image_generation_service.py` - `servers/fastapi/services/liteparse_service.py` - `servers/fastapi/utils/llm_calls/generate_presentation_structure.py` - `servers/fastapi/utils/model_availability.py` - `servers/fastapi/utils/outline_utils.py` - `servers/fastapi/utils/ppt_utils.py` - `servers/fastapi/utils/theme_utils.py` - `servers/nextjs/app/(export)/pdf-maker/page.tsx` - `servers/nextjs/app/(presentation-generator)/(dashboard)/dashboard/page.tsx` - `servers/nextjs/app/(presentation-generator)/components/EditableLayoutWrapper.tsx` - `servers/nextjs/app/(presentation-generator)/components/PresentationRender.tsx` - `servers/nextjs/app/(presentation-generator)/outline/page.tsx` - `servers/nextjs/app/(presentation-generator)/presentation/page.tsx` - `servers/nextjs/app/presentation-templates` - `start.js` - `VISION.md`