2.1 KiB
2.1 KiB
Development
When starting the dev server, use background mode:
astro dev --background
Manage the background server with astro dev stop, astro dev status, and astro dev logs.
Documentation
Full documentation: https://docs.astro.build
Prefer the astro-docs MCP server (search_astro_docs) for Astro questions. It searches the current docs, so use it before relying on memory: APIs change between majors (this project is on Astro 7). Fall back to fetching the links below if the MCP is unavailable.
Consult these guides before working on related tasks:
- Adding pages, dynamic routes, or middleware
- Working with Astro components
- Using React, Vue, Svelte, or other framework components
- Adding or managing content
- Adding styles or using Tailwind
- Supporting multiple languages
Project notes
- Node adapter (standalone), started via
server.mjs(adds security headers). Pages are prerendered by default;/registry/…and404useprerender = false. - Harbor data is live:
src/live.config.ts+ live loadersrc/loaders/harbor.ts, queried withgetLiveCollection()/getLiveEntry(). Rendered pages are cached withAstro.cache(memoryCache();REGISTRY_CACHEinsrc/consts.ts). - Harbor config comes from
astro:env/server(allsecret, so read at runtime, never inlined). The Docker image sets a defaultHARBOR_URLenv var from a build arg. Anonymous Harbor returns 401 for single-repo GETs; look repos up via the listing with?q=name=…. - Runtime deps must be listed in
vite.ssr.noExternal(the Docker image ships nonode_modules). - Zod comes from
astro/zod(Zod 4). astro checkneeds TypeScript 6 (TS 7 is unsupported), so keeptypescript@^6.- Run
pnpm check && pnpm buildbefore finishing a change.