Skip to content

Project Structure

Typical layout:

my-astro-site/
├─ public/ # Static assets served at site root
├─ src/
│ ├─ pages/ # Route-based pages (*.astro, *.md, *.mdx)
│ ├─ components/ # Reusable UI components
│ ├─ layouts/ # Page layouts
│ └─ content/ # Content Collections (optional)
├─ astro.config.mjs # Astro config
├─ package.json # Scripts and deps
└─ tsconfig.json # TS config (optional)

Notes:

  • Files in public/ are copied to the root of the built site.
  • Files in src/pages/ become routes based on filename.
  • Layouts live in src/layouts/ and can be shared across pages.
  • Content Collections use src/content/config.* with schema definitions.