Configuring AstroWEBTheme
Documentation

Configuring AstroWEBTheme

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

Configuring AstroWEBTheme

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

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.