Blueprint
Marketing Website
A site whose whole job is to tell people what you do.
A website whose entire job is to tell people what you do. Services, proof, who you are, how to reach you. Sometimes called a brochure site.
What defines it is what it does not have. No accounts, no logins, nothing that changes from one visitor to the next.
“Static” is the most misleading word in this category. It does not mean frozen. It means each page is assembled once, when the site builds, instead of being rebuilt from scratch for every visitor who arrives. The content still changes whenever you want it to. It can pull from an API, rebuild on a schedule, or rebuild the moment someone edits a page, and a deploy is automatic and takes under a minute. What you give up is per-visitor variation. What you get for it is a site with no database to breach, no server to patch, and nothing sitting between the visitor and the page.
How I orchestrate the build
Editor
Where I sit. Claude Code runs inside it, so the work and the code are in one window.
Orchestration
Does the actual building. I describe the change, it writes it, I review it.
Building from my phone
Same project, away from the desk. Useful more often than it sounds.
Input (I don't type)
I talk, it types. Dictation that keeps up with a train of thought.
What it's built with
Framework
Builds the pages ahead of time and ships zero JavaScript unless a page needs it.
Styling
Styles written next to the markup, so there is no separate stylesheet drifting out of sync.
Images
Resizes and converts to modern formats at build time, so nobody downloads a 4MB photo.
Structured content
Posts, services, case studies. Each type gets a defined shape, and writing a field that does not belong fails the build instead of silently saving. This site runs seven of them.
SEO
Generates the sitemap and the tags search engines read. You write them, so you know what they say.
Form handling
The bit of code that catches a form submission. Serverless: it exists for the 50ms it runs, then it is gone.
Bot protection
Sits on the form and blocks bots without making a human click traffic lights.
Where the files live
The working copy
The real one. A directory in my projects folder on this computer, where the work actually happens.
Version control + what the deploy watches
Every version of every file, forever, and the ability to go back to any of them. Pushing here is what triggers a deploy. It happens to be the backup too, but that is a side effect.
Big files
Video and large images. A code repo is the wrong home for a 500MB file, so those live here and the site points at them.
Where it's hosted and how it deploys
Integrations
Form email
Delivers the form submission to an inbox. An API rather than SMTP, so you can see whether it actually arrived.
Analytics
Traffic numbers without following anyone around, which is also why there is no cookie banner.
Legal policies
Privacy policy and terms that update themselves as the laws change, rather than a PDF from 2019.
If you're coming from WordPress
A lot of people find me from the WordPress world, so these come up constantly. Most have the same shape: something you currently pay for, maintain, or worry about stops existing here, and the fair question is where it went.
- Q What about security?
- There is nothing to attack. No server, no database, no login, no plugins to keep patched. The pages are files. This is the single biggest reason I build this way, and it is why a security plugin like Wordfence has nothing to do here.
- Q What about caching?
- Not a concept. Caching exists to avoid rebuilding a page for every visitor, and these pages were already built before anyone asked. They sit on a CDN close to the reader. There is no work left to skip.
- Q What about backups?
- Git is the backup, and a better one. Every version of every file forever, restoring is a command rather than a hopeful click, and it covers the code rather than a copy of a database.
- Q What about a page builder?
- Astro and Claude are the builder. I describe the change and it lands in the code, so what ships is a real page instead of a builder's markup wrapped around your content. It also means nothing is locked to a plugin that can stop being maintained.
- Q What about updates?
- There is no plugin ecosystem to keep in step, so nothing breaks on a Tuesday because two vendors shipped on the same day. Dependencies move when I move them, and if a build fails the site that is already live stays live.
- Q What about SEO? Don't you need Yoast or Rank Math?
- No, and it is worth knowing what those plugins actually do. Almost all of it is writing tags into the head of the page: the title, the meta description, the Open Graph tags that control how a link looks when it is shared, the canonical URL, the robots directives, and the sitemap. Those are the output. The plugin is a form for typing them, plus a traffic-light score that grades your writing. Here the tags are written directly, so there is no form in between and nothing to configure.
- Q What about schema markup?
- Generated for every page. This site emits structured data for the organization, the person, breadcrumbs, articles, podcast episodes, and events, which is what search engines and increasingly what AI assistants read to understand who you are. That is code rather than a plugin setting, so it cannot be half-configured and it cannot silently stop working after an update.
- Q Will it actually rank?
- The technical side is as good as it gets: fast pages, clean markup, correct tags, valid schema, and a sitemap. That clears the bar that plugins are sold to clear. What no plugin has ever done is give you something worth ranking for, and that part is content and proof rather than configuration. Anyone selling you a green light on a dashboard is selling you the easy half.
- Q How do you edit it?
- The same way I build it. I open the project, describe the change, and it ships. That is section one of this page, and it is why there is no editing interface in the stack by default. For a client who will genuinely edit their own site, a CMS gets added. That is its own question below.
- Q Can a client edit it themselves?
- Yes, and then a CMS goes in. It is a real decision rather than a checkbox. I have done it with headless WordPress and with Sanity. The trade is the same either way: you gain a place to type, and you take on another system to log into, keep current, and pay for. The honest test is frequency. Most businesses touch their site once or twice a year and are better off sending me the change, which ships the same day. If you are genuinely going to be in there every week, say so before the build starts, because it changes how the whole thing is put together and it is far cheaper to plan for than to retrofit.
- Q What about custom post types, fields, taxonomies, relationships, filters, and facets?
- All of it, with less ceremony. A post type is a content collection. Custom fields are that collection's schema, and they are typed, so a missing or misspelled field fails the build instead of quietly saving blank. A taxonomy is just a field on the content, which means no term tables and no orphaned categories nobody can delete. Relationships are a reference by slug: this page pulls every tool you see from the tools collection that way, and a broken reference is caught at build rather than rendering an empty box in front of a customer.
- Q So filtering and faceted search still work?
- Better, and this is the part people do not expect. Everything is already in memory when the site builds, so a filter is an operation on an array rather than a query. My tools page facets 94 items by category, type, and pricing with no database behind it. Nothing is computed while a visitor waits, so filtering cannot slow the site down or fall over under traffic. In WordPress each of those is a database query, which is a large part of why you end up buying a caching plugin to undo them.
- Q Can you sell products on it?
- Digital products, yes. Stripe Checkout takes the money, a serverless function delivers the file, and the site stays static, because there is no stock to count and nothing to ship. Physical products are a different animal and get their own blueprint.
- Q Isn't static too limited?
- Static describes when the page is assembled, not whether it can change. It can pull from an API, rebuild on a schedule, or rebuild the moment you edit something. What you give up is showing a different page to each visitor, which a marketing site does not need.