Fast. Secure.
Almost nothing to maintain.

"Static" means every page is prepared in advance and delivered as a finished file — nothing gets assembled while your visitor waits, so there is nothing to slow down. Built on Astro, a modern framework, and delivered by Cloudflare's worldwide network: sub-second loads anywhere on Earth, hosting from £25/month, and a site that will still work in five years if nobody touches it.

// from £800 · hosted on managed Cloudflare from £25/mo

$ lighthouse https://willcocks.uk

performance 100

accessibility 100

this visit loaded in fast

// the pitch

Always on. Always fast.
Nothing to break.

Every promise below holds for a simple reason: the machinery that fails on ordinary websites isn't part of this one.

  • // always online

    Always online

    Served from 300+ cities worldwide with nothing to crash — there's no server or database that can go down at 2am.

  • // always fast

    Always fast

    Every page is ready before anyone asks for it. No queries, no processing — the site is done cooking before it reaches the table.

  • // always secure

    Always secure

    The things attackers target — admin logins, plugins, databases — physically aren't there. You can't pick a lock that doesn't exist.

  • // always up to date

    Always up to date

    No software stack to go stale, no monthly patches, no plugin auto-updates breaking things overnight. Launch day is forever.

  • // every version kept

    Every version kept

    The whole site lives in version control — better than a backup, because every change ever made can be rolled back in minutes.

  • // nothing to subscribe to

    Nothing to subscribe to

    No plugin licences quietly renewing every year. Hosting is the only running cost, and it starts at £25/month.

A WordPress site is a database, a PHP runtime, a theme, and dozens of plugins — every one of which is software that needs to be patched, every one of which is a possible attack vector, and every one of which is a thing that can break on the next auto-update. That architecture dates from 2003, and it shows. A static site is none of those things. It is a folder of files served from Cloudflare's edge — the modern way to build for the modern web. When the brief is "a fast, secure, professional brochure site," it's the simpler answer. It's also the serious one: Astro and Cloudflare are the stack Porsche, IKEA and OpenAI build on — and in 2026 Cloudflare acquired Astro, so the framework and the host became one company.

// why it works

The detail, for the technically curious.

// 01

Security

The most common WordPress attack vectors — SQL injection, plugin remote code execution, brute-forced wp-login, supply-chain compromise via auto-update — physically cannot exist on a static site, because the moving parts they target aren't there. The site is a set of pre-rendered HTML, CSS and JavaScript files. There's no admin panel for an attacker to break into and no plugin vulnerability list to monitor.

// 02

Speed

Files are served from Cloudflare's global edge — over 300 cities worldwide — so visitors get sub-second loads no matter where they are. There's no database query, no PHP execution, no server warm-up. The page is already rendered before the request arrives, and Astro ships zero JavaScript by default — which is why the Core Web Vitals stay green without a 'speed plugin'.

// 03

Design freedom

Astro has no theme system in the WordPress sense. Every component is custom-built. The design can be exactly what the brief requires, not a pre-made template stretched to fit.

// 04

Privacy by default

No tracking cookies, no consent banners required (Cloudflare Web Analytics is cookieless). You stay GDPR-compliant without the modal that asks every visitor to opt out.

// honest about the trade-off

Where a static site is the wrong answer.

Static sites aren't for everything. If self-managed content is non-negotiable, WordPress is the right answer instead — see the WordPress page.

  • No backend CMS — content edits go through me on the £55/hour clock
  • Not the right fit for sites that need daily or self-managed content updates
  • Comments, user accounts and dynamic features need a different approach (or a small WordPress slice paired with the static front-end)
  • Forms, search and small dynamic features still work — they run on Cloudflare Workers — but anything large brings the WordPress trade-offs back in

// scale

Priced by the project, not the page.

On a static build, the expensive part is getting the design, structure and tone right. Once that exists, producing pages from it is fast — so I don't bill per page, and the right number of pages is however many the job needs.

That changes what's affordable. The searches that bring local customers are specific: the service and the town. A plumber in Ivybridge isn't found by "plumber" — they're found by "boiler repair Ivybridge" and "emergency plumber Totnes". Answering those searches properly takes a dedicated, genuinely useful page for each service in each area, and on a per-page invoice nobody builds them.

  • service & area pages

    A page per service, per area you cover — each with its own copy, its own meta and structured data, all held to the same design. Twenty well-made pages targeting twenty real searches, not one "Areas we cover" list.

  • no thin pages

    Search engines penalise near-duplicate "doorway" pages, so each page is written to be genuinely different and genuinely useful — what you do there, who you've done it for, how to reach you. If an area doesn't justify a real page, it doesn't get one.

  • structure search engines read

    Semantic HTML, per-page titles and descriptions, LocalBusiness and Service structured data, a clean sitemap — the plumbing that makes every one of those pages eligible to rank, done on every page by default.

// in production

The same stack, from a village site to a 120M-reach media group.

radmedia.com — the corporate site of a youth media group — is a fully static Astro build on Cloudflare: 33 prerendered pages, 25 video case studies, no server anywhere. Its sister publications culted.com and itsxo.com run the same architecture with a CMS attached, for a group whose brands reach a combined 120 million people a month.

This site is a static Astro build too. So is every static site I deliver — same approach, same toolchain, same hosting.

// stack

What's under the hood.

This site is a static site. So is every other static-site build I deliver — same approach, same toolchain, same hosting model. The transparency is the point: there's nothing proprietary, no lock-in, and any other Astro developer could pick the project up tomorrow.

// framework
Astro 6 — content-first, static by default, no client-side JavaScript unless a feature genuinely needs it.
// hosting
Cloudflare Workers — global edge, free tier covers most small sites, managed hosting from £25/month with everything included.
// styling
Tailwind CSS v4 — utility-first, no custom theme to maintain, no CSS bloat.
// content
Markdown files in version control. No database, no admin login. Content lives next to the code.
// forms
Cloudflare Workers handle contact-form submissions, search and small backend needs without bringing back a full CMS.
// deploy
Continuous deployment from a Git branch. Every change is a commit; every commit is a versioned release you can roll back.

// pricing

From £800.

Priced by the project, never by the page. Static comes in levels — a focused Essential build for most small businesses, a larger Professional one, and genuinely custom platforms at Bespoke.

Essential from £800
Where most small businesses land — a fast, great-looking site; a tightly focused build can come in under £1,000.
Professional from £2,500
Larger builds — bespoke design, integrations (booking, forms, payments), richer interactivity, reporting set up from day one.
Bespoke from £7,500
Membership platforms, booking engines, custom advertising — see custom development.

Hosting is £25/month on managed Cloudflare (domain renewal included), or £120/month with two hours of development bundled in — see hosting. Can't fund it up front? The cost can be spread over a year — around a quarter down, the rest monthly with hosting included, no interest.

  • included in the build

    Custom design with no theme constraints, mobile-responsive, Lighthouse 90+ on launch, accessible to WCAG 2.2 AA, semantic HTML, on-page SEO and structured data, deployed to your domain with SSL configured.

  • also included

    A staging URL while we build, written content guidance, image optimisation, view-transitions for app-like navigation between pages, and a clean handover.

  • after launch

    Content edits and additions billed at £55/hour in 30-min increments. Most edits take around 30 minutes; a whole new section, about an hour — so a typical text-and-image update is £27.50, not a day rate. No retainer required, and most clients only change a handful of things a year.

// next step

Got a project? Let's talk.

A free call to talk through what you need and whether I can help. No follow-up sales pressure if it isn’t a fit.