Skip to main content

dokk logo

dokk

A tiny static docs generator in pure Python.
Folders of Markdown in, a fast static docs site out. No Node.

Live demo and docs · Quick start · Components · Themes · Theme showcase · PyPI

A dokk site: sidebar, page actions, a file tree and the on-this-page list

Quick start

pip install "dokk[serve,search]"
dokk init --root my-docs
dokk serve --root my-docs     # http://127.0.0.1:8002/

dokk build writes plain HTML to .dokk/build/, ready for GitHub Pages or any static host. dokk init also creates a workflow that publishes it on every push.

What you get

  • A sidebar built from your folder tree, or arranged in dokk.toml.
  • Markdown with tables, footnotes, task lists, definition lists and heading anchors.
  • Components as Markdown directives: callouts, tabs, cards, steps, file trees, badges and more.
  • Code highlighting at build time, in light and dark.
  • Full-text search with Pagefind, fully static.
  • Eight Basecoat styles and the shadcn/ui colors, vendored: no CDN, no third-party requests.
  • dokk serve with live reload, and dokk check for broken links and anchors.
  • A sitemap, a Markdown copy of every page and optional llms.txt, for search engines and AI tools.

The documentation is built with dokk from the docs/ folder in this repository.

Development

Install everything (dev tools, dev server, search, browser tests):

uv sync --all-extras          # .venv with the exact versions from uv.lock
uv run playwright install chromium   # once, for the browser tests in tests/e2e

Run tools through make (below) or activate .venv. Plain uv sync without --all-extras removes the extras again.

Run the checks:

make lint        # all of the below
make format      # ruff: fix lint issues, then format
make typecheck   # ty
make test        # pytest

Serving the sites

The repo has two sites. Without --root, dokk uses the current folder.

Site What it is Serve it with
docs/ dokk's own documentation dokk serve --port 8001 --search
examples/basic/ Acme Widgets, a fictional site that uses every feature and component; the fixture for the tests dokk serve --root examples/basic --port 8002 --search

dokk serve rebuilds on every change and reloads the browser. It includes draft pages and ignores the base path; --search also rebuilds the search index.

To look at a production build instead:

dokk build --root examples/basic
python -m http.server 8002 -d examples/basic/.dokk/build

Releasing

The version comes from the git tag (hatch-vcs); there is nothing to bump. Push a tag such as v0.0.2 and .github/workflows/release.yml builds the wheel and sdist and tests the wheel. Once the pypi environment is approved, it publishes to PyPI and creates the GitHub release. CI tests Linux, macOS and Windows on every push.

Vendored assets

Basecoat and the shadcn/ui color themes are vendored; see VENDORED.md. Update them with python scripts/vendor_basecoat.py and python scripts/vendor_shadcn_themes.py (standard library only, no Node).

Metadata

Release files for dokk 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dokk 0.0.3
File Size Uploaded
dokk-0.0.3.tar.gz 262.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dokk 0.0.3
File Interpreter ABI Platform
dokk-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 567.1 kB

Release files / dokk-0.0.3.tar.gz

Download URL dokk-0.0.3.tar.gz
Size 262.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c589400f98e7cc8b40bf4d5f5392937fe301580130437d732c0d58f354b8dbaa
BLAKE2b-256 checksum
How to use checksums
51e05be5110d5b6408b0a4ec17b22121af4a522577b2c7109b4ff0402d70c038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release files / dokk-0.0.3-py3-none-any.whl

Download URL dokk-0.0.3-py3-none-any.whl
Size 304.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd6c0deaf1165fd1bab1de2bb475091d61cdd7cbe3b060607b1e847af46db061
BLAKE2b-256 checksum
How to use checksums
9a61f5c16e9b8101345816e7186260e397a7392ee2cac00852540037f0b489ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.

Transparency log

Release history Release notifications | RSS feed

0.0.4

2 release files

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page