Astro file-based routing:
index.astro → /about.astro → /about[page].astro → dynamic routesblog/[...slug].astro → catch-all for blog postsEach page typically:
BaseLayout from @layouts/BaseLayout.astro@components/@config/<BaseLayout title="" description="">---
import BaseLayout from "@layouts/BaseLayout.astro";
import SomeComponent from "@components/SomeComponent.astro";
import someData from "@config/someData.json";
---
<BaseLayout title="Page Title" description="Meta description">
<SomeComponent />
</BaseLayout>
| Page | Purpose |
|---|---|
index.astro | Homepage with hero, gallery, CTA |
about.astro | Bio, fast facts, personal info |
speaking.astro | Speaking engagements, talks |
contact.astro | Contact form |
blog/index.astro | Blog listing |
blog/[...slug].astro | Individual blog posts |
Monica’s personal site - pages should feel warm and conversational:
container, mx-auto, pt-36 md:pt-44h1, h2, description classes defined globallytext-primary-600, bg-primary-*