01 · Web · MVP · SEO-driven
Astro + Tailwind + Cloudflare Pages
Static HTML by default, an island only where you need one, and hosting that stays free until you are famous.
Agent fit5/5 MVP · Ship it Reviewed
The stack
- Framework
- Astro (static output)
- Data
- Content collections (Markdown/MDX) in the repo
- Hosting
- Cloudflare Pages
- Also
-
- Tailwind CSS
- React islands where interactivity is unavoidable
- Sitemap and OG images generated at build
Why agents do well here
5/5- Every page is a file and every file is mostly HTML, so the agent can read a route end to end without tracing hydration.
- Content collections give schemas to Markdown, which turns "add a field to every post" into a change the type checker verifies.
- A static build either succeeds or fails; there is no runtime the agent has to reason about after deploy.
Avoid at this tier
- A CMS or database before you have more content than fits in a folder of Markdown.
- Client-side routing or a global state library; you do not have an app yet.
- Server rendering for pages that do not change per request.
How it fits together
Start with src/content/ as the only data source and src/pages/ as the
only router. Islands are the exception, not the rule: if a component does
not need state after load, it does not get client:*.
Folder layout
src/
content/ posts/, docs/ (Markdown + zod schema in content.config.ts)
pages/ index.astro, [slug].astro, sitemap.xml.ts
components/ mostly .astro; a handful of .tsx islands
layouts/ Base.astro with the meta tags done once First five decisions
Lock these in before the agent writes the second feature. Each one removes a choice it would otherwise make differently every time.
- 01 Static output
- 02 Content collections with a schema
- 03 One layout with all SEO meta
- 04 Tailwind with a small token set
- 05 OG images built at deploy time rather than at request time
When to move on
Stay here until the product forces the next tier. You are ready for Growth when:
- Customers notice when something breaks
- More than one person merges to main in a week
- You have a billing provider and a support inbox
- You need to know what changed and why, weeks later