---
title: "Add demo videos to Mintlify, GitBook and Docusaurus docs | tday"
description: "Which docs sections need a video, the embed code each docs platform takes (MDX, HTML, GitBook, a link), and four ways to keep demos in your docs current."
url: https://tday.com/blog/add-demo-videos-to-your-docs
markdown: https://tday.com/blog/add-demo-videos-to-your-docs.md
last_updated: 2026-11-10
---

# How to add demo videos to your docs: Mintlify, GitBook, Docusaurus and more

Which docs sections need a video, the embed code each docs platform takes (MDX, HTML, GitBook, a link), and four ways to keep demos in your docs current.

By the tday team  Published November 10, 2026  7 min read

## The short answer

Record one short narrated demo per docs page and embed its player under each heading. Use the MDX iframe for Mintlify, Docusaurus, Nextra, Fern and ReadMe, and the HTML iframe for plain HTML pages. GitBook, Notion and Confluence take the share link, and show it as a link card for now. A tday embed plays the demo's newest take and can open at a section's first line, so you paste it once and a re-record updates every page that shows it.

## Key takeaways

- Only some docs sections need a video: the ones that show something being done in the app. tday reads your docs and marks them.
- An .mdx page needs the MDX form of the iframe. The HTML form sets style as a string, which breaks an MDX page when it renders.
- GitBook pages take no HTML. Add an embed block with the share link instead.
- Embed the demo, not a file. A tday embed keeps working after a re-record, and its ?c= anchor names a line, never a timestamp.
- There are four ways in: paste it yourself, have your coding agent edit your docs repo, merge a pull request tday opens, or add one script to your docs site. The last two need Growth or above.

![tday's Demos from docs page: 25 sections ready to record across 13 pages of tday's own docs, with each page's sections listed.](https://tday.com/blog/docs-demos-from-docs.webp)

Embedding a video in docs is one line of code. That is not why most docs have no videos. They have none because someone has to record a demo for every page, put each one under the right heading, and do it all again when the product changes.

So this guide covers the easy part, the embed code, and the hard part, the upkeep. The example is tday's own docs: 25 sections across 13 pages.

Watch [Give every docs page its demo](https://tday.com/c5wkyqvd) (2:09), a demo of tday recorded by a coding agent with tday.

## Which docs sections need a demo

A section needs a video when it shows something being done in the app: connecting an account, inviting a teammate, setting up a workflow. A concept page, a reference table or a list of limits is better as text.

tday makes this call for you. It reads your documentation, splits each page into sections and marks the ones that show something being done. You can overrule it on any section. There are three ways to connect your docs:

| Option | What tday reads |
| --- | --- |
| Website address | Your public docs, through their sidebar, `llms.txt` or sitemap |
| Mintlify | Your Mintlify site through its own API, private pages included, kept current as it changes |
| GitBook | Your GitBook site through its API, private pages included |

![The Connect your documentation dialog: a docs address field, or connect through Mintlify or GitBook.](https://tday.com/blog/docs-connect-documentation.webp)

Connect docs by address, or through Mintlify or GitBook.

## Record one demo per docs page

On the Docs page, **Record all pages** gives you a prompt for your coding agent. The ask is one line:

```text
Use tday to make demo videos for our docs: run demo_docs, then record the demos it lists
```

`demo_docs` answers with what is left to record. First comes a new take of each demo whose docs changed since it was recorded. Then one demo per docs page, in your docs' order, with up to 6 sections each. It lists 25 demos at a time.

Your agent starts one demo instance of your app, resets its data to your seed before each demo, and tags every narrated line with the docs section it shows. That tag is what lets an embed start at the right place.

![The Record all pages dialog: an install line, buttons that open Claude Code, Cursor, Codex and VS Code Copilot, and the safety rules the agent records under.](https://tday.com/blog/docs-record-all-pages.webp)

Record all pages: an install line, the editors it opens in, and the rules the agent records by.

## The embed code each docs platform takes

An embed frames the demo's player, which is the share link with `/e/` before the id. Leave out `height`: the frame takes its height from its width.

For MDX pages (Mintlify, Docusaurus, Nextra, Fern, ReadMe):

```jsx
<iframe src="https://tday.com/e/ab12cd34" title="Invite your team" style={{ width: "100%", aspectRatio: "16 / 9", border: 0, borderRadius: 12 }} allow="autoplay; fullscreen; picture-in-picture" allowFullScreen loading="lazy" />
```

For plain HTML pages:

```html
<iframe src="https://tday.com/e/ab12cd34" title="Invite your team" style="width:100%;aspect-ratio:16/9;border:0;border-radius:12px" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen loading="lazy"></iframe>
```

For GitBook, which takes no HTML, an embed block of the share link:

```text
{% embed url="https://tday.com/ab12cd34" %}
```

| Docs platform | Use |
| --- | --- |
| Mintlify, Docusaurus, Nextra, Fern, ReadMe (.mdx) | The MDX iframe |
| A plain HTML site | The HTML iframe |
| GitBook | An embed block with the share link |
| Notion, Confluence | Paste the share link |

The mistake to avoid is pasting the HTML form into an `.mdx` file. It sets `style` as a string, and the page breaks when it renders. tday's **Copy embed** puts the form your site uses first.

GitBook, Notion and Confluence show a tday link as a link card for now, not a player. The card opens the share page, which plays the demo.

![A finished docs demo with its Copy for menu open: HTML, Mintlify, Docusaurus and ReadMe (MDX), GitBook, or a link for Notion and Confluence.](https://tday.com/blog/docs-copy-embed-forms.webp)

Copy embed, in the form your docs take.

## Start the video at the right section

A reader of a page's third section should not have to sit through the first two. A tday embed for a docs section adds `?c=` with the id of that section's first narrated line, so the player opens there:

```text
https://tday.com/e/ab12cd34?c=b4
```

It names the line, never a timestamp. So it still opens in the right place after the demo is recorded again and the timing moves.

## Four ways to put demos in your docs

| Way | Who edits your docs | Plans |
| --- | --- | --- |
| Copy embed | You, by pasting | Every plan |
| Your coding agent | Your agent, in your docs repo, as a diff you approve | Every plan |
| A change to review | tday, as a pull request (Mintlify) or change request (GitBook) you merge | Growth and above |
| One script | Nobody: a script places the players on your live docs | Growth and above |

![The Put demos in your docs dialog with two ways in: Your coding agent, or One script that places every finished demo under its heading.](https://tday.com/blog/docs-put-demos-in-your-docs.webp)

Your coding agent edits your docs repo, or one script places the players on your live site.

**Your coding agent** suits docs kept in a repository. It runs `demo_embed_docs`, puts each snippet on its own line after its heading and changes nothing else. It replaces an older embed of the same video, tells you which headings it could not find, shows you the diff, and commits only if you say so.

**A change to review** suits a site connected through Mintlify or GitBook. tday puts every finished demo under its heading and opens one pull request or change request. Nothing is published until you merge it.

**One script** suits any docs site that can run a script. Add `tday-embed.js` beside `docs.json` in a Mintlify project, an entry in `scripts` in `docusaurus.config`, or a `<script>` tag on every page of any other site. Every finished demo then appears under its heading, and so do the ones you finish later.

## Keep the demos in your docs current

Docs move, and so does the product. tday marks a section **Docs changed** when its text changes after its newest video, and `demo_docs` lists that demo first next time. (Docs connected by address are read again when you choose **Read again**.) A re-record becomes a new version of the same demo, so every embed you pasted plays the new take once it is ready. Until then it keeps playing the last finished one.

One exception: a re-record made from a prompt you sent a developer waits until someone on your team chooses **Publish this take**.

At the top of the Docs page, a card says how many of your videos your docs actually play, such as "7 of 8 videos are in your docs".

That is the docs half of a bigger habit, which is [keeping every demo video up to date](https://tday.com/blog/keep-product-demo-videos-up-to-date). The limits of demos for docs, and when another tool fits better, are on [one page](https://tday.com/docs-demos).

## Other tools and platforms

tday links answer [oEmbed](https://oembed.com) at `https://tday.com/api/oembed?url=<share link>&format=json`, for a platform that builds its own embeds. The answer is a `video` whose `html` frames the player at 16:9, with the poster as `thumbnail_url`.

## Frequently asked questions

### How do I embed a video in Mintlify docs?

Use an iframe written for MDX, with style as an object: style={{ width: "100%", aspectRatio: "16 / 9", border: 0 }}. The HTML form, with style as a string, breaks an .mdx page when it renders. tday's Copy embed gives the MDX form for a Mintlify site.

### How do I embed a video in GitBook?

GitBook pages take no HTML. Add an embed block with the video's share link, for example {% embed url="https://tday.com/ab12cd34" %}. GitBook currently shows a tday link as a link card that opens the share page, which plays the demo.

### Do I have to update my docs every time I re-record a demo?

Not with tday. The embed points at the demo, not at one file, so a re-record becomes a new version of the same demo and every embed plays the new take once it is ready.

### Can an embed start partway through a video?

Yes. A tday embed for a docs section adds ?c= with the id of that section's first narrated line, so the video opens there. It names a line, not a timestamp, so it still lands in the right place after a re-record.

### Which docs pages should get a demo video?

Sections that show something being done in the app, such as connecting an account or inviting a teammate. Concept pages, reference tables and limits usually read better as text. tday marks the sections a demo can show when it reads your docs.

## Sources

1. [Demos for your docs](https://docs.tday.com/docs-demos), tday docs
2. [Share and embed](https://docs.tday.com/sharing), tday docs
3. [Plans and limits](https://docs.tday.com/plans), tday docs
4. [oEmbed specification](https://oembed.com), oEmbed

## Have your coding agent record your first demo

One prompt in Claude Code, Cursor or Codex records a narrated demo of your app. tday voices, styles and renders it, ready for your docs. Free includes 5 saved demos.

[Make your first demo](https://docs.tday.com/first-demo) [See pricing](https://tday.com/pricing)

## Keep reading

- ![tday's Record a demo dialog on the Demos page: Copy prompt, buttons that open Claude Code, Cursor, Codex and VS Code Copilot, and what happens before the agent records.](https://tday.com/blog/record-a-demo-dialog.webp)

    Guides  November 10, 2026  7 min read

    ### [How to record a product demo video with Claude Code, Cursor or Codex](https://tday.com/blog/record-a-product-demo-with-your-coding-agent)

    A step-by-step guide to having your coding agent record a narrated demo of your app with tday's MCP server: the setup, the take, the checks and the edit.

- ![tday's editor with the History panel open on a demo's original take, playing a recorded walkthrough of the docs connection dialog.](https://tday.com/blog/editor-record-again.webp)

    Guides  November 10, 2026  5 min read

    ### [How to keep product demo videos up to date when your UI changes](https://tday.com/blog/keep-product-demo-videos-up-to-date)

    Why demo videos go stale, how to find the ones a release broke, and how to re-record them without breaking a single link or docs embed.

- ![The title card of tday's Make your first demo video: a laptop showing tday's docs setup screen.](https://tday.com/landing/next/hero-poster.webp)

    Comparisons  November 10, 2026  10 min read

    ### [The best demo video tools for developer-led startups in 2026, compared](https://tday.com/blog/best-demo-video-tools-for-developer-led-startups)

    14 demo tools checked against their own sites on November 10, 2026: what each one makes, its free plan, its starting price, and how it keeps demos current.

---

## For AI agents

- Every page on tday.com is available as Markdown: add `.md` to its address (https://tday.com/index.md for the home page), or request it with `Accept: text/markdown`.
- Site index: https://tday.com/llms.txt. Every page in one file: https://tday.com/llms-full.txt.
- Docs: https://docs.tday.com (index for agents: https://docs.tday.com/llms.txt).
- To record a narrated demo of an app from a coding agent, install tday's MCP server once with `curl -fsSL https://tday.com/install.sh | bash`, then ask the agent to record a tday demo.
