Skip to content

docmd@0.8.0 ⚡ (The Parallel Engine Era)

Choose a tag to compare

@mgks mgks released this 11 May 19:04
8629270

docmd logo

docmd v0.8.0 introduces a new parallel build engine, first-class multi-project support, and major improvements to indexing performance. Large documentation sites can now build significantly faster while maintaining low incremental rebuild latency during development.

✨ Highlights

  • Native multi-threaded build engine with WorkerPool support
  • First-class multi-project documentation builds
  • Persistent Git indexing cache with parallel I/O
  • Worker-thread APIs for plugins
  • TypeScript and JSON configuration support
  • Improved Mermaid diagram controls and fullscreen support

⚡ Benchmarks

This release introduces a new parallel build pipeline, persistent worker pools, and AST caching. Large documentation sites now rebuild significantly faster, with incremental performance continuing to improve across subsequent builds.

docmd < 0.7.9

  • 544 pages
  • ~16s rebuild time on every build
image

docmd 0.8.0+

  • 883 pages
  • ~4.3s rebuild time with persistent optimisation
image

🚀 New Features

Parallel Build Engine

docmd now processes pages in parallel using a native WorkerPool architecture. Markdown parsing and processor hooks can run across multiple CPU cores, significantly reducing build times for large documentation sites.

  • Up to 10x faster builds on large sites
  • Persistent workers during development
  • Automatic CPU-aware thread allocation
  • Reduced incremental rebuild latency

Multi-Project Support

You can now build multiple independent documentation projects into a single site output. This is ideal for monorepos and large documentation ecosystems.

  • Shared output directory across projects
  • Independent versioning and i18n contexts
  • Separate plugin configurations per project
  • Supports unified documentation domains

Plugin Worker API

Plugins can now offload expensive tasks to background threads using the new ctx.runWorkerTask() API.

  • Background processing for indexing and parsing
  • Better main-thread responsiveness
  • Shared WorkerPool support across plugins
  • Available across plugin lifecycle hooks

Persistent Git Indexing

The Git plugin has been redesigned with persistent disk caching and parallel I/O processing.

  • Subsequent indexing reduced from ~18s to ~3.5s on large repositories
  • Automatic pruning for deleted or renamed files
  • Parallel Git metadata syncing
  • Reduced redundant git log operations

SEO-Friendly README Routes

README.md files are now automatically treated as directory indexes.

  • /guide/README.md resolves to /guide/ #117
  • index.md remains the primary priority
  • Clean URL generation for README and index routes

Modern Configuration Support

docmd configuration can now be written in TypeScript or JSON.

  • docmd.config.ts with type-safe defineConfig #115
  • Lightweight docmd.config.json support
  • Improved configuration discovery
  • Fully serialisable resolved config output

Note: We will soon migrate all default configs to .json file type with .ts and .js as fallback.

Better Mermaid Diagrams

The Mermaid plugin now provides a cleaner experience for large diagrams.

  • Zoom and pan controls moved to the bottom-left
  • Improved fullscreen navigation #120
  • Better interaction for oversized diagrams

🛠 Developer & Architecture Changes

Worker Pipeline

  • Added dynamic markdown processor hydration inside worker threads
  • Added MD5-based AST caching for unchanged files
  • Added persistent development worker pools
  • Added CPU-aware worker throttling
  • Added dynamic EventEmitter listener scaling for large builds

Plugin System

  • Added onBeforeBuild lifecycle hook
  • Added ctx.runWorkerTask() across plugin contexts
  • Added worker-thread search indexing support
  • Added persistent Git cache infrastructure
  • Added parallel Git metadata processing

Terminal Interface

  • Added stable in-place TUI progress bars
  • Added plugin-level progress rendering support
  • Improved indexing visibility during builds

Infrastructure

  • Added docmd.config.ts and docmd.config.json discovery
  • Added direct utility exports from @docmd/utils
  • Improved config serialisability across worker boundaries
  • Centralised Git root and branch utilities

⚠️ Breaking Changes

Utility Imports

Custom plugins relying on internal core imports must migrate to @docmd/utils.

Serialisable Hooks

markdownSetup hooks must now be serialisable to support worker-thread execution.

🔄 Migration Guide

Most projects can upgrade without configuration changes.

If you maintain custom plugins:

  • migrate internal imports to @docmd/utils
  • ensure markdownSetup hooks are serialisable

See Building Plugins for a full api walkthrough.

📥 Upgrade

npm install -g @docmd/core

Full Changelog: 0.7.9...0.8.0