banana-slides ๐
Vibe your PPT like vibing code.
A native AI-powered PPT generation application built on top of Google Gemini (nano banana pro), aimed at becoming the true "Vibe PPT" experience. It lowers the barrier to creating beautiful, professional presentations for everyone.
GitHub: https://github.com/Anionex/banana-slides
License: MIT | Stars: 480+ | Forks: 72+
๐งฉ Project Background
Traditional AI PPT generators struggle to balance speed and quality. Common issues include:
- Only preset templates available โ no flexible style control
- Low freedom for iterative editing across multiple rounds
- Homogeneous outputs that all look the same
- Low-quality, generic materials
- Poor text-image layout, lacking design sense
The emergence of Google Gemini (nano banana pro) changed the equation. Its image generation capability can accurately render all requested text content while faithfully following a reference image style โ making it ideal as the core engine for a native "Vibe PPT" application.
โจ Key Features
1. Three Creation Pathways
- From Idea: Input one sentence or a rough concept โ auto-generate full outline + slide descriptions + final slides
- From Outline: Paste an existing outline โ AI expands into per-page detailed descriptions
- From Description: Provide per-page descriptions directly โ instantly generate slide images
2. Natural Language Editing
- Verbally instruct modifications to individual slides or selected regions within a slide
- Drag-and-drop reordering of outline cards
- Vibe-style oral editing for outlines and page descriptions
3. Smart Material & Template Support
- Upload any reference image, screenshot, or old PPT slide as a style/content reference
- Upload documents (PDF, DOCX, MD, TXT) โ backend auto-parses text and images using MinerU + multimodal LLM
- Auto-extract image links embedded in Markdown text
4. High-Quality Slide Generation
- Powered by Gemini image generation: high-definition, style-consistent slide designs
- Parallel processing for faster multi-page generation
5. Export Options
- PPTX: Standard PowerPoint format
- PDF: For quick sharing and presentation
- Default 16:9 aspect ratio, works on all major displays
๐ ๏ธ Tech Stack
Frontend
| Technology | Purpose |
|---|---|
| React 18 + TypeScript | UI framework |
| Vite 5 | Build tool |
| Zustand | State management |
| React Router v6 | Routing |
| Tailwind CSS | Styling |
| @dnd-kit | Drag-and-drop |
| Axios | HTTP client |
Backend
| Technology | Purpose |
|---|---|
| Python 3.10+ / Flask 3.0 | API server |
| Google Gemini API | AI image & text generation |
| SQLite + Flask-SQLAlchemy | Data persistence |
| python-pptx | PPTX export |
| Pillow | Image processing |
| ThreadPoolExecutor | Concurrent slide generation |
| uv | Python package management |
๐๏ธ Architecture Overview
banana-slides/
โโโ frontend/ # React + TypeScript SPA
โ โโโ pages/ # Home, OutlineEditor, DetailEditor, SlidePreview, History
โ โโโ components/ # Shared UI components, outline/preview widgets
โ โโโ store/ # Zustand state management
โ โโโ api/ # Axios client + endpoint definitions
โ
โโโ backend/ # Flask REST API
โ โโโ models/ # Project, Page, Task, Material, Template, ReferenceFile
โ โโโ services/ # AI service (Gemini), file parser, export, task manager
โ โโโ controllers/ # Route handlers for all resources
โ โโโ utils/ # Response helpers, validators, path utils
โ
โโโ docker-compose.yml # One-command deployment
โโโ pyproject.toml # Python project config (uv managed)
๐ Quick Start
Docker Compose (Recommended)
git clone https://github.com/Anionex/banana-slides
cd banana-slides
cp .env.example .env
# Edit .env and add your GOOGLE_API_KEY
docker compose up -d
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
From Source
Backend:
uv sync
cp .env.example .env # configure GOOGLE_API_KEY
cd backend && uv run python app.py
Frontend:
cd frontend
npm install
npm run dev
๐ฏ Use Cases
- Non-designers: Zero-barrier beautiful PPT creation without design experience
- PPT professionals: Rapid layout inspiration from AI-generated designs
- Educators: Convert teaching content into illustrated lesson slides
- Students: Quickly complete presentation assignments, focus on content not formatting
- Business professionals: Fast visualization of proposals and product pitches
๐ License
MIT License โ free for personal and commercial use.