Portfolio
One build, shown in full technical detail.
Our reference build is GreenCal Pressure Washing, a Southern California home-service business: 117 published pages, statically rendered, with validated local-business structured data, a live llms.txt and Markdown corpus, and IndexNow submission wired into deploys. Below is how it is put together, with every fact attributed to its source.
What it looks like
A client build, not a template.

The facts
What is in the build.
117pages
Pages published
Phase 0 audit, 3 Nov 2026, read-only crawl of the live sitemap
- Structured data
- HomeAndConstructionBusiness JSON-LD, with county and city entities for every service area
- Source: Phase 0 audit, 3 Nov 2026
- AI-readable layer
- llms.txt and sitemap.md both live, with robots.txt pointing LLM crawlers at them
- Source: Phase 0 audit, 3 Nov 2026, both returned HTTP 200
- Build and hosting
- Static Astro build on Vercel, served from the edge
- Source: apps/greencal-website in this monorepo; Server and cache headers confirmed in the audit
- Page weight and server response
- ~35 kB avg page weight, 60–120 ms server response
- Source: Same figure published in the home-page proof strip, from a 15-page random sample and 5 timed requests, 3 Nov 2026
- Indexing
- IndexNow submission runs automatically after a successful production deploy
- Source: GitHub Actions workflow and scripts/indexnow-submit.mjs in this monorepo
- Transport security
- Valid certificate with HSTS, max-age two years
- Source: Phase 0 audit, 3 Nov 2026
How it is organised
117 pages, built to stay crawlable, not just published.
Every page carries a canonical URL and is listed in the XML sitemap, so a crawler finds one authoritative version of each page rather than guessing between duplicates. The HomeAndConstructionBusiness structured data carries a county and city entity for every service area the business serves, which is what lets a search engine or an AI assistant answer "does this business work in my city" without having to infer it from prose. The same static build that keeps the site fast is what keeps that structure consistent across all 117 pages. There is no template drift because there is no template that can silently change underneath a published page.
AEO and GEO
The same AI-readable layer this site ships.
- llms.txt: live, returns HTTP 200, points a crawler at the content map
- sitemap.md: a Markdown content map alongside the HTML sitemap
- Validated JSON-LD: HomeAndConstructionBusiness, with entities for every service area
- IndexNow: submitted automatically after every successful production deploy
What is not on this page
What is not on this page, and why.
We show the build, not results. No traffic, ranking, lead or revenue figures appear here because we hold no verified performance data for this site. If that data is ever shared with us, it goes on this page with its source named, or it does not go on at all.
What we would change next time.
We built this site's AEO/GEO layer and its answer-first copy structure after the GreenCal build, then applied the lesson here, on our own site, from the first commit. If we started GreenCal again today, that layer would ship on day one instead of being added afterward.
Next step
Tell us what happens when someone finds you.
A discovery call is a conversation, not a pitch. We look at your site and your search and AI visibility while you are on the call, and tell you what we would fix first and what we would leave alone. You keep that assessment either way.