Vibeleaderboard
Index / tool
Visit mdxg.org
Category
Productivity
Rank
No. 1372Tools index

Previous survey · No. 1377 ·

Pricing
Open Source
Type
TOOL
GitHub
362 stars
Date

About

Spec for interactive markdown presentations, designed to extend MDX with slide-style semantics.

What it does

MDXG defines a richer reading model for ordinary markdown while leaving source documents untouched. Headings become virtual pages and outlines. Implementations add page navigation, document-wide search, code presentation, task lists, and optional source editing.

Why it's ranked here

It is strongest as a concrete convention backed by working parser, web, and VS Code implementations. The design addresses long documents without requiring content migration. Its value still depends on other products adopting the specification, since MDXG is not itself a universal viewer.

What's good

Existing markdown needs no configuration, build step, or file splitting. The shared parser extracts pages and heading structure, generates stable slugs, supports duplicate headings, and permits custom code rendering. Viewer and editor conformance levels give implementors a clear scope.

Tradeoffs

MDXG standardizes presentation behavior, not markdown syntax or content organization. It does not replace a documentation site generator. Math, diagrams, and footnotes are encouraged extensions rather than core requirements, so experiences may still differ. The supplied end-user implementation targets VS Code.

How to use it well

Use it when building a markdown reader, editor, documentation surface, knowledge tool, or AI interface that must handle long files well. Start with viewer behavior, then add editing and document links if needed. Choose another system for publishing pipelines and multi-file information architecture.

Technical notes+

packages/parser/src/index.ts uses Marked with footnote and KaTeX support, splits H1 and H2 sections, extracts H3 through H6 outlines, deduplicates slugs, accepts a custom codeRenderer, and applies regex-based HTML sanitization. packages/vscode/src/parser.ts adds Highlight.js, while apps/web/src/lib/parser.ts uses Shiki with light and dark themes. packages/vscode/src/extension.ts implements a custom text editor, persists page, mode, and sidebar state, constrains linked documents, and applies edits through VS Code. packages/vscode/src/webview.ts builds the navigable preview, split editor, search controls, and content security policy. apps/web/src/lib/content.ts loads README.md and SPEC.md into the web reference implementation.

Observed

License
Apache-2.0
Primary language
TypeScript
Packaging
Private pnpm 10.11.0 monorepo root with Turbo build, development, and test scripts
Library interface
Shared framework-agnostic markdown parser package
End-user interface
VS Code custom editor reference implementation
Web interface
Next.js documentation reference implementation
Conformance surface
Read-only Viewer and full Editor levels

Read from README.md, package.json, packages/parser/src/index.ts, packages/vscode/src/parser.ts, packages/vscode/src/webview.ts, packages/vscode/src/extension.ts, apps/web/next.config.ts, apps/web/eslint.config.mjs, apps/web/postcss.config.mjs, apps/web/src/lib/utils.ts, apps/web/src/lib/parser.ts, apps/web/src/app/layout.tsx, apps/web/src/lib/content.ts, apps/web/src/app/not-found.tsx, apps/web/src/lib/page-titles.ts.

What it can do

  • Create interactive markdown presentations

    MDX content with slide-style semanticsInteractive presentation

  • Parse MDX content into slide format

    MDX markdown filesStructured slide data

  • Extend MDX syntax with presentation semantics

    Standard MDX markupEnhanced MDX with slide capabilities

  • Convert markdown to slide-based presentation

    Markdown contentSlide presentation format

  • Render interactive presentation components

    MDX components and slide definitionsInteractive presentation elements

Tags

mdxmarkdownpresentationspec

Tech Stack

Node.js

Media

mdxg

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.