Altair docs

Project structure

Where everything lives, and which files you will actually edit.

Altair is a standard Astro project. Most of the time you will only touch the config file, the content folders and your images.

altair-astro/
├── astro.config.mjs        Your domain, the font, code highlighting
├── public/                 Files copied as-is: favicon, share image
└── src/
    ├── site.config.ts      Your name, colors, hero, about text, section titles
    ├── content.config.ts   The rules (schemas) your content is checked against
    ├── content/
    │   ├── projects/       One Markdown file per project
    │   └── posts/          One Markdown file per blog post
    ├── data/               Services, experience, testimonials, external articles (YAML)
    ├── assets/             Portrait, project covers, post covers
    ├── components/
    │   ├── sections/       One component per section of the page
    │   ├── SEO.astro       Meta tags, share cards, structured data
    │   ├── Media.astro     Responsive images
    │   ├── Rich.astro      The *scribble* underline
    │   └── SectionHead.astro
    ├── layouts/Base.astro  The HTML shell shared by every page
    ├── lib/                Helpers for posts and the menu
    ├── pages/
    │   ├── index.astro     The home page: puts the sections in order
    │   ├── blog/           Blog list and post pages
    │   ├── rss.xml.ts      RSS feed
    │   └── robots.txt.ts   robots.txt
    └── styles/global.css   Color tokens, base styles, buttons, post typography

Files you will edit

File or folder What for
src/site.config.ts Almost all text and settings
src/content/projects/ Your work
src/content/posts/ Your blog posts
src/data/*.yaml Services, experience, testimonials, external articles
src/assets/ Your images
astro.config.mjs Your domain, and the font if you change it
public/ Favicon and share image

Files you rarely need to touch

The components, layouts and pages hold the design. You can change them freely, since you own the code, but you don’t need to for normal use. If you do edit them, each section’s styles sit at the bottom of its own component file, so changes stay local to that section.

How content is checked

src/content.config.ts describes the fields every project, post and list item must have. If something is missing or has the wrong type, npm run dev and npm run build stop with a message that names the file and the field. That way a typo shows up while you are editing, not as a broken page after you publish.