The drop-in replacement for MkDocs + Material for MkDocs. One package. One command. Beautiful docs. Zero CDN calls.
DocsForge is a self-contained, actively-maintained documentation engine. If you use MkDocs, Material for MkDocs, or are looking for a modern alternative, you're in the right place.
π Documentation | π¦ PyPI | π GitHub | π Migrate from MkDocs
| MkDocs + Material | DocsForge | |
|---|---|---|
| Maintenance | β Actively developed | |
| Installation | pip install mkdocs-material + 15+ plugins separately |
pip install docsforge β everything included |
| CDN calls | Google Fonts, KaTeX, Mermaid loaded from CDN in the browser | π Zero CDN calls β external assets are fetched during the build and served locally, so readers never call a CDN |
| Math rendering | Requires internet or manual KaTeX setup | β KaTeX vendored, works offline instantly |
| Diagrams | Mermaid loaded from CDN | β Mermaid vendored |
| Icons | Downloaded at build time | β 14,000+ icons included |
| Privacy | External font/icon requests | β All assets self-hosted |
| Search | Plugin + external JS | β Lunr.js built-in, works offline |
| PWA / Offline | Not included | β Service worker + offline cache built-in |
DocsForge is everything MkDocs + Material does, in one package, with zero external dependencies.
To migrate an existing MkDocs project automatically, run the one-liner β it
converts mkdocs.yml / properdocs.yml / zensical.toml to docsforge.yml:
macOS / Linux:
curl -fsSL https://qqshi13.github.io/docsforge/migrate.sh | bashWindows (PowerShell):
irm https://qqshi13.github.io/docsforge/migrate.ps1 | iexThe script converts navigation, theme, plugins, and extensions, warns about anything it can't migrate, and prints a report. See the migration guide for the manual, key-by-key walkthrough (also fine for a small site):
- Rename
mkdocs.ymltodocsforge.yml. - Keep the
theme:block as-is (DocsForge uses the built-in Material theme). - Remove built-in plugins and extensions from explicit lists β they are loaded by default.
- Remove KaTeX, Mermaid, font, and icon CDN references β these are vendored.
Then build and preview:
pip install docsforge
docsforge build # builds your site
docsforge serve # live previewDocsForge fetches external assets (such as fonts, icons, and emojis) during the build process and serves them from your site. Readers never contact a CDN, so your docs load fast, work offline, and respect privacy.
No pip install mkdocs-material + pip install mkdocs-awesome-pages-plugin + pip install .... Just:
pip install docsforgeYou get:
- β‘ Engine β ProperDocs fork, vendored and maintained
- π¨ Theme β Material for MkDocs, fully included
- π Plugins β 8 built-in: search, tags, blog, info, meta, minify, privacy, i18n
- π Markdown β 42 extensions pre-configured (pymdownx + python-markdown)
- β Math β KaTeX vendored (
$$...$$works out of the box) - ποΈ Highlighting β Pygments at build time
- π Diagrams β TikZ auto-compiled to SVG, Mermaid built-in
- π Search β Lunr.js client-side full-text search
- π Dark mode β Light/dark toggle with auto system detection
- π± Offline β Service worker caches all assets for PWA support
- π€ Fonts β Self-hosted (privacy plugin downloads Google Fonts locally)
Sensible defaults for everything. No config file needed for basic sites. Add a docsforge.yml when you need customization.
pip install docsforgeRequires Python 3.10+.
# Create a new project interactively
docsforge
# Follow the prompts, then:
cd my-docs
# Start the dev server
docsforge serve
# β http://localhost:8000
# Build for production
docsforge build
# β site/DocsForge looks for config in this priority:
docsforge.yml/docsforge.yamlβ preferredmkdocs.yml/mkdocs.yamlβ legacy fallback (shows migration hint)
site_name: My Documentation
site_url: https://example.com/That's it. All plugins, extensions, and theme settings use sensible defaults.
site_name: My Docs
site_url: https://example.com/
site_author: Your Name
repo_url: https://github.com/username/repo
nav:
- Home: index.md
- Getting started: getting-started.md
- Blog:
- blog/index.md
theme:
name: material
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: Switch to light mode| Command | Description |
|---|---|
docsforge |
Interactive project setup (when no config exists) |
docsforge serve |
Live-reload dev server |
docsforge build |
Static site build |
docsforge --version |
Show version |
docsforge --help |
Show help |
Every built site includes a service worker that:
- Caches HTML pages (network-first, updates in background)
- Caches assets (CSS, JS, fonts, images β cache-first for speed)
- Versioned updates β Each build generates a unique SW hash, forcing browser refresh
- Auto cleanup β Old caches purged when new version activates
No configuration needed. Works offline after the first visit.
DocsForge is the best alternative to: MkDocs, Material for MkDocs, Docusaurus, GitBook, ReadTheDocs, VuePress, Hugo documentation.
Use DocsForge for: Python project documentation, API docs, technical documentation, knowledge bases, blogs, product docs, internal wikis, open-source project sites, static site generation with Markdown.
Features: static site generator, markdown documentation, material design theme, dark mode, offline support, PWA, KaTeX math, Mermaid diagrams, TikZ diagrams, built-in search, tags, blogging, privacy-focused, no CDN for readers, self-hosted fonts, vendored dependencies, zero-config documentation.
See the full changelog in the documentation.
Apache-2.0
DocsForge is built by QQ and Nova βοΈ β because documentation tools should just work.
Install DocsForge Studio from the .vsix attached to the
latest release:
code --install-extension docsforge-vscode-<version>.vsixor install it via the VS Code UI: Extensions view β ... β Install from VSIX.