Flipbook: Self-hosted presentation viewer

Flipbook

A lightweight, self-hosted flipbook generator. Upload PowerPoint, PDF, or Google Slides and get beautiful, SEO-optimized 3D page-curl presentations.

Interactive demo — flip through the pages, try fullscreen, grid view, and search
Download on GitHub

What It Does

Flipbook converts your presentations into interactive, web-based flipbooks with realistic 3D page-curl animations. Each flipbook gets its own SEO-optimized webpage with full slide text indexed for search engines—or you can embed it in any site via iframe.

Built for the Agentic Era

Flipbook includes a built-in MCP server so you can create and manage flipbooks directly from Claude Code, Cowork, or any MCP-compatible AI agent. Upload files, import Google Slides, and publish presentations—all from agentic workflows.

Features

Upload & Convert
PowerPoint (.pptx, .ppt) and PDF files converted to interactive flipbooks
Google Slides Import
Paste a public Google Slides URL and import directly
3D Page-Curl Viewer
Realistic page-turning with keyboard nav, fullscreen, and deep-linking
SEO-Optimized Pages
Full slide text as semantic HTML, Open Graph, Twitter Cards, JSON-LD
Embeddable
One-line iframe embed, or host directly as standalone pages
Grid View
Browse all slides at a glance with thumbnail grid overlay
Full-Text Search
Search across all slide content with instant results
MCP Server
Create flipbooks from AI agent workflows via JSON-RPC over stdio
REST API
Full API with bearer token auth for programmatic access
Admin Dashboard
Upload progress tracking, thumbnails, embed code generation
Secure Admin
bcrypt-hashed password, session auth, API key protection
No Build Tools
Plain Go templates, vanilla JS. No npm, webpack, or node required.

Tech Stack

ComponentTechnology
BackendGo + chi router
DatabaseMongoDB Atlas
ConversionLibreOffice headless (PPTX→PDF) + pdftoppm/poppler (PDF→PNG)
Text Extractionpdftotext (poppler) for search + SEO
ViewerStPageFlip (vendored, MIT license)
FrontendServer-rendered Go templates, vanilla CSS/JS

Quick Start

Prerequisites: Go 1.21+, LibreOffice, Poppler, MongoDB

# Clone the repo
git clone https://github.com/jonradoff/flipbook.git
cd flipbook

# Copy and edit config
cp config.example.yaml config.dev.yaml
# Edit config.dev.yaml with your MongoDB URI

# Set an admin password
make set-password

# Start the server
make run

Visit http://localhost:8080/admin to upload your first presentation.

MCP Integration

The built-in MCP server lets AI agents manage flipbooks programmatically:

  • list_flipbooks — List all flipbooks with status and URLs
  • create_flipbook — Upload a file (base64), wait for conversion
  • import_google_slides — Import from Google Slides URL
  • get_flipbook — Get flipbook details, page URLs, embed code
  • get_flipbook_status — Check conversion progress
  • delete_flipbook — Delete a flipbook and its files
# Register with Claude Code
claude mcp add --transport stdio flipbook-mcp -- /path/to/flipbook/flipbook-mcp-wrapper.sh

License

MIT License — View on GitHub