New offering · Astro + headless CMS

A website that loads in under a second — and shows up in Google and ChatGPT.

Custom-built on Astro and a headless CMS. Engineered for speed, structured for AI, owned by you — not by a page builder.

Trusted by teams at

  • 3M
  • Jostens
  • Paramount Pictures
  • McGraw Hill
  • United Nations
  • Harvard Business School
  • Hudson's Bay Company
  • Glowforge
  • American Red Cross
  • Shelter Insurance
/ 01 — The problem

The default stack was never going to be fast.

Most marketing sites are built on rendering models that were designed for an internet that doesn't exist anymore. Here's what we keep seeing when we audit them:

Squarespace / Wix

  • Hard limits on schema markup, meta control, and crawl directives
  • Vendor-locked CMS — your content lives in their database, not yours
  • Mediocre Core Web Vitals by default; JavaScript bloat you can't remove
  • Generic templates that look like ten thousand other sites

WordPress + Elementor / page builders

  • Render-blocking JS and CSS in the megabytes; Cumulative Layout Shift baked in
  • Plugin sprawl — every new feature adds another security surface area
  • No clean separation between content and presentation; migrations are painful
  • Slow at scale; expensive caching/CDN setups required just to feel fast

DIY React / Next.js without a strategy

  • Client-side rendering kills first paint and ruins SEO unless you SSR/SSG correctly
  • Hydration overhead means slow LCP and poor INP
  • No content model — engineers become the bottleneck for every copy change
  • Often over-engineered for a marketing site (you don't need React on every page)
/ 02 — What we build instead

A modern stack built for speed and editability.

Your team controls content; we handle the engineering.

01

Edge delivery

Pre-rendered HTML served from a global CDN. First byte under 100 ms anywhere your customers live. Netlify, Cloudflare Pages, or Vercel — we choose with you.

02

Astro build pipeline

Static-site generation by default. Islands of React, Vue, or Svelte only on interactive components. Optimized images at build time (AVIF + WebP, explicit dimensions, lazy below the fold).

03

Headless CMS (Sanity)

Structured content your team edits from any browser. Real-time collaboration, image pipeline, GROQ querying, generous free tier. We propose Sanity by default — we'll evaluate Storyblok, Payload, Contentful, Hygraph, or Decap if your situation calls for it.

04

Owned data + integrations

Your content lives in your CMS, your repo, your accounts. HubSpot, Salesforce, Marketo, Segment, GA4 — wired in as first-class citizens, not third-party scripts that tank performance.

/ 03 — The differentiator

Built for both search engines and the LLMs that quote them.

AI Overviews, Perplexity, ChatGPT Search, and Gemini don't read your site the way Google did in 2015. We build for the way they read it in 2026.

01

Semantic HTML, no DIV-soup

Real <article>, <section>, <nav>, <main>, <header>, <footer>. LLMs and crawlers parse structure before content.

02

Disciplined heading hierarchy

One H1 per page. H2s framed as questions where it reads naturally — directly extractable into AI Overview answers.

03

JSON-LD schema on every page

Organization, WebSite, BreadcrumbList, Service, FAQPage, Article, LocalBusiness — chosen per page type, validated against Google's Rich Results test.

04

llms.txt + llms-full.txt at root

Explicit manifests telling Claude, GPT, Gemini, and Perplexity what your site is about and which content is canonical.

05

Robots policy that welcomes AI crawlers

GPTBot, ClaudeBot, PerplexityBot, Google-Extended — allowed by default, with per-path control when you need it.

06

Content structured for extractive answers

Short lead paragraphs that summarize. Definition boxes. FAQ blocks. Tables where comparisons live. Exactly what LLMs reach for first.

07

Open Graph + Twitter / X cards on every page

Hand-tuned share images, not auto-generated. Strong social referrals lift AI training signal too.

08

Canonical clarity

One canonical per page, no conflicting signals. Paginated archives use rel=next/prev where appropriate.

/ 04 — Performance commitments

These aren't aspirations. They're the contract.

If your site doesn't hit these numbers at launch, it's not done. Measured on a cold cache, slow 4G simulation, mobile-first.

Lighthouse Performance
≥ 95
Mobile + desktop, cold cache, from a slow 4G simulation.
Lighthouse SEO
100
No exceptions — this is table stakes.
Lighthouse Accessibility
≥ 95
WCAG 2.2 AA as the floor. Real focus states, real alt text.
Lighthouse Best Practices
≥ 95
HTTPS, no console errors, modern image formats.
LCP (Largest Contentful Paint)
< 1.0 s
Hero image preloaded, fonts subset and self-hosted.
CLS (Cumulative Layout Shift)
< 0.05
Explicit width/height on every image. No content-reflow on load.
INP (Interaction to Next Paint)
< 200 ms
Minimal JS. No hydration overhead. Interactivity feels native.
Total Page Weight (median page)
< 200 KB compressed
Down from typical WP+Elementor pages weighing 2–5 MB.
/ Live proof

Don't take the commitments on faith. This page just hit them.

Measured from your actual session on this page, right now. Values update live as the browser reports them. Compare to the contract we sign with every build.

Largest Contentful Paint Target: < 1.0 s
s
Measuring… How fast the largest visible element rendered
Cumulative Layout Shift Target: < 0.05
Measuring… How much the layout jittered while loading
Interaction to Next Paint Target: < 200 ms
ms
Interact to measure How fast the page responds when you click, tap, or type
Page weight (transferred) Target: < 200 KB
KB
Measuring… Compressed bytes the browser actually downloaded

Values are from your current page session in this browser, on whatever network you're on. Numbers are typically better on a warm cache and worse on first paint — that's why we commit to first-paint numbers (cold cache, slow 4G simulation) in our contracts.

/ 05 — What's included

Everything from workshop to launch to 30 days after.

Concrete scope, not a checklist of vague deliverables.

  • Discovery + content model workshop
  • Information architecture and conversion-first wireframing
  • Brand-aligned visual design across breakpoints
  • Astro build with islands of React/Vue/Svelte only where they earn their place
  • Headless CMS setup (Sanity by default — alternatives evaluated case-by-case)
  • On-page SEO: titles, metas, headings, internal linking, image alts
  • Full JSON-LD schema implementation (Organization, WebSite, Service, FAQPage, Article, BreadcrumbList)
  • Open Graph + Twitter / X card art for every page
  • Edge-deployed hosting (Netlify, Cloudflare Pages, or Vercel — chosen with you)
  • 301 redirect map from your legacy site, tested before cutover
  • GA4 + your conversion tracking of choice (HubSpot, Plausible, Fathom)
  • Core Web Vitals monitoring + 30-day post-launch optimization window
/ 06 — Process

Seven phases. As quick as 30 days.

Repeatable, documented, measurable. Click any phase to see deliverables, who's involved, and what changes after it launches.

01
Phase 1 · 3 days – 1 week

Discovery & Audit

Diagnostic before any decision. We start by understanding what you actually have.

We don't recommend a single architectural choice until we've audited your current site, your brand, your content, and your conversion goals. Half the engagements end up with a different scope than the kickoff implied.

Deliverables

  • Brand workshop and content inventory
  • Competitor scan + competitive ranking analysis
  • SEO equity audit + URL mapping
  • Conversion-goal alignment + measurement plan
  • Audit summary document (what we found + what it means)

Who's involved

Our owner (yours through delivery), brand lead, and one engineer for the technical audit.

/ 08 — Proof

The site you're reading is the demo.

It hits every commitment on this page. View source, run it through Lighthouse yourself — there's nothing hidden.

This site itself

The site you're reading. Astro, headless content, Lighthouse 95+ on cold cache, sub-second LCP. View the source — there are no surprises.

View page source
/ 09 — FAQ

The things people ask before they sign.

Why not just use Squarespace or Wix?

They're fine for a hobby site. For a business that depends on search visibility and conversion, they hit walls fast: no real schema control, no AI-crawler manifest, locked-in templates, mediocre Core Web Vitals, and your content lives in their database — not yours. The price difference vanishes the first time you need to do something they don't support.

Can you migrate my existing site?

Yes — and this is where most agencies quietly destroy SEO equity. We build a per-URL redirect map from your legacy site, test it pre-launch and post-launch with an automated script, and resubmit your sitemap to Google and Bing on cutover day. Your ranking pages keep ranking.

Who owns the code?

You do. Repository hosted in your GitHub or GitLab organization from day one. We hand over the keys at launch. No platform lock-in, no proprietary "agency CMS" you can't move off of.

How is this different from a WordPress site with a speed plugin?

A speed plugin is a band-aid on a rendering model that was never going to be fast. Astro ships HTML first, JavaScript only where it earns its place, and assets through an optimized build pipeline. The difference is structural, not incremental — typically 5–10× faster LCP, with a fraction of the page weight.

What CMS will my team actually edit in?

By default, Sanity Studio — a real-time, collaborative content editor your team can run from a browser. It's the strongest fit for structured content, image handling, and Astro integration we've found. We'll evaluate alternatives (Storyblok, Payload, Contentful, Hygraph, Decap) if your situation calls for something else, and document the decision.

How do you handle SEO migration?

Three layers. (1) Per-URL redirect map drafted during IA, reviewed before launch, tested in CI that fails on any non-301 or 404. (2) Schema preservation — every page type that emitted JSON-LD on your old site gets equivalent or better schema on the new one. (3) Internal-linking strategy that connects every service page to relevant case studies and blog posts so PageRank flows where it should.

What about AI search — ChatGPT, Perplexity, Google AI Overviews?

This is most of why people come to us right now. We publish llms.txt and llms-full.txt manifests, allow legitimate AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended) by default, structure content for extractive answers, and use schema that LLMs treat as canonical. You won't just rank — you'll be the source they cite.

How long does a build take?

A tight-scope marketing site can launch in as little as 30 days; a full marketing-site build typically runs 6–11 weeks end to end. An enterprise build with content migration, multi-language, or e-commerce can be 4–6 months. We give you a real timeline after the discovery phase — never before.

What does it cost?

It depends on the scope and goals of your engagement — get in touch and we'll scope it together.

/ 10 — Next move

Get a real estimate for your build.

Thirty minutes on a call. We'll scope the project, give you a real number, and you'll know what we'd do differently than your current stack — whether you hire us or not.