Newansage v0.4.0 is out
Development / Crates

Crates

The cargo workspace and what each crate is for.

cratewhat
crates/ansagethe daemon and its CLI (not published)
crates/ansage-bgpBGP-4 messages and the session state machine, without I/O
crates/ansage-netlinkLinux rtnetlink messages for routes, nexthops, links and addresses

This website

The pages are MDX in docs/ at the repo root; the website that publishes them is in website/ (Bun, MDX, Tailwind, Pagefind, Biome; a static build in website/dist/), code in website/src/.

Number prefixes set the order in the sidebar and are left out of URLs: docs/03-guides/05-drain.mdx is /docs/guides/drain. A top-level folder is a sidebar section, named after the folder (an index.mdx in it sets another title). Links between pages use the URL (/docs/guides/drain), so renumbering a page breaks nothing.

cd website
bun install
bun run dev              # http://localhost:3000
bun run build && bun run start
bun run check:md         # against a running site: llms.txt, .md pages, no leftover JSX
bun run lint             # Biome: lint + format check (tabs, double quotes)
bun run format           # Biome: apply fixes and formatting
  • The config reference is generated from the doc comments in crates/ansage/src/config.rs before every dev and build.
  • Every page is also served as Markdown for agents: /docs/....md, Accept: text/markdown, /llms.txt and /llms-full.txt.
  • A new MDX component needs a Markdown form in website/src/markdown.ts, otherwise the build fails.

Esc to close