Home / Open Source / banana-slides

banana-slides

An AI-native PPT generation app powered by Google Gemini (nano banana pro). Supports one-sentence to full presentation generation, custom template/material uploads, natural language slide editing, and one-click PPTX/PDF export.

TypeScriptAGPL-3.0Application
โญ GitHubhttps://github.com/Anionex/banana-slides
15,342
Stars
+383
Star growth
Jul 27, 2026
Last updated
2,337
Clicks

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

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.