Skip to main content
Astro Stack

Astro Stack documentation

Project structure

Explore the files Astro Stack generates and see which selections add to the base project.

Base project

Every project starts with a small, conventional Astro structure. The exact project name replaces my-project.

my-project/
├── src/
│   ├── pages/                   # Routes supplied by the selected project blueprint
│   │   └── index.astro          # Home page and the / route
│   ├── styles/
│   │   └── global.css           # Vanilla CSS or Tailwind entry point
│   └── layouts/                 # Type-specific layouts when required
├── .gitignore
├── astro.config.mjs             # Astro and selected integration settings
├── package.json                 # Scripts and selected dependencies
├── README.md                    # Commands for this configuration
└── tsconfig.json                # Astro TypeScript settings

Marketing, Client, Blog, and Portfolio include focused layouts and routes. Documentation includes an unstyled DocsLayout.astro, while Blank keeps the structure smallest by importing global.css directly from its home page.

Files added by your selections

Astro Stack adds only the files required by the options you select. A generic content setup adds a collection definition and starter entry:

src/
├── content.config.ts
└── content/
    └── posts/
        └── getting-started.md   # .mdx when MDX is selected

Blog and Documentation own their content structures: Blog creates src/content/blog/welcome.md and its listing/detail routes; Documentation creates src/content/docs/getting-started.md, src/content/docs/guides/authoring.md, and docs routes.

Resend or webhook forms add a server route and an environment-variable template:

my-project/
├── .env.example
└── src/
    └── pages/
        └── api/
            └── contact.ts

Developer-experience choices add their files at the project root:

my-project/
├── .vscode/                     # VS Code or Cursor settings and extensions
├── .zed/                        # Zed settings
├── AGENTS.md                    # Codex instructions
├── CLAUDE.md                    # Claude instructions
├── biome.json                   # Biome configuration
├── eslint.config.js             # ESLint configuration
├── .prettierrc.json             # Prettier configuration
└── .prettierignore

Where to make changes

  • Add routes in src/pages. Astro maps these files to URLs.
  • Reuse page shells in src/layouts and keep site-wide styles in src/styles/global.css.
  • Keep Markdown and MDX entries in src/content/posts when you selected a content setup.
  • Add server endpoints below src/pages/api when your deployment supports server output.
  • Update integrations and output settings in astro.config.mjs; use package.json for scripts and dependencies.

Astro Stack does not retain control of these files after generation. They are ordinary project files for you to evolve as your application grows.