New 0.11.2: every reveal.js gap closed, MathJax decks included What's new in 0.11.2

Build it. Rehearse it.
Own the room.

Kadal Deck is the AI presentation app. It has your back from the first idea to the last applause: AI that drafts the slides with you, rehearsal with a voice and a timeline, a teleprompter and your phone as the clicker, and a live room that keeps every seat in it — polls, quizzes, Q&A and reactions.

AI on your side: an assistant drafts the deck with you, a copilot works it with you on stage, and your own agent connects over MCP.
npm create @kadal/deck@latest my-talk
pnpm create @kadal/deck my-talk
yarn create @kadal/deck my-talk
bun create @kadal/deck my-talk

Free for public decks · Paid plans from $4 a month · Open source under the AGPL

Kadal Deck - Build it. Rehearse it. Own the room. | Product Hunt Kadal Deck - Build it. Rehearse it. Own the room. | Product Hunt
decks.kadal.cc · the tour Full screen

That's the tour, a real Kadal Deck that shows every feature. Click through it here, or take the tour full screen.

  • 17themes, light and dark
  • 132Pro backgrounds and layouts
  • 11runtimes on one slide
  • 1,000people in one live room

01 Build it

Start from an idea, not a blank slide

Tell the Assistant what the talk is about and it drafts the deck with you, or hand the job to your own agent. Then make it yours, in the browser or in your editor. Either way it's one deck.mdx you own.

AI that builds with you

An agent drafts the deck, and looks at what it made

The agent outlines the talk, writes one slide at a time, lints the deck, then renders the slides to pictures so it can see what it made and fix it. In the browser, the builder's Assistant does the same on your own AI key.

Set it up with your agent
  • The Assistant Agent

    In the online builder, describe the talk and it drafts the deck, then revises it slide by slide and works through your comments. It checks its own work, and every change is a revision you can undo. On your own key from OpenAI, Anthropic, Google or OpenRouter.

  • Your agent, over MCP MCP

    Claude, Cursor or any MCP client builds it too: outline the talk, add or edit one slide at a time, lint, render slides to pictures to see what it made, and publish.

    npx -y @kadal/deck mcp
  • Agent Skill Agent

    Teaches an agent the syntax, the components and how to pace a talk: one idea a slide, clicks for timing.

    npx skills add kadalcc/deck

Then make it yours

Markdown for the words, components when you need them. Slides split at ---, steps are <Clicks>, and a live poll is one component. The slide you're on reloads as you type.

slides/08-live.mdx
---id: poll--- <p className="sc-eyebrow">Live · polls</p> ## A poll <Poll id="tools"  question="How do you make your slides today?"  options={["A slide app", "Markdown or code",    "Whatever the team uses", "I'm here to find out"]} />
The slide this source makes, from the tour: “A poll”, asking how you make your slides today, first closed and then with the room's answers. The slide this source makes, from the tour: “A poll”, asking how you make your slides today, first closed and then with the room's answers.

Click 0 A slide is Markdown and components; the poll waits, closed, until you open it from the presenter view.

  • Edit right on the slide

    In the builder, double-click a heading, a point or a table cell in the preview and retype it. The change lands in the source as if you had typed it there.

    How
  • A media panel

    Emoji, icons, stickers, shapes, free photos with their credits, GIFs and memes. Search once, drop it on the slide, drag it where it belongs.

    How
  • Your editor, your repo

    One deck.mdx in git. The VS Code extension previews it as you type; a deck you publish from the CLI opens in the builder for a quick edit, and kadal-deck pull brings the edit home.

    How
  • Checks before the day

    kadal-deck check and the Prettier plugin, in your editor or in CI, catch a broken slide long before you're on stage. Every command can answer in JSON.

    How

Made for talks with code in them

Code that steps

Highlighted when the deck is built. {2|4-7|all} walks the lines a click at a time, and magic move morphs one version into the next.

A slide with a TypeScript file, line 2 highlighted and the rest dimmed, next to notes on each step. A slide with a TypeScript file, line 2 highlighted and the rest dimmed, next to notes on each step.

An editor on the slide

Monaco with TypeScript's hovers and errors, types for imported packages included, and diffs side by side.

A slide with two code editors: TypeScript with a zod schema, and a diff of two versions. A slide with two code editors: TypeScript with a zod schema, and a diff of two versions.

Run it, see it

A Run button: JavaScript and TypeScript in a Web Worker with a timeout, Python with Pyodide, the output under the code.

A slide with a code editor, a Run button and the program's output printed below it. A slide with a code editor, a Run button and the program's output printed below it.

Maths

KaTeX, typeset when the deck is built, so a phone in the audience has nothing to render.

A slide with inline and display formulas typeset by KaTeX. A slide with inline and display formulas typeset by KaTeX.

Diagrams

Mermaid flowcharts and sequence diagrams, drawn in the deck's colours and redrawn for dark mode.

A slide with a Mermaid flowchart of how a deck is built and a sequence diagram of the live room. A slide with a Mermaid flowchart of how a deck is built and a sequence diagram of the live room.

Sketches

Excalidraw drawings written in code, converted from Mermaid or loaded from a file, toured one region per click.

A slide with three hand-drawn style diagrams of how a deck is built. A slide with three hand-drawn style diagrams of how a deck is built.

Any framework on a slide

A slide is HTML, so nothing about it needs React. Bring a component from any of these as an island; its runtime loads when its slide arrives. The tour runs all 11 on one slide.

  • React
  • Web components
  • Vue
  • Svelte
  • Solid
  • Preact
  • Qwik
  • Angular
  • Fresh
  • Rust (WebAssembly)
  • Python
How islands work
A slide with eleven small counters, each one a component from a different framework, all running at once. A slide with eleven small counters, each one a component from a different framework, all running at once.

01 Build it · the look

17 themes, each in light and dark

One line of frontmatter switches a whole deck, and T switches it while you present. Three are built in, eight are Kadal's own, and five are ports of well-loved open-source themes.

01 Build it · the Pro library

132 premium backgrounds and layouts

Covers, agendas, KPI boards and pull quotes; confetti, synthwave grids, chalkboards and candlestick charts. 15 genres of art made to sit under real slides, in light and dark, each one line of MDX: background: pro/neon-drift. Hover one to see it move.

15 genres, and more on the way

Browse all 132

Pro On Pro and Team, on deck.kadal.cc hosting and in the hosted builder. Off our hosting, a pro/ name falls back to the theme's own background, so the deck still works.

And free backgrounds in the engine

The open-source engine has its own: aurora, gradient mesh, waves, glows, contours, a turning globe and more. Each is background: name, pauses off screen and holds still for anyone who asked for less motion.

Every built-in background
  • Aurora: Soft northern-lights bands drifting across the slide. Aurora: Soft northern-lights bands drifting across the slide. aurora
  • Gradient mesh: Slow, blurred colour blobs that drift and blend. Gradient mesh: Slow, blurred colour blobs that drift and blend. gradient-mesh
  • Waves: Layered noise waves rolling through the middle. Waves: Layered noise waves rolling through the middle. waves
  • Glows: Large, slow glows of colour behind the words. Glows: Large, slow glows of colour behind the words. glows
  • Topo: Topographic contour lines with index lines. Topo: Topographic contour lines with index lines. topo
  • Globe: A wire globe turning slowly, with a day and a night side. Globe: A wire globe turning slowly, with a day and a night side. globe

02 Rehearse it

Practise out loud until it's yours

The talk you give is the one you rehearsed. Let the deck read your notes back to you, give every slide its time, and find the long parts before the day does.

How rehearsal works
  • Narration AI voice

    The deck reads your notes aloud, step by step, and turns its own pages, so you hear how long the talk really runs. In your browser's voice, or Kokoro, an AI voice that runs right in the browser.

    Read more
  • A plan for every slide

    Give each slide its time. The timer's bar marks this slide's slot in the plan, and a badge says how far ahead or behind you are, so you find the long parts before the day does.

    Read more
  • A teleprompter

    Your notes alone, big, on a screen of their own, following every click. Mirror them for a prompter's glass, or let them scroll by themselves.

    Read more
  • Glossary cards

    List your terms once. The first mention on each slide links to a card with the definition, so neither you nor the room loses the thread.

    Read more
  • Notes that follow your clicks

    Split at each click, the part for this step marked, the next slide beside them. Rehearsing on your machine? Fix a line right in the presenter view and it's written back to your deck.

    Read more
  • Quiz yourself Copilot

    Ask the Copilot in the presenter view to quiz you on your notes, slide by slide, until the talk is yours.

    Read more

03 Present it

Walk on stage with everything at your fingertips

Your notes, your timer and the next slide in front of you, your phone in your hand as the clicker, and a copilot for the moment you lose your place. A built deck runs anywhere a browser does, and looks the same on all of them: every slide is laid out at 1920 × 1080 and scaled, never reflowed.

The tour's “Draw on it” slide being drawn on: a red line, a box, an ellipse and an arrow, with the drawing toolbar below.
Drawing on a slide. Every phone in the room sees the same strokes.
The presenter view on the tour's first slide: the speaker's notes, the next slide, the timer, and the room panel with the join QR.
The presenter view: what you see while the room sees the slide.
  • The presenter view

    The current and next slide, your notes for this click, the timer and its pacing badge, and the room's questions ranked by votes.

  • Your phone is the remote

    Scan a code in the presenter view: a live copy of the slide, your notes and the timer, a pen, and a laser you aim by touch or by moving the phone.

  • The Copilot Agent

    Ask it in the presenter view to jump to the results slide, circle the total, black out the screen or tell you what's in your notes. On your own key.

  • Point, draw, zoom

    Laser, spotlight, pen and shapes, zoom into any point, and blackout. What you draw stays until you erase it, on every screen.

  • Calls and projectors

    A share window without browser chrome, a projector mode that ignores stray input, your camera in a bubble, and a recorder.

  • Offline, and out as files

    A built deck runs with no network. Export to PDF with bookmarks, PNG, and PPTX as pictures or editable shapes, notes attached.

The phone remote works without the hosted service too: kadal-deck relay pairs your phone with a deck on GitHub Pages, Netlify, S3 or any other static host.

04 Own the room

Keep every seat with you

A talk is better when the room is in it. Every published deck comes with a live room: people open a link or scan the QR code on your slide, and their phone follows along, with no app to install and no account to make. They vote, answer, ask, upvote and react, and you see all of it in the presenter view.

Live Presenter view
The presenter view during a talk: the tour's poll slide with its results, the speaker's notes, the next slide, and the room's questions ranked by votes.
The audience's phone, on the Ask tab: the box to ask the presenter, and the room's questions with their upvote counts.
The audience's phone, on the Polls tab: the tour's poll, answered, with the share of votes each option has.
The audience's phone, on the Pace tab: buttons for slower, just right and faster, a raised hand, and the reaction bar.
  • Polls

    Single or multiple choice, and ratings. You open and close them from the presenter view.

  • Word clouds

    One-word answers, sized by how many people gave them.

  • Quizzes

    Timed questions scored by speed, with a leaderboard of nicknames.

  • Questions

    Asked from the seats and upvoted, so you answer what the room wants.

  • Reactions

    Eight of them, floating across the projector and every phone.

  • Pace and hands

    Slower, faster, or a raised hand, counted in your room panel.

  • Drawing that travels

    What you draw on a slide appears on every phone, on that slide.

  • Look back, catch up

    Anyone can wander to an earlier slide, then rejoin you with one tap.

The projector during a talk: the tour's poll slide with its results, and the audience's reactions floating up across it.
The projector while the room votes and reacts. Everything arrives as it's sent.

And afterwards, how the room went

The deck's page counts the views, and on the paid plans the time spent on each slide. On Pro and Team it keeps everything the room did: each session and its peak audience, the questions, the reactions, and every poll and quiz result, ready to export as CSV.

What the analytics show

Rooms hold 25 people on the free plan, and 100, 500 or 1,000 on the paid ones. How the room works

Open source

The engine is yours. The hosting is ours.

Everything one computer can do is free, for good: writing, presenting, the presenter view, export and a static build. The hosted service runs what needs a server, and pays for the engine's work.

The engine · free, AGPL

@kadal/deck on npm

  • The compiler, the runtime, every component, theme, background and renderer
  • A static build that works offline, on any host
  • The room protocol, typed and documented, to run your own
  • A commercial licence if the AGPL doesn't suit your product
terminal
npx kadal-deck build      # dist/ for any static host
npx kadal-deck export     # PDF; --png and --pptx too
npx kadal-deck relay      # the phone remote, anywhere
pnpm exec kadal-deck build   # dist/ for any static host
pnpm exec kadal-deck export  # PDF; --png and --pptx too
pnpm exec kadal-deck relay   # the phone remote, anywhere
yarn kadal-deck build     # dist/ for any static host
yarn kadal-deck export    # PDF; --png and --pptx too
yarn kadal-deck relay     # the phone remote, anywhere
bunx kadal-deck build     # dist/ for any static host
bunx kadal-deck export    # PDF; --png and --pptx too
bunx kadal-deck relay     # the phone remote, anywhere
github.com/kadalcc/deck

The hosted service · from $4 a month

One command to a link with a room

  • The live room, for up to 1,000 people at once
  • Unlisted and passcode decks, and version history
  • Analytics, down to the time spent on each slide
  • API tokens to publish from CI; only changed files upload
terminal
npx kadal-deck login
npx kadal-deck publish    # prints your deck's link
pnpm exec kadal-deck login
pnpm exec kadal-deck publish    # prints your deck's link
yarn kadal-deck login
yarn kadal-deck publish    # prints your deck's link
bunx kadal-deck login
bunx kadal-deck publish    # prints your deck's link
How publishing works

Pricing

Free to start. $4 a month when you need more.

  • Free

    $0 for public decks

    Publish public decks and run a live room for a class or a meetup.

    A room of 25

    AI assistant and copilot, on your key

  • Starter

    $4 a month

    Private decks and a bigger room, with no watermark and no ads.

    A room of 100

    AI assistant and copilot, on your key

  • Team

    $16 a month

    A shared workspace for two, and more seats when you need them.

    A room of 1,000

    AI assistant and copilot, on your key

Early adopter Limited seats

Lifetime Pro, one payment

Pay once and keep Pro on one workspace for as long as we run Kadal Deck. For the people who back it early.

  • Everything in Pro, for good: a room of 500, 25 GB, full analytics with CSV
  • The Pro library and the Studio design skill, with whatever Pro gains later
  • One payment. Nothing renews, ever
  • 30-day money-back guarantee, like every first payment

$99once

Limited seats at $99

Then the price goes up to $149.

Get lifetime Pro

One workspace, not transferable. If it pays for Starter or Pro, that subscription stops at the end of the period you've paid for. Refunds · Terms

Paid plans billed annually; monthly billing is there too. Compare the plans

Questions

Asked before you

Anything else: hello@kadal.cc, or ask on Discord.

Does my audience need an app or an account?

No. They open a link or scan the QR code on your slide, and the room runs in the phone's browser. Nobody signs in.

Do I need the hosted service?

No. The engine is open source: you can write, present, export and build a static site with no account and no network. The hosted service adds the live room, private decks, version history and analytics.

What do I need to start?

Node 20.19 or newer and a text editor. npm create @kadal/deck@latest my-talk copies a starter deck; npm run dev opens it, and the slide you're on updates as you save.

How does it help me rehearse?

Narration reads your notes aloud and turns the pages, so you hear how long the talk runs. Give each slide a time and the presenter view's timer marks where you should be and how far ahead or behind you are. The teleprompter puts your notes, big, on a screen of their own, and the Copilot can quiz you on them.

Can I get my slides out as files?

Yes. kadal-deck export writes a PDF with bookmarks, PNGs, or a PPTX, either one picture per slide or rebuilt as editable text and shapes, with your notes. On paid plans, people viewing a hosted deck also get a PDF download button.

How many people can join a room?

25 at once on the free plan, 100 on Starter, 500 on Pro and 1,000 on Team.

Can a deck be private?

On the paid plans a deck can be unlisted, or locked with a passcode. Decks on the free plan are public, with a small Kadal watermark on the slides and an ad on the first and last.

Which frameworks work on a slide?

React and web components out of the box. Vue, Svelte, Solid, Preact, Qwik, Angular, Fresh, Rust compiled to WebAssembly and Python each come as a package, and each loads only when its slide does.

What does the AI do, and whose model does it use?

In the builder, the assistant writes a first draft from a description, rewrites slides and answers comments; every change it makes is a revision you can undo. In the presenter view, the copilot moves around the deck, spotlights and draws, and quizzes you on your notes. Both run on your workspace's own key from OpenAI, Anthropic, Google, OpenRouter or any OpenAI-compatible API, on every plan. Or bring your own agent, like Claude Code, through the MCP server and the Agent Skill.

What does the AGPL mean for me?

Writing, presenting and hosting your own talks is fine. If you build the engine into a service other people use, the AGPL asks you to publish your changes; if that doesn't suit your product, a commercial licence is available.

Community

Talk shop with us on Discord

Share a deck and get feedback, ask for help, tell us what to build next, and hear about every release first. The people who make Kadal Deck are in there too.

Join the Discord
  • #show-your-deck Share a deck, get feedback
  • #help Stuck? Ask here
  • #feature-requests What should we build next?
  • #changelog Every release, as it ships

Go give a killer talk

Build it, rehearse it and own the room, free with public decks and a room of 25. We'll be with you the whole way.

npm create @kadal/deck@latest my-talk
pnpm create @kadal/deck my-talk
yarn create @kadal/deck my-talk
bun create @kadal/deck my-talk

Send feedback