- No configuration required. Just setup the folder structure with a logo, favicon, and css file.
- Builds a static website that can be hosted anywhere.
- Simple search is provided by default out of the box.
- Support for single page with readme or multiple markdown pages in a docs folder.
- Full TypeScript support with typed configuration and IDE autocompletion.
- For more complex projects easily add a
docula.config.ts(TypeScript) ordocula.config.mjs(JavaScript) file to customize the build process with lifecycle hooks andDoculaConsolelogging. - Will generate a sitemap.xml, robots.txt, and
feed.xmlfor your site. - Automatically generates
llms.txtandllms-full.txtfor LLM-friendly indexing of docs, API reference, and changelog content. - OpenAPI / Swagger support for auto-generating an interactive API reference page.
- Uses Github release notes and file-based changelog entries to generate a changelog with individual pages, pagination, and preview text.
- Uses Github to show contributors and link to their profiles.
- Light, dark, and system theme modes with a built-in toggle.
- Easy styling customization via
variables.csswith no template editing required. - Watch mode with auto-rebuild for local development.
- Getting Started
- Configuration
- CLI
- Templates
- Partial Templates
- Multiple Pages
- Assets
- Styling
- Custom Scripts
- API Reference
- LLM Files
- Announcements
- Changelog
- GitHub Integration
- GitHub Token
- Helper Utilities
- Header Links
- Caching
- Cookie Auth
- Robots & Sitemap
- Standalone Binary
- Open Source Examples
- Code of Conduct and Contributing
- License - MIT
You can build Docula as a standalone binary that runs without Node.js installed. This uses Node.js Single Executable Applications (SEA) to embed the runtime and all dependencies into a single executable.
Requires Node.js >= 20 to build (the resulting binary does not need Node.js to run).
pnpm install
pnpm build:binaryThis produces a platform-specific binary at dist/docula (or dist/docula.exe on Windows).
- Embeds all built-in templates (modern, classic) into the bundle as base64
- Bundles all source code and dependencies into a single CJS file via tsdown
- Uses tsdown's built-in
exeoption to create a Node.js SEA binary (blob generation, injection, and code signing are handled automatically)
After building, test it locally:
# Show help
./dist/docula help
# Show version
./dist/docula version
# Initialize a new project
./dist/docula init -s ./my-site
# Build a site
./dist/docula build -s ./my-site -o ./my-site/distNode.js SEA cannot cross-compile — the binary matches the OS and architecture it was built on. The CI workflow (.github/workflows/build-binaries.yaml) builds for all platforms using a matrix strategy:
| Platform | Runner | Artifact |
|---|---|---|
| Linux x64 | ubuntu-latest |
docula-linux-x64 |
| macOS ARM64 | macos-latest |
docula-macos-arm64 |
| macOS x64 | macos-13 |
docula-macos-x64 |
| Windows x64 | windows-latest |
docula-windows-x64 |
Binaries are uploaded as build artifacts on every run and attached to GitHub releases automatically.
See Docula in action with these open source projects that use it for their documentation:
- Cacheable.org - High-performance caching library for Node.js with layered caching support (Source)
- Keyv.org - Simple key-value storage with support for multiple backends (Source)
- Docula.org - Docula's own documentation site, built with Docula (Source)
Code of Conduct and Contributing guidelines.
MIT © Jared Wray