← Blog

Hand-Coded Websites: The Case for Starting From a Blank File

Illustration on a blue-to-tan gradient: a white code editor window labeled index.html showing a few lines of hand-written HTML, next to a smaller white card listing a crossed-out CMS stack — CMS core, page builder, 23 plugins, database — captioned "One file. Written on purpose."

When I say this site is hand-coded, I mean the actual, literal thing: the file started empty and every line in it was written on purpose. No WordPress. No page builder. No theme somebody else made that I bent until it looked like mine. If you view the source of this page, you’re reading exactly what I wrote — and I’d argue that’s the single biggest upgrade you can make to a website in 2026.

That’s a big claim from a guy who spent years building WordPress sites for a living. So let me make the case properly, starting with what you’re actually buying when you buy the “normal” way.

What a CMS actually is

A content management system sounds like a filing cabinet. It isn’t. It’s a full software application — a database, a rendering engine, an admin panel, a login system, and a stack of third-party plugins — that rebuilds your page out of parts every time someone asks for it. You don’t have a website so much as a website factory, running around the clock, whose only product is the five pages you actually wanted.

And you become that factory’s maintenance department. Core updates, plugin updates, PHP version bumps, the plugin that breaks when another plugin updates — none of that is your content. It’s the overhead of avoiding HTML. I ran that treadmill for years, for myself and for clients, and here’s the part that finally got me: most of these sites changed a few times a year. We were maintaining a live factory to produce a brochure.

The weight nobody ordered

Open a page-builder site and view the source sometime. Forty divs deep before the headline, a CSS file for every plugin ever activated, three sliders’ worth of JavaScript for a page with no slider on it. None of it was chosen — it accumulated. And Google measures the result: how fast your page paints and how quickly it responds is a ranking signal, and the plugin stack is on the wrong side of it.

A hand-coded page inverts that. Every kilobyte is there because it does a job, which is why this site ships one CSS file, two small scripts, and pages that are mostly… words. I don’t optimize the bloat away. I just never invite it in.

Nothing to hack, nothing to patch

Here’s the quiet one that should be loud: the overwhelming majority of hacked small-business websites get in through the CMS — a stale plugin, a brute-forced admin login, a database injection. A hand-coded static site has none of those doors. There is no admin URL to guess, no database to inject, no Tuesday-night security patch you forgot. The server hands over a file, the same way it would hand over a photo. You can’t break into a filing cabinet through software the filing cabinet isn’t running.

“But how do you edit it?”

This is the objection the entire CMS industry is built on, so it deserves a straight answer. The old bargain was real: hand-coded sites were fast and safe, but every text change meant paying a developer, so everyone accepted the factory instead.

That bargain is dead, and I’ve written about why: the same AI wave everyone thought would replace developers made hand-written code cheap to change. A wording tweak, a new section, a whole new page — I describe it, review it, and ship the edited file. And for the writing itself, I use a small editor I built that opens each post as the real page and saves the real HTML — the editing convenience of a CMS, with nothing extra running on the live site. The site you’re reading has changed almost daily for weeks. There is no CMS anywhere in the building.

This is not a static-only pitch

One thing I want to be clear about, because “hand-coded” gets misheard as “small”: this is a starting point, not a ceiling. The method is start from nothing and add only what the project actually needs — and if the job calls for a database, user accounts, a full CMS, it grows into that too. The contact form on this site is a serverless function; it existed the moment I needed it and not a day before. Most sites simply never need the rest, and paying for the rest anyway — in speed, in security, in monthly maintenance — is the thing I’m against. The full pitch lives on the web development page.

The proof, as always, is the site you’re on. Every page of it — including the themes I sell — came out of a blank file. If you want yours built the same way, you know where the door is. It’s the only one this site has.

Adam Hoidahl, The Better Website Guy

Designer/developer behind The Better Website. Hand-codes every build himself — no CMS, no templates, no page builders. See his CodePen.

Let's chat

← Back to the blog