A short guide to editing the site without breaking it.
Install with npm install, then npm run dev. Every page renders from the files in src/content, so a fresh clone shows the full demo site with no configuration.
Astro docs : https://docs.astro.build
Content collections : https://docs.astro.build/en/guides/content-collections/
Long-form entries — posts, projects, case studies — are Markdown under src/content. Short repeated rows — plans, awards, statistics, questions — are JSON under src/content/data. Every list that has an order carries an order field; change the number and the page follows.
Colors, type sizes, spacing and radius are design tokens in src/styles/theme.css, with the responsive steps in src/styles/global.css. Component classes are in components.css, which is generated; put your own corrections in additions.css, which is not.
Everything that moves is driven by a data-anim attribute in the markup, and src/scripts/motion.ts decides how. To retime the whole site, or switch an effect off, edit the EFFECTS map — nothing else needs to change. Every effect is skipped entirely for a reader who has asked for reduced motion.
GSAP ScrollTrigger : https://gsap.com/docs/v3/Plugins/ScrollTrigger/
Set CONTENT_SOURCE to contentful, sanity, strapi, wordpress or shopify and supply that source’s credentials. Field names are mapped in src/loaders/mapping.ts; any collection the source does not provide falls back to the local files, so a half-migrated site still builds.
Replace the demo photography, set SITE.url in src/config/site.ts, and run npm run build. If you deploy to Cloudflare, keep wrangler.jsonc — without it the build switches to on-demand rendering and every image 404s.