Documentation and content site for Alchemy Viewer, built with Astro + Starlight.
- Public docs and pages under
src/content/docs - Blog posts and generated blog archive navigation under
src/content/docs/blog - FAQ and Knowledge Base content with helper scripts for new entries
- Site styling and assets for the Alchemy website
- Node.js 20+
- Yarn 1.x (classic)
Install dependencies:
yarn installStart the dev server:
yarn devNotes:
yarn devruns blog index generation first, then starts Astro onhttp://localhost:4321.yarn startis the same asyarn dev.
Create a production build:
yarn buildPreview the build locally:
yarn preview| Command | Purpose |
|---|---|
yarn dev |
Generate blog indexes, then run local dev server |
yarn build |
Generate blog indexes, then build the site |
yarn preview |
Preview the built site |
yarn blog:generate |
Regenerate blog overview, year, and tag pages |
yarn new:faq "Question" |
Create a dated FAQ draft in src/content/docs/faq/ |
yarn new:kb "Title" |
Create a dated KB draft in src/content/docs/knowledge-base/ |
Create a new FAQ draft:
yarn new:faq "Why does X happen?"Then edit the generated file in src/content/docs/faq/.
Create a new KB draft:
yarn new:kb "How to fix Y"Then edit the generated file in src/content/docs/knowledge-base/.
Create a blog markdown file in src/content/docs/blog/ named:
YYYY-MM-DD-your-title.md
Recommended frontmatter:
---
title: Your Post Title
description: One sentence summary for previews and RSS.
date: 2026-05-30
tags: [release, alchemy]
---After adding or editing posts, regenerate archive pages:
yarn blog:generateyarn dev and yarn build already do this automatically.
yarn blog:generate does the following:
- Scans
src/content/docs/blog/for post files - Excludes reserved files (
index.md,posting-guide.md,authors.yml) and generated folders (years/,tags/) - Rebuilds:
src/content/docs/blog/index.mdsrc/content/docs/blog/years/index.mdand yearly pagessrc/content/docs/blog/tags/index.mdand per-tag pages
Because these files are generated, do not hand-edit blog/index.md, blog/years/*, or blog/tags/* directly.
.
├── public/
├── scripts/
│ ├── generate-blog-index.mjs
│ └── new-entry.mjs
├── src/
│ ├── content/
│ │ └── docs/
│ │ ├── blog/
│ │ ├── faq/
│ │ ├── knowledge-base/
│ │ └── ...
│ └── styles/
├── astro.config.mjs
└── package.json
- Contributor content workflow:
src/content/docs/contributing/content-contributions.md - Blog posting guide:
src/content/docs/blog/posting-guide.md - Build docs for Alchemy viewer source:
src/content/docs/manual/build/index.md