Maia docs

Project structure

Where everything lives, and which files you'll actually edit.

Maia is a standard Astro project. For everyday changes you only need the config file, the content folders and your images.

maia-astro/
├── astro.config.mjs          Your domain and the heading font
├── public/                   Favicon and share image, copied as they are
└── src/
    ├── site.config.ts        Your name, color, menu and the text of every page
    ├── content.config.ts     The fields each program, recipe and post must have
    ├── content/
    │   ├── programs/         One Markdown file per program
    │   ├── recipes/          One Markdown file per recipe
    │   └── posts/            One Markdown file per journal post
    ├── data/
    │   ├── testimonials.yaml Client stories
    │   └── faqs.yaml         Frequently asked questions
    ├── assets/art/           Illustrations, portrait and covers
    ├── components/
    │   ├── home/             Sections of the home page
    │   ├── ui/               Cards, FAQ, forms, page header, icons
    │   ├── Header.astro      Logo, menu and booking button
    │   ├── Footer.astro      Footer links and disclaimer
    │   └── SEO.astro         Search and sharing tags, structured data
    ├── layouts/
    │   ├── Base.astro        The HTML shell of every page
    │   └── Page.astro        Layout for simple Markdown pages
    ├── lib/                  Helpers for sorting and formatting content
    ├── pages/                Every page of the site (see below)
    └── styles/global.css     Colors, buttons and typography

Pages

File Address
pages/index.astro /
pages/about.astro /about/
pages/programs/index.astro and [slug].astro /programs/ and one page per program
pages/recipes/index.astro, [slug].astro, category/[category].astro /recipes/, each recipe, each category
pages/journal/index.astro and [...slug].astro /journal/ and each post
pages/contact.astro /contact/
pages/links.astro /links/, the link-in-bio page
pages/privacy.md, pages/disclaimer.md Legal pages
pages/404.astro Shown for addresses that don’t exist
pages/rss.xml.ts, pages/robots.txt.ts RSS feed and robots.txt

How content is checked

src/content.config.ts lists the fields every program, recipe, post, testimonial and FAQ needs. If one is missing or has the wrong type, npm run dev and npm run build stop with a message naming the file and the field, so you catch mistakes while editing rather than after publishing.