Open source · MIT licensed

Professional slide decks,
built by your AI.

An AI-native design system for the LLM-assisted deck workflow. The design vocabulary ships as AGENTS.md instruction files — not a runtime library. Your LLM reads the instructions, references the example decks, and writes raw HTML directly. Works with Claude, GPT-4o, Gemini, or any capable model.

components 7 chart types 3 cases PDF export CSV → chart bridge Brand lock validator Hot-reload dev server

The three cases

One design system, three audiences.

Each case has its own visual theme, its own component discipline, its own AGENTS.md — and its own example deck you can open right now.

Enterprise
Strategy & consulting decks
Board updates, business cases, GTM plans, 100-day plans, proposals. Consulting-grade structure: Pyramid Principle, action titles, SCR, MECE. Editorial-executive aesthetic — HBR meets McKinsey.
Fraunces · Manrope Deep blue accent -slide showcase High density
$8M
Investor
Startup pitch decks
Seed, Series A, and Series B pitches. Optimised for the canonical investor narrative: problem → solution → traction → market → ask. Bold-modern aesthetic — Linear meets Sequoia.
Bricolage · Sora Vivid orange accent 17-slide showcase Low density
Portfolio
Designer portfolios & case studies
Multi-project portfolios and single-project case studies. Image-led, warm, editorial. Designed to leave an impression rather than ask for a decision.
Newsreader · Instrument Sans Terracotta accent 10-slide showcase Image-forward

How it works

Describe it. Your LLM builds it.

A tight loop between human judgment and AI execution. You supply the story; the agent writes the HTML. Any capable frontier model can drive it.

01
Identify your case and open a session
Open Claude Code in the repo (or paste the relevant AGENTS.md into any capable LLM). Tell it your audience, your recommendation, and which case you're in — enterprise, investor, or portfolio.
02
The agent writes the slides directly
The agent reads the foundation file plus the case overlay, picks the right storyline and components, and writes HTML directly into your deck.html. Raw HTML — no intermediate format, no hallucinated props. Run npm run dev and watch the browser refresh on every save.
03
Iterate, theme, validate, and export
Navigate with arrow keys. Open the case's theme builder to apply your brand colors in one click. If you have spreadsheet data, run npm run csv -- data.csv to auto-generate chart slides. Run npm run brand-check before hand-off to catch any style drift. Hit P or npm run pdf:enterprise for production PDF output via Playwright.

Component library

components, 7 chart types.

Every component is pure CSS and HTML — no external libraries beyond Chart.js for charts. Same class names across all three cases; only the theme tokens change. Copy any <section> block from a showcase deck — it works immediately.

Narrative & structure 9
  • Cover slide
  • Exec summary (Pyramid)
  • Section divider · big-number variant
  • SCR (Situation · Complication · Resolution)
  • Action title + bullets
  • Big stat
  • Insight / quote
  • Closing / next steps
  • Before / after transformation
Analysis & strategy 8
  • 2×2 matrix
  • Strategy House
  • Pyramid summary
  • MECE tree
  • Two-column · three-column
  • Options assessment
  • SWOT analysis
  • Harvey Balls scoring
Charts (Chart.js) 7
  • Line chart
  • Horizontal bar
  • Stacked column
  • Waterfall / EBITDA bridge
  • Cost-benefit (mixed-sign stacked)
  • Cumulative cash flow
  • Tornado / sensitivity
Financial & KPIs 6
  • Financial summary tiles (NPV / IRR / Payback / ROI)
  • Stat grid
  • TAM / SAM / SOM funnel
  • ROI / TCO breakdown table
  • SaaS metrics dashboard (ARR · NRR · CAC:LTV · churn)
  • Pricing & packaging tiers
Project & operations 11
  • Roadmap (phased, gated)
  • Process flow
  • BPMN swimlane
  • System architecture / topology grid
  • Workstream layout
  • Gantt-lite / deployment phasing
  • Gantt task list
  • RAG status dashboard
  • Risk matrix
  • Risk register (scored)
  • Checklist
Stakeholders & people 5
  • Team grid
  • Buyer persona card
  • Stakeholder directory
  • Power / interest map
  • Initiative card grid
Pitch & portfolio 7
  • Comparison table
  • The Ask — simple (investor)
  • The Ask — full (donut + cap table + milestones)
  • Device / UI mockup frames
  • Image gallery
  • Project / case study hero
  • Two-col image + text
Benchmark & intelligence 10
  • Org chart (3-level hierarchy)
  • S-Curve journey (SVG + callouts)
  • Benchmark heatmap matrix
  • Spectrum / continuum matrix
  • Logo scatter plot
  • Investment intelligence table
  • Connected maturity assessment (radar)
  • Case study with outcome numbers
  • Value chain opportunity matrix
  • Sidebar slide (commentary + data)

Get started

Up and running in under 60 seconds.

The decks above work in your browser with no install. Clone the repo for local development, hot-reload, and production PDF export.

Option A · Just browse (no install)
# The decks above open directly in your browser. # Click any "View showcase →" link above.
# Navigate with ← → arrow keys or Space. # Hit P to export PDF via browser print.
# That's it. No install, no build step.
The demo decks showcase every component and chart type. Use them as references when asking Claude to build your deck.
Option B · Full local dev (hot-reload + PDF)
git clone https://github.com/haiwakatta/presentable.git cd presentable
# Install Playwright (for PDF export only) npm install
# Start the dev server with hot-reload npm run dev → http://localhost:3000
# Export a case to PDF npm run pdf:enterprise
Requires Node.js 18+. The dev server watches all files and reloads connected browser tabs instantly — no browser-sync needed. See LOCAL_SETUP.md for the full setup guide.
npm scripts
npm run dev
Hot-reload dev server on :3000
npm run pdf:enterprise
Export enterprise deck via Playwright
npm run pdf:investor
Export investor deck
npm run pdf:portfolio
Export portfolio deck
npm run theme:enterprise
Open enterprise theme builder
npm run csv -- data.csv --chart waterfall
Parse CSV → emit chart slide to stdout
npm run brand-check -- enterprise/deck.html
Validate deck against brand.lock
npm run brand-init -- enterprise/deck.html
Generate brand.lock from deck's :root tokens

CSV & Excel bridge

Spreadsheet data, instantly as chart slides.

Consultants and PMs live in spreadsheets. Drop a .csv into the repo, run one command, and get a fully formatted chart slide ready to paste directly into your deck. No JSON to write, no chart config to figure out.

csv-to-chart.js reads your file, infers the right chart type from column names and value shapes, and emits a complete <section class="slide"> block to stdout. Review it, update the action title placeholder, then paste it in — or pipe directly to append. Detection info prints to stderr so it doesn't contaminate the output.

Eight chart types are supported, covering the full range of consulting and pitch-deck data scenarios. The type is auto-detected from column headers: words like down / up / pessim / optim trigger tornado; cumul triggers cumulative; mixed-sign values with bridge words trigger waterfall. Pass --chart TYPE to override.

Supported chart types
bar Horizontal bars — label, value columns. Ranked comparison, league tables.
column Vertical grouped or stacked — period + series columns. Add --stacked.
line Time-series — period + one or more series. Growth curves, two-scenario comparisons.
waterfall EBITDA bridge — label, value. First and last rows auto-detected as totals.
tornado Sensitivity analysis — label, downside, upside. Sorted by magnitude automatically.
cost-benefit Mixed-sign stacked — label, cost columns, benefit columns. Project economics by year.
cumulative Running total — period, cumulative value. Break-even line auto-detected at zero crossing.
stat-grid CSS stat tiles — label, value, delta, description. Max 4 rows. No Chart.js required.

Excel files: export to CSV first — File → Save As → CSV in Excel, or File → Download → CSV in Google Sheets. Column header names drive auto-detection; see AGENTS.md for the full detection rules.

Usage · npm run csv
# Auto-detect chart type from column names npm run csv -- growth.csv
# Specify type + add slide metadata npm run csv -- ebitda.csv --chart waterfall \ --title "Three drivers move EBITDA $240M→$480M." \ --eyebrow "EBITDA bridge · FY2024–2029" \ --source "Financial model v3.2"
# Stacked column chart npm run csv -- revenue.csv --chart column --stacked \ --title "Enterprise mix shifts to 70% by 2027."
# Pipe directly to append the slide npm run csv -- pipeline.csv >> enterprise/deck.html
# All supported chart types npm run csv -- data.csv --chart [TYPE] bar | column | line | waterfall | tornado cost-benefit | cumulative | stat-grid
Output goes to stdout — review it, sharpen the action title, then paste into deck.html. Or pipe to append directly. The --title, --eyebrow, --note, and --source flags add the standard slide furniture.

AI workflow

The instructions are the product.

Every case ships with an AGENTS.md — the primary artifact. ~3,500 lines of prose telling an LLM how to think about deck-making, which components to use, and which mistakes to avoid. The HTML decks are worked examples it reads alongside them. Designed for Claude Code — runs on any capable LLM.

AGENTS.md
Foundation — shared component reference, design tokens, CLI tools, PDF export
Foundation
enterprise/AGENTS.md
Consulting principles, storylines, component discipline, tone
Enterprise
investor/AGENTS.md
Pitch structure, traction framing, monetisation, the Ask
Investor
portfolio/AGENTS.md
Visual storytelling, case study structure, image pacing
Portfolio
csv-to-chart.js
CLI: parse a .csv and emit a chart slide — 8 types, auto-detects format
CLI
brand-lock.js
CLI: validate a deck against brand.lock for color, font, and style drift
CLI
Works with
Claude Code ✦ Cursor Windsurf GitHub Copilot Claude.ai ChatGPT Gemini

The agent reads the instructions. You give the brief.

In Claude Code, the AGENTS.md files are picked up automatically when you open a session in the repo directory. In Cursor and Windsurf, mirror the content into their respective rules files. In any chat-based LLM, paste the relevant file into the conversation.

The key discipline: always tell the agent the case (enterprise / investor / portfolio), the audience, and the recommendation or conclusion you want the deck to argue. The agent then picks the storyline, selects components, and writes the HTML directly — using the example decks as reference.

The output is raw HTML — not a DSL, not a template abstraction, not generated JSON for a renderer to interpret. Every frontier model has been trained on billions of HTML pages and reasons about it natively. There is no component API to hallucinate, no prop types to get wrong, no build step that can fail. What the model writes is exactly what renders in the browser.

What matters most is context length. The root AGENTS.md is ~1,500 lines; each case overlay adds 300–500 more. Any modern frontier model handles it comfortably.

Read AGENTS.md →

Example decks

Worked examples.

Each deck is a different mix of components — demonstrating that the storyline shapes the spine. Not templates: copy a <section> you need, discard what you don't.

Deck Description Links
Business case (generic) 11-slide business case — the minimal structure for any investment approval.
Warehousing analytics 13-slide worked example for an analytics team in a 3PL. Stat grid, Harvey Balls, tornado, financial tiles, workstreams, scored risks.
Seed pitch — Sundial Health 11-slide seed pitch for a primary-care AI scheduling startup. Dark big-stat opener, early-signal traction, dark team grid.
Case study — Marfa Bookshop 10-slide single-project case study for a brand redesign. Image-heavy, 2×2 detail grid, two-col reflection.
Enterprise showcase -slide library — every component, every chart type, latest additions. The reference deck for enterprise work.
Investor showcase — Loop 17-slide Series A pitch for Loop, a B2B SaaS annotation layer. SaaS metrics, pricing tiers, mockup frames, ask-full.
Portfolio showcase — Ana Rivera 10-slide designer portfolio. Multi-project overview with image gallery, project hero, and case study deep-dives.