Configuring AstroWEBTheme
Site config, navigation, footer, collections and security: which file controls what.

All project configuration lives in src/site/config/. Each file controls one concern, so a change stays small and reviewable.
Configuration files
| File | Controls |
|---|---|
info.mjs |
Site name, title, description, URL, contact details |
header.mjs |
Header navigation, dropdowns and call-to-action buttons |
footer.mjs |
Footer columns, legal links and credit line |
pages.mjs |
Pages and collections: base path, labels, layouts, feeds, footer visibility |
content.mjs |
Content source per collection: static, live (D1) or hybrid |
security.mjs |
Content Security Policy and allowed script sources |
functions.mjs |
Optional features such as authentication |
analytics.mjs, ads.mjs, consent.mjs |
Consent-aware analytics and advertising |
Navigation
Edit siteNav in header.mjs. An item is either a link or a dropdown with a content list. Footer columns are listed in row1.sections in footer.mjs; the policy links in row2 come from the pageKeys you choose.
Collections
Each collection in pages.mjs sets its base path, whether it appears in the footer or sitemap, and its list and detail layouts. Set lock: true on a collection or page to stop scaffold commands from overwriting it.
Content sources
content.mjs chooses where each collection reads from. A hybrid collection merges static entries with published D1 rows. See Live Content With D1 and R2.
Security
Policy values are set in security.mjs and sent as real response headers. See Response-Header CSP for Client Sites.