The documentation site for Charms — programmable tokens on Bitcoin (and beyond). Built with Astro + Starlight and deployed to charms.dev.
This site documents Charms v15. The protocol source lives at github.com/CharmsDev/charms.
Content lives in src/content/docs/ and is organized with the
Diátaxis framework — four sections, each serving a
distinct need:
| Section | Directory | For |
|---|---|---|
| Concepts | concepts/ |
Understanding the ideas behind Charms. |
| Tutorials | tutorials/ |
Learning by doing (start here). |
| How-to guides | how-to/ |
Accomplishing specific tasks. |
| Reference | reference/ |
Looking up exact formats and APIs. |
The sidebar and redirects from old URLs are configured in astro.config.mjs.
Each page is also served as raw Markdown at its .md URL (see
src/pages/[...slug].md.ts).
npm install
npm run dev # local dev server at http://localhost:4321| Command | Action |
|---|---|
npm install |
Install dependencies |
npm run dev |
Start the dev server |
npm run build |
Build the production site to ./dist/ |
npm run preview |
Preview the production build locally |
- Put each page in the section that matches its purpose, not its topic — a single topic (e.g. spells) legitimately appears across tutorials, how-to, concepts, and reference.
- Keep the types distinct: tutorials don't dwell on options, how-to guides don't explain theory, reference stays factual, concepts avoid step-by-step instructions.
- Internal links are root-relative and omit the trailing slash
(
/reference/spell), matchingtrailingSlash: 'never'. - Verify changes build with
npm run buildbefore opening a PR.