Inside of your Astro + Starlight project, you'll see the following folders and files:
.
├── docs/ # Internal project and maintenance guides
├── public/
├── src/
│ ├── assets/
│ ├── content/
│ │ └── docs/ # Content published on the website
│ └── content.config.ts
├── astro.config.ts
├── navigation.config.ts
├── package.json
└── tsconfig.json
Starlight looks for .md or .mdx files in the src/content/docs/ directory. Each file is exposed as a route based on its file name.
Images can be added to src/assets/ and embedded in Markdown with a relative link.
Static assets, like favicons, can be placed in the public/ directory.
The site uses Astro 7.4.x and Starlight 0.42 with Node.js 24.13.1, pinned in
.node-version and Volta. The upgrade preserves Unified Markdown rendering,
the existing content schemas, sidebar organization and collapse behavior,
reverse-chronological sorting, and previous/next navigation.
Unused dependencies were removed after checking code and configuration references. Navigation regression tests were added, and pull requests now run a validation-only CI workflow.
Validation passed: 168 generated pages, all internal links valid, two navigation tests, and Astro type checking with no errors. Routes, sidebar output, and parsed content were compared against the Astro 5 baseline. Local browser testing was also completed by the maintainer.
Documentation for developing and maintaining this repository is stored in
docs/. It is separate from src/content/docs/, which holds
content published on the website.
- Local setup
- Local Decap CMS testing
- Conference map gallery maintenance
- Data Citation Generator overview
- Data Citation Generator autofill crosswalk
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run decap |
Starts the Decap local backend proxy |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run test:navigation |
Check navigation in the built site; run after build |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
For local Decap CMS evaluation, use two terminals:
- Run
npm run dev - Run
npm run decap - Open
http://localhost:4321/admin/index.html
The exact admin URL matters here: use /admin/index.html during local development.
See Local Decap CMS testing for the full workflow.
All primary navigation (desktop tabs, mobile drawer, and sidebar groupings) is defined in one place:
navigation.config.ts— each entry inNAV_GROUPSdescribes a top-level section (id,label,landingpage, and the sidebar items that belong to the group). Update this file when you add or remove a section.astro.config.tsconsumesNAV_GROUPSto build Starlight’s sidebar automatically; no manual edits needed here unless you change config structure.- UI components (
src/components/HeaderWithCompactSearch.astroandsrc/components/SidebarWithFilters.astro) import the same data, so they reflect changes instantly.
Typical update flow:
- Add your new docs pages under
src/content/docs/…. - Edit
navigation.config.ts:- Add or update a
NAV_GROUPSentry. - Use
kind: 'autogenerate'to point at a docs directory, orkind: 'group'/kind: 'link'for manual lists.
- Add or update a
- Run
npm run astro -- checkandnpm run devto verify the header tabs, mobile drawer, and sidebar all show the new structure.
Need a quick reference? Leave a comment near your new NAV_GROUPS entry noting the related content directory.
Check out Starlight’s docs, read the Astro documentation, or jump into the Astro Discord server.