Repository layout

storage

Everything DocuCommit stores is a plain file in your repository. There is no database and no index that has to be rebuilt from somewhere else — the tree below is the documentation.

docs/
├── 01-getting-started/
│   ├── index.md            # the section's own landing page
│   ├── overview.md
│   └── install.md
├── 02-guides/
│   ├── index.md
│   └── basics.md
└── _attachments/           # images and files, never treated as pages

Folders are sections

Any folder is a section, and folders can nest as deeply as you like. Numeric prefixes such as 01- are a convention, not a requirement — they keep the order obvious in a file browser, while the published order comes from the sort field in each page’s frontmatter.

index.md is the section landing page

A file named index.md inside a folder is that section’s own page: the thing a reader sees when they open the section rather than a page within it. A section without an index.md still works; it simply has no landing content of its own.

Frontmatter

Each page starts with a small YAML block:

---
title: Getting Started
sort: 1
tags:
  - onboarding
  - internal
---

# Getting Started

The body is ordinary Markdown from here down.
FieldPurpose
titleThe display name, used in navigation and search results
sortOrders pages within their section; lower comes first
tagsFeeds tag filters in search
slugOptional. Pins the URL when you need to preserve an existing link

Two more fields appear in files the editor creates, and you should leave both alone: uuid, which identifies a document across renames, and type, which marks a section’s index.md. The editor maintains them.

Anything else you put in the frontmatter is preserved and ignored.

_attachments/

Images and uploaded files live in a folder named _attachments. It is excluded from the page tree, so nothing inside it is ever rendered as a page. Because attachments sit beside the Markdown in the same repository, a clone captures the whole knowledge base — text and assets together.

Why this matters

The layout is the reason the usual migration questions do not apply here. Backup is git clone. Search across everything is grep. Reading the docs with a script, an LLM, or a coding agent needs no API — point it at a checkout. And if you ever stop using DocuCommit, you keep exactly what you already had.