Docusaurus vs Livemark
Updated May 16, 2026
Docusaurus is an open-source docs framework maintained by Meta. It renders React + MDX content through a Webpack-based build pipeline, ships first-class versioning and internationalization, and has a large plugin ecosystem.
At a glance
| Axis | Livemark | Docusaurus |
|---|---|---|
| Language / runtime | TypeScript / Node 24+ | TypeScript / Node 18+ |
| UI framework | React 19 | React 18 |
| Build tool | Vite + TanStack Start | Webpack |
| Content format | Markdown + MDX | Markdown + MDX |
| License | MIT, self-hosted | MIT, self-hosted |
| Output model | Prerendered static (SSR-capable) | Prerendered static |
Architecture
Livemark wraps Vite, TanStack Start, and React into a single zero-config CLI. Content is loaded by content-collections from globbed .md files, compiled to MDX at build time, and prerendered to static HTML for every route.
Docusaurus is built on Webpack. The runtime is React Router + a Docusaurus core that handles theming, plugins, and content sources. Plugins are first-class — every built-in feature (docs, blog, pages, search) is itself a plugin, and third parties extend the system the same way.
Content layout is unconstrained on the Livemark side: it scans by glob (include/exclude in livemark.config.ts), and each article's URL is set by a path: frontmatter field rather than its file location. There's no required docs/ folder — a project can pull articles from README.md, docs/, blog/, package READMEs, or anywhere else. Docusaurus's docs plugin expects a docs/ directory (configurable via path, but folder-based rather than glob-based).
Content surface
Both tools accept Markdown and MDX with frontmatter. Both let you embed React components inside .md/.mdx files.
Livemark's directives (:::card, :::tip, :::tab, …) are processed by remark plugins shipped in the package. Docusaurus uses MDX components plus an admonition extension for callouts.
Frontmatter shape differs: Livemark uses path, order, icon, sidebar, date, tags. Docusaurus uses id, slug, sidebar_position, sidebar_label, tags.
Feature matrix
| Capability | Livemark | Docusaurus |
|---|---|---|
| Versioning | No | Yes (built-in) |
| Internationalization (i18n) | No | Yes (built-in) |
| Search | Yes (Orama, client-side) | Algolia DocSearch integration |
| Blog | Yes (built-in section type) | Yes (built-in plugin) |
| Changelog | Yes (section type, splits by version heading) | No (community plugins) |
| Sitemap | Yes | Yes |
| RSS | Yes (per blog section) | Yes (for blog plugin) |
| Themes | Component overrides via .livemark/ | Theme packages (@docusaurus/theme-*) |
| Plugins | Vite plugins + remark/rehype | First-class plugin API |
| Custom routes | .livemark/routes/ (TanStack Router) | Plugin-defined routes |
Output & deployment
Livemark prerenders every route to disk at .livemark/build/client/ — see Deployment for host-specific guides.
Docusaurus also prerenders to static HTML, output at build/. The static output works on any of the same hosts (GitHub Pages, Cloudflare, Vercel, Netlify, static hosting). Docusaurus's built-in i18n produces separate output trees per locale.
See also
- Authoring — Livemark's Markdown surface.
- Customization — Livemark's config knobs and component overrides.
- Comparison — back to the index.
Created with ❤ and Livemark