Nextra vs Livemark

Updated May 16, 2026

Nextra is a Next.js docs framework with a theme-package architecture. It originated on the Pages Router and has migrated to support the App Router as well. Documentation sites pick a theme (nextra-theme-docs for docs, nextra-theme-blog for blogs) and configure it.

At a glance

AxisLivemarkNextra
Language / runtimeTypeScript / Node 24+TypeScript / Node 18+
UI frameworkReact 19React 18/19 (Next.js)
Build toolVite + TanStack StartNext.js (Turbopack/Webpack)
Content formatMarkdown + MDXMarkdown + MDX
LicenseMIT, self-hostedMIT, self-hosted
Output modelPrerendered static (SSR-capable)Static or SSR (Next.js modes)

Architecture

Livemark is a Vite + TanStack Start CLI: one tool, one config file, content in .md files.

Nextra is a layer on top of an existing Next.js application. Setup involves installing nextra and a theme package, wiring them into next.config.js, and defining navigation in a _meta.json (Pages Router) or meta.js (App Router) file per directory. The theme package owns the entire UI; customization happens through the theme's documented hooks.

nextra-theme-docs is the documentation theme used by Vercel, SWR, Turbo, and many others. It's stable, maintained, and feature-complete for docs use cases.

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. Nextra reads content from pages/ (Pages Router) or content/ (App Router) with routes determined by file paths and _meta.json files alongside.

Content surface

Both tools accept Markdown + MDX with frontmatter and embedded React components.

Nextra supports remote MDX via next-mdx-remote, KaTeX/Mermaid through plugins, and image optimization through Next's <Image> component.

Frontmatter shape differs: Nextra uses title, description, searchable, hide_title, plus per-directory _meta.json for navigation. Livemark uses inline frontmatter for everything (path, order, icon, sidebar, date, tags) and a single livemark.config.ts for site-level navigation.

Feature matrix

CapabilityLivemarkNextra
VersioningNoNo (community workarounds)
Internationalization (i18n)NoYes (via Next i18n + Nextra hooks)
SearchYes (Orama, client-side)Yes (FlexSearch built-in, optional Algolia/Pagefind)
BlogYes (built-in section type)Yes (nextra-theme-blog)
ChangelogYes (section type)No (community plugins)
SitemapYesVia Next.js sitemap.ts
RSSYes (per blog section)Yes (blog theme), via Next routes for docs
ThemesComponent overrides via .livemark/Theme packages; customize via theme config
Custom routes.livemark/routes/ (TanStack Router)Any Next page/route
Standalone CLIYes (livemark build)No (Next.js commands)

Output & deployment

Livemark prerenders every route at build time — output at .livemark/build/client/, deploy to any static host (see Deployment).

Nextra inherits Next.js's output modes. The most common docs setup is full static export (output: 'export'), which produces a static directory deployable anywhere. SSR setups target Vercel or Node hosts.

See also

Created with and Livemark