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.
npm install @teasim/astro @teasim/aster @teasim/astrayarn add @teasim/astro @teasim/aster @teasim/astrapnpm add @teasim/astro @teasim/aster @teasim/astrabun add @teasim/astro @teasim/aster @teasim/astraThe 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 for what a scaffolded project contains and where the boundary falls, Accordion for what an element page looks like, and createNavigation 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— every page as a link with its description/llms-full.txt— the whole corpus as one document/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.