Skip to content

Instantly share code, notes, and snippets.

@bmaupin
Last active January 26, 2026 14:58
Show Gist options
  • Select an option

  • Save bmaupin/6202020555e6f0c1cfda83791243da15 to your computer and use it in GitHub Desktop.

Select an option

Save bmaupin/6202020555e6f0c1cfda83791243da15 to your computer and use it in GitHub Desktop.
JavaScript documentation frameworks

Summary

  • Docusaurus is mature and the safest choice for most people
    • Comes with a lot of functionality and better abstractions so not much need to write lower-level code
  • Fumadocs has nice defaults, and is very customisable, but requires a lot of writing lower-level React code and lacks a plugin ecosystem
    • Fine if you want the most customisation and don't mind maintaining a lot of low-level React code
  • Starlight is promising but lacks a lot of features and customisation compared to Docusaurus and Fumadocs
    • Fine if you have a simpler site and don't mind Starlight's defaults, or installing community plugins

Docusaurus

Evaluation: 👍 Mature, safe choice

  • +By Facebook
  • +Mature
  • +Docs content can be in any directory
  • Official support for Algolia search (needs to be set up)
    • Typesense provides plugins
    • Community plugins for local search
  • Based on React
  • +A lot out of the box
    • Breadcrumbs
    • Collapsible sidebar navigation
    • Document versioning
    • Multiple sidebars
  • -Directories become "categories" which have inconsistent UX
    • They take the name of the directory (including case) unless explicitly overridden
    • They show in the breadcrumbs but can't be clicked on
  • -No built-in local search

Starlight

Evaluation: ⚠️ Immature, missing a lot of featues compared to other frameworks (although some are available in plugins)

Fumadocs

Evaluation: Most customisable with better defaults but requires a lot more low level work, just one dev

  • +Fully local search using Orama (needs to be configured)
    • Also supports other providers like Algolia
  • +Docs content can be in any directory
  • +React-based but the React framework can be customised (e.g. React Router, Tanstack Start)
  • +A lot out of the box
    • Breadcrumbs
    • Collapsible sidebar navigation
    • Multiple sidebars
    • Local search
  • Sidebar labels can be customised with a function
  • -One developer
  • -More low-level
  • -HTML paths are limited to the underlying React framework
    • For example, path/page1 will be generated as path/page1/index.html, not path/page1.html
  • -No plugin ecosystem

Compared to Docusaurus:

  • +Much more sane defaults
    • Directory names are capitalised with dashes removed
    • Docs with the same name as parent directory don't throw an error
  • +More forgiving of Markdown quirks
  • +Search is local by default
  • +Search works out of the box and requires no additional setup
  • -< and > don't throw errors but they don't show up either
  • -Errors are much less helpful
  • -Just one developer
  • -Customisation often requires lower-level framework code
  • -No plugin ecosystem
  • -Doesn't support path/page1.html; all pages are indexes (e.g. path/page1/index.html)

Compared to Starlight:

  • +Much more out of the box: breadcrumbs, collapsible page nav, multiple sidebars
  • +Much more sane defaults
    • Directory names are capitalised with dashes removed
  • +Much more customisation
  • +Search works even in development
  • -Just one developer
  • -Dev server startup is much slower (maybe because search works in dev mode, unlike Starlight?)
  • -Doesn't support path/page1.html; all pages are indexes (e.g. path/page1/index.html)
  • -No plugin ecosystem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment