ENFR0.1.0-rc.3

Project structure

Where files go and which routes they produce.


acme-docs/
acme-docs/
├── specistry.config.ts     # trusted build code
├── openapi.yaml            # optional contract
├── docs/                   # authored pages (default ./docs)
│   ├── index.md            # → /
│   ├── quickstart.mdx      # → /docs/quickstart
│   ├── images/
│   │   └── first-email.gif
│   └── guides/
│       ├── index.md        # → /docs/guides
│       └── webhooks.md     # → /docs/guides/webhooks
├── changelog/
│   └── v2.json             # authored release notes
└── .specistry/artifacts/   # build output — do not edit

Route rules

  • Segments are lowercase letters and digits joined by single hyphens, up to 80 characters
  • At most four segments deep
  • index names the folder route
  • Only .md and .mdx are read; dotfiles and node_modules are ignored
  • Without docs/index.*, the generated API reference is the homepage

Edge cases

Capitals or underscores in a file name

ROUTE_SLUG_INVALID
✕ FAILS
docs/
docs/Getting_Started.md
✓ FIX
docs/
docs/getting-started.md

File names must already be route slugs.

Same route twice

ROUTE_COLLISION
✕ FAILS
docs/
docs/setup.md
docs/setup.mdx
✓ FIX
docs/
docs/setup.mdx

Both resolve to /docs/setup.

Symlink pointing outside docs

CONTENT_SOURCE_OUTSIDE_ROOT
✕ FAILS
docs/
docs/shared.md -> ../../wiki/shared.md
✓ FIX
docs/
# copy the file into docs/ instead

Sources must stay under the docs directory.

Report an issue with this page on GitHub