# Teasim

This site is built with the three packages it documents. The sidebar on every
reference page is computed by `createNavigation` from `@teasim/astra`; the
chrome around it comes from `@teasim/aster`, and every surface inside it from
`@teasim/astro`.

## The three packages

The split is what they produce, not how big they are:

| Package | What it gives you |
| --- | --- |
| `@teasim/astro` | The elements — 77 families that render markup and carry their behaviour. No stylesheet |
| `@teasim/aster` | The blocks — 15 page-level pieces that arrange those elements into a site's chrome |
| `@teasim/astra` | Everything that computes — navigation, schemas, validation, and the machine-readable routes |

Read [Project structure](/project-structure) for what a scaffolded project
contains and where the boundary falls, [Accordion](/components/accordion) for
what an element page looks like, and
[createNavigation](/references/create-navigation) for the data layer underneath
all of it.

## Built for agents too

Every page here has a markdown twin. Append `.md` to any address, or start from
the index the integration generates:

- [`/llms.txt`](/llms.txt) — every page as a link with its description
- [`/llms-full.txt`](/llms-full.txt) — the whole corpus as one document
- [`/index.md`](/index.md) — this page, as markdown

None of it is hand-maintained. `astra()` derives all three from the same
entries the sidebar is built from, so the corpus can never list a page the site
does not serve.