Skip to content

jaredwray/docula

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,386 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Docula

Beautiful Website for Your Projects

tests GitHub license codecov npm npm

Features

  • 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) or docula.config.mjs (JavaScript) file to customize the build process with lifecycle hooks and DoculaConsole logging.
  • Will generate a sitemap.xml, robots.txt, and feed.xml for your site.
  • Automatically generates llms.txt and llms-full.txt for 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.css with no template editing required.
  • Watch mode with auto-rebuild for local development.

Table of Contents

Standalone Binary

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.

Building the Binary

Requires Node.js >= 20 to build (the resulting binary does not need Node.js to run).

pnpm install
pnpm build:binary

This produces a platform-specific binary at dist/docula (or dist/docula.exe on Windows).

What the Build Does

  1. Embeds all built-in templates (modern, classic) into the bundle as base64
  2. Bundles all source code and dependencies into a single CJS file via tsdown
  3. Uses tsdown's built-in exe option to create a Node.js SEA binary (blob generation, injection, and code signing are handled automatically)

Testing the Binary

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/dist

Cross-Platform Binaries

Node.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.

Open Source Examples

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

Code of Conduct and Contributing guidelines.

License

MIT © Jared Wray