The first plan, in September, was WordPress on shared green hosting: a theme, a forum plugin, a gallery plugin, a knowledge-base plugin and a downloads plugin. I wrote a nine-phase build plan and never started it. Every one of those plugins is something to update, patch and back up, forever.
The next day I switched to a static site.
That choice wasn’t about WordPress being bad. It runs a huge share of the web for good reasons. It was about fit. A library of essays, guides and links doesn’t change from second to second. It changes when someone adds an entry. Building a page fresh from a database every time someone visits, for content that changes once a week, is a lot of machinery spent on nothing. A static site does the work once, when the page is published, and then hands out the same finished file to everyone.
The stack
- Astro builds every page ahead of time into plain HTML and CSS.
- Cloudflare hands those files out from its network. The site is a Worker with static assets and no server code at all.
- Porkbun holds the domain, and DNS runs through Cloudflare.
- A tiny form handler, also a Worker, emails new submissions to the editor and stores nothing.
Writing an entry means writing a text file. Astro turns that file into a page using the site’s shared layout, the same header, the same seed-packet cards, the same footer, then outputs a folder of finished HTML, CSS and fonts. That folder is what gets uploaded. Nothing on the server has to think when a visitor arrives.
What that buys
- Little to attack. There’s no login page and no database. Most attacks on small sites go after exactly those two things, and here there’s nothing to find.
- Light pages. The home page is about 55 KB, heading font included. Body text uses whatever font your device already has. For comparison, HTTP Archive’s 2024 Web Almanac put the median mobile page at about 2.3 MB, some forty times heavier. Every byte that isn’t sent is energy that isn’t spent, on the network, in the data centre and on the reader’s battery.
- Free at this size. Cloudflare’s free tier covers it. There’s no hosting bill to justify and no pressure to monetise.
- Portable. The whole site is a folder of files. The same folder could be served from a small board on solar power, which is exactly the plan for the solar mirror. A WordPress site can’t easily make that move; a folder of HTML can.
What it costs
Static isn’t free of trade-offs, and it’s worth being honest about them.
- No comments or accounts. Anything interactive has to be added deliberately, like the contribution form, which is a separate tiny Worker that sends an email and keeps nothing.
- A build step. Changes need a rebuild and an upload. For a site that changes weekly, that’s a few minutes; for a site with constant updates it would be a real cost.
- One person can break it. Without a CMS, the person editing needs to be comfortable with text files. That’s a reason to keep the source in version control, so every change can be seen and undone.
The look
Parchment and forest green, terracotta for clay and copper, sage for leaves, honey for sunlight. Headings in Young Serif, labels in IBM Plex Mono, everything else in the system font. Corners are a little uneven on purpose, and the icons were drawn for this project instead of pulled from a stock set.
The fonts are served from this site rather than from a font service, and nothing on the page calls out to a third party. That keeps the pages lighter and means visitors aren’t tracked by anyone just for reading a page about compost.
Checking the footprint
If you want to see what a page of yours costs, the Website Carbon calculator gives an estimate from a URL, using the Sustainable Web Design model. It’s a rough figure, not a measurement, but it’s useful for comparing a page before and after a change.
Further reading
- Astro documentation. The static site builder this site uses.
- Sustainable Web Design. Principles and a shared model for estimating a website’s emissions.
- Website Carbon Calculator. Estimate the footprint of any page.
- Page weight, Web Almanac 2024, HTTP Archive. How heavy the typical web page has become.
- How to build a low-tech website, Low-tech Magazine. The inspiration for keeping pages small enough to run on the sun.
- Codeberg. Non-profit, community-run Git hosting, a good home for a site’s source.
- Websites that go to sleep when the sun does.