Skip to content

Instantly share code, notes, and snippets.

@bmaupin
Last active January 20, 2026 20:35
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
  • Starlight is promising and very fast but lacks a lot of features and customisation compared to Docusaurus and Fumadocs
    • Fine if you have a simpler site and don't mind
  • Fumadocs is fast, has nice defaults, and is very customisable, but requires a lot of writing lower-level React code
    • Fine if you don't mind a lot of tinkering

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
  • -Sidebar is slow to expand and collapse
  • -Site build seems slow
  • -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

Starlight

Evaluation: ⚠️ Fast but expect to need a lot of work to get set up and customise, needs to mature a bit

Fumadocs

Evaluation: Faster than Docusaurus, more configurable than more out of the box than Starlight, but just one dev

  • +Very fast
  • +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 faster!
  • +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
  • -Does not generate .html pages
  • -< 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

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?)
  • -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