This site was rebuilt from scratch in a single working session. Everything you're looking at — the type, the dark and light themes, this blog — is a static site generated at build time, and it's built to be found twice over: by Google, and by the AI assistants people increasingly ask instead. Here's exactly what's under it, and the decisions that actually mattered.
What's actually running this site?
A static Astro site on Netlify, with a Keystatic blog and no database. Every page is plain HTML, produced at build time — no spinner, no content fetched by JavaScript after the page loads. Fonts are self-hosted and subset, so there are no third-party font calls. The contact form runs on Netlify Forms, so there's no backend to maintain.
It's a deliberately boring stack. Boring is a feature: fewer moving parts, nothing to patch at 2am, and it's fast because there's almost nothing to load.
Why does "static" matter more than it used to?
Because the audience changed. For years the only non-human reader that mattered was Googlebot. Now GPTBot, ClaudeBot and PerplexityBot crawl the web to answer questions directly — and they generally don't run your JavaScript. If your content only appears after a script executes, those readers see an empty page and move on.
Put the content in the HTML and everyone sees it: search engines, AI assistants, and the person on a slow phone. That single decision — pre-render everything — is the most important one on this whole list.
What's the layer most sites skip?
The LLM layer: a small set of things that make a site quotable by an AI assistant, instead of paraphrased or ignored. This site ships all of it.
- A clean markdown twin of every article — this page is served both at its normal URL and at the same URL with
.md, as plain text with no navigation or clutter. - An
llms.txtindex that hands assistants a plain-language map of the site. - Structured data (JSON-LD) that states, in machine-readable terms, who I am and what each page is.
- Question-shaped headings with the answer in the first sentence — like the ones in this post.
None of that is visible to a human. All of it raises the odds that when someone asks an assistant "who advises on AI in Vienna," the model quotes you accurately rather than guessing.
How do I actually publish?
I write in a browser editor and press save. Behind that, the post commits to GitHub, the host rebuilds the site, and it's live in about a minute — with its meta tags, its markdown twin, and its sitemap and RSS entries all generated automatically. One tool to touch; everything else is downstream of the save button.
This post went out exactly that way.
What did it take to build?
A focused session with an AI coding agent, directed the way you'd direct any good collaborator: I made the calls, it did the typing. That's the honest version of "AI-built." The agent didn't choose the stack, design the type system, or decide which corners not to cut. It executed decisions — quickly, and without complaint.
That's the same method I bring to client work, and it's the whole thesis of what I do. The interesting question was never can a model write the code. It was knowing what to build, what to leave out, and which invisible layers actually earn their place.
The point
Most companies don't need more AI. They need better decisions about where it belongs. A site like this is a small, concrete proof of that: the technology is ordinary and widely available — the value was in the judgment about how to assemble it.
If you're weighing where AI fits in your own product or team, that's the conversation I have every day. Book a call.