Building a fast website without overengineering it
Most business websites suffer from unnecessary complexity, not a lack of features. Here is how I built a fast site by treating simplicity as a constraint.
Over the years, I’ve helped companies fix funnels, rebuild tracking, redesign messaging, and untangle automation systems that grew faster than their strategy.
The pattern is always the same. Complexity creeps in quietly. More tools. More plugins. More scripts. More “just in case” features. Until the system becomes fragile and no one quite remembers why it was built that way.
So when it came time to rebuild my own website, I decided to run an experiment on myself.
If complexity is the default — what happens when simplicity becomes the rule?
The constraint
I’m not a developer. I’m a strategist who’s comfortable in the terminal, has used Linux for over a decade, and understands how systems behave under pressure. I wasn’t going to build something I couldn’t maintain, audit, or explain. That meant the architecture had to be clear before a single line of code was written.
Strategy before code. Always.
I set five constraints at the start:
- Fully static. No server-side rendering, no database calls, no moving parts that don’t need to move.
- Minimal JavaScript — only where interaction genuinely requires it.
- No heavy CMS — content I can manage without a plugin ecosystem.
- Clean, flat architecture that I can read and reason about in six months.
- Fast by default, not fast after optimisation.
The stack that came out of that process: Astro for the framework, Tailwind CSS for styling, Cloudflare Pages for hosting, Cloudflare Analytics for lightweight traffic data, Formspark for form handling.
That’s it. No hidden dependencies. No third-party scripts I didn’t choose deliberately.
The decisions that actually mattered
Astro over Next.js was the first real choice. Next.js is excellent for dynamic applications. My site is not a dynamic application. It’s a set of pages that change infrequently and need to load fast. Astro ships zero JavaScript by default and only adds it where you ask. For a content-led site, that’s the right trade.
Formspark over a native form solution was simpler than it sounds. I needed form submissions routed without a backend. Formspark handles that with a single endpoint and no infrastructure to maintain. The alternative was building a serverless function for something that Formspark handles in one line. Complexity for its own sake.
Cloudflare Pages over other hosting options came down to one thing: the CDN is the product. Pages deploys to Cloudflare’s edge network automatically. No configuration. No origin server latency. The site is fast because of where it lives, not because I optimised it into submission.
The result: Lighthouse scores of 100 across performance, accessibility, best practices, and SEO. That number is satisfying, but it’s a consequence of the structure, not the goal. When the architecture is right, the score follows.
Why this matters beyond my own website
Speed is not a vanity metric. It affects perceived credibility, search performance, and conversion rates in ways that compound over time. But the more important point is this: a simple system is a maintainable system. A maintainable system is one you actually trust.
When your website requires constant patching, plugin updates, and technical babysitting, it drains attention from what drives growth — positioning, messaging, offers, execution. The overhead is invisible until it isn’t.
The same principle applies to marketing systems. I see it consistently with clients. Automation gets layered on top of unclear strategy. Tools get added to solve problems that better thinking would have prevented. The stack grows. The results don’t.
Tools are multipliers, not foundations. If the structure is weak, automation accelerates confusion. If the structure is clear, even a simple system scales further than you’d expect.
This website is a small proof of that.
The question worth asking
This wasn’t about building the most advanced site possible. It was about building the most intentional one — and then checking whether the constraints I’d imposed actually held.
They did.
If you’re a founder or operator reading this, the question I’d leave you with is the same one I asked myself at the start:
Where has complexity quietly become your default?
In your website, your marketing stack, your reporting, your internal workflows — where are you maintaining systems that were never properly designed in the first place?
Simplicity isn’t the absence of sophistication. It’s what sophisticated looks like when the thinking has been done properly.
That’s the experiment I ran here. The site is the evidence.
If the same question points to your marketing systems, Automation Systems is where I’d start.
Further Reading

The anatomy of a B2B growth system
Four layers that must work together in sequence. When they do, growth compounds. When one breaks, the others underperform, regardless of spend.

What happens when B2B buyers search
B2B buyers now get answers from AI. GEO ensures your company's knowledge is found, understood, and reused in AI-generated answers.