Skip to content

Replace Log4brains with VitePress for ADR Site Generation

  • Status: accepted
  • Deciders: [Development Team]
  • Date: 2026-02-20
  • Tags: dev-tools, doc

Context and Problem Statement

Log4brains, our ADR static site generator (adopted in 20250528), is unmaintained since 2021. Its internal webpack bundler cannot parse modern JavaScript syntax introduced by updated transitive dependencies (glob >= 10, minimatch >= 9). This causes the ADR pipeline build to fail, blocking CI/CD.

We need an alternative static site generator that:

  • Renders our existing MADR markdown files without modification
  • Provides sidebar navigation and search
  • Is actively maintained
  • Integrates with our Vite-based toolchain

Considered Options

  • VitePress
  • Docusaurus
  • Manual fix of Log4brains dependencies

Decision Outcome

Chosen option: VitePress, because it uses the same Vite build tool as our main application, is actively maintained, supports our markdown files as-is, and provides built-in search and sidebar navigation out of the box.

Positive Consequences

  • ADR pipeline builds are unblocked
  • Removes 29 transitive dependencies from log4brains
  • Aligns the ADR site tooling with our existing Vite stack
  • Developer workflow is unchanged (npm run adr:open, npm run adr:new)

Negative Consequences

  • One-time migration effort (~30 minutes)
  • VitePress config file to maintain (minimal)

Pros and Cons of the Options

VitePress

  • Good, because it's built on Vite (same as our app)
  • Good, because it's actively maintained with regular releases
  • Good, because it has built-in local search
  • Good, because it renders standard markdown with no custom syntax required
  • Good, because it has minimal configuration
  • Bad, because it doesn't have a dedicated ADR creation wizard (mitigated by a simple Node.js script)

Docusaurus

  • Good, because it has a large ecosystem and plugin support
  • Good, because it's maintained by Meta
  • Bad, because it uses webpack internally, adding a second bundler to the project
  • Bad, because it's heavier weight than needed for a simple ADR site

Manual fix of Log4brains dependencies

  • Good, because it requires no migration
  • Bad, because log4brains is unmaintained since 2021
  • Bad, because patching internal webpack config is fragile and unsustainable
  • Bad, because it doesn't resolve the root cause (old bundler incompatible with modern JS)