← the Atlas

The kolu Atlas

reference · budding ·implemented ·

kolu's second brain — an in-repo, MDX-authored knowledge base in a self-contained Astro project, dogfooded in the Code tab.

This doc dogfoods itself — authored as MDX, living in the Atlas it describes (docs/atlas/), rendered to a self-contained docs/atlas/dist/second-brain.html you read in the Code tab. No dev server.

Premise: you already have a second brain — assign roles, don’t build a new system. kolu’s existing stores:

The one routing rule

Substantial, structured artifact — or lightweight, transient node?

Substantial → an Atlas noteLightweight → a GitHub Issue
Proposals, designs, features, analyses, bug investigations, historyQuick bug tickets, tasks, roadmap items, questions

The map

SurfaceWhereRole
Publicthe blog (kolu.dev) + per-release changelogoutward-facing; one post per release
Atlasdocs/atlas/docs/atlas/dist/the working brain; markdown/MDX notes, internal-only

Where it lives: a self-contained Astro project

docs/atlas/ is its own little Astro project — decoupled from the public website/ (different audience + cadence), not published anywhere.

Format — markdown prose + MDX components

Why markdown for proseEvidence
Far fewer tokens — paid on every agent readCloudflare: ~80% fewer tokens md vs html
The CLIs kolu runs prefer itClaude Code & OpenCode send Accept: text/markdown
Renders where it mattersgithub.com renders .md; the Code tab renders it (#1093)

Extending markdown with components

Because this note is .mdx, every component below is a live import from docs/atlas/src/components/ — rendered here, not screenshotted. Props are typechecked at build. The kit is tuned to what docs/plans actually uses.

Inline chips

Small typed references for the prose:

ComponentLiveUsage
<PrLink> — GitHub PR, repo baked in #1095 <PrLink pr={1095} />
<Issue> — GitHub issue #951 <Issue n={951} />
<Commit> — short sha → commit 7ec2566 <Commit sha="7ec2566a" />
<Cite> — a linked file:line (replaces docs/plans’ 110× cite)docs/atlas/astro.config.mjs:14-19<Cite file="…" lines="14-19" />
<Kbd> — a keyboard chord Ctrl +B <Kbd keys="Ctrl+B" />

Block components

<Callout> — a typed box with markdown inside; replaces the old panel/card divs. kind: note · accent · good · warn · danger. Usage: <Callout kind="warn" title="…">body</Callout>.

<Terminal> — a faux transcript. Usage: <Terminal title="…" lines={["$ cmd", "output"]} />; in lines, $ is a prompt + command, # a comment, anything else is output.

kolu — just atlas::build
$ just atlas::build
✓ Completed in 1.59s.
# self-contained dist/ previews in the Code tab

<AtlasMockup> — a one-off, self-contained HTML + inline-SVG prototype, for when a note needs something markdown can’t draw:

atlas / second-brain.html
A note grows up
seedling budding evergreen

<Toc> — a nested, auto-inserted table of contents built from the note’s headings (h3s nest under their h2). The page route renders it (the Contents box at the top — note how Inline chips and Block components sit under this section), so notes never import it.

<Roadmap> + <Milestone> — a status-marked roadmap (done ✓ · now ▸ · next ○) with rich children. Usage: <Milestone status="done" label="Shipped">…</Milestone>; see Roadmap below for the live one.

Bring your own component

A note isn’t limited to the shared kit — but a note-local component lives in the .mdx itself, never as a separate file. Keeping it inline keeps the note self-contained; src/components/ is reserved for components reused across notes. Two ways, both live in this note:

  1. Inline export const at the top of the .mdx (JSX rules: style={{…}}, className). Defined here as Spark, used live: inline.
  2. Raw inline markup — for a true one-off, drop JSX inline with no named component: raw inline JSX.

Both rebuild with just atlas::build and pass ci::atlas-sync like the kit. Promotion path: inline → shared kit, once a component proves reused (and earns scoped styles + typed props as a real .astro).

Proposals — the contributor intake lane

Roadmap


Revised 2026-06-02: a 7-lane adversarial research pass + Hickey/Lowy/ completeness critics flipped HTML-all-the-way → markdown-first and kept the numbered proposal log; then Astro was chosen for rendering, the Atlas extracted into a self-contained docs/atlas/ project, and notes moved to MDX with a typed component kit.