Freeze-Dried Websites
Static Sites in 2026
Chris David Miles WordPress Meetup
Welcome everyone. Tonight we're going to talk about static site generators — what they are, why you'd use one, and I'll show you a few live examples including one that uses WordPress itself.
How WordPress Serves a Page
Browser
→
Web Server
→
PHP
→
Database
→
PHP
→
HTML
→
Browser
Every single page visit. Every single time.
When someone visits your WordPress site, a lot happens behind the scenes. The browser hits your server, your server runs PHP, PHP queries the MySQL database, gets the content, assembles the HTML, and sends it back. This happens for every visitor, every page, every time. Even if the content hasn't changed in six months.
How a Static Page Gets to You
Browser
→
CDN
→
HTML
→
Browser
The HTML already exists. Just serve it.
A static site flips this completely. The HTML files are already built. They're just sitting there, ready to go. When someone visits, the CDN — a server near them geographically — hands them the file. No PHP, no database, no computation. It's the difference between a restaurant cooking your meal to order versus handing you a pre-packed lunch.
What Is a Static Site Generator?
A program that takes your content and builds all the HTML pages ahead of time.
Content
→
Build
→
HTML/CSS/JS
→
CDN
A static site generator is the tool that does the building. You write your content — usually in Markdown files or sometimes through a CMS — and the generator takes that content, applies a template, and produces plain HTML files. You upload those files to a host, and you're done.
Why Go Static?
⚡ Speed — Files on a CDN. No computation per request.
🔒 Security — No PHP, no database, no login page to attack.
💰 Cost — Most static hosts have generous free tiers.
🧘 Simplicity — No server management, no PHP updates, no MySQL tuning.
Speed — your site is just files on a CDN edge node near the visitor. Security — this is the big one for WordPress people. No PHP means no plugin vulnerabilities, no brute force attacks on wp-login, no XML-RPC exploits. There's almost nothing to hack. Cost — Cloudflare Pages, GitHub Pages, and Netlify all have free tiers that handle most sites easily. Simplicity — no server to manage, no PHP version upgrades, no database optimization.
What Do You Give Up?
🔌 Dynamic features — Search, forms, comments, e-commerce need workarounds.
✏️ Editing UX — No wp-admin by default (but CMS tools exist).
⏱️ Build step — Changes aren't instant like hitting "Publish" in WordPress.
It's not all upside. Every dynamic feature you take for granted in WordPress — search, contact forms, comments — doesn't exist out of the box. You have to bolt those on with third-party services. Content editing can be less friendly for non-technical users, though tools like Decap CMS help a lot, as I'll show you. And there's always a build step — you make a change, and it takes 10 seconds to a couple minutes to go live instead of being instant. We'll talk about solutions to all of these.
Who Is This For?
✅ Great for
Blogs, portfolios, documentation, marketing sites, brochure sites
❌ Not great for
Membership sites, e-commerce stores, complex web apps
🤝 Sometimes both
Use WordPress to author, publish static
Static sites are great for content that doesn't change per-visitor. Blogs, portfolios, documentation, marketing sites, small business sites. They're NOT great for membership sites, full e-commerce, or complex web apps. But here's the interesting thing — you can use WordPress as your authoring tool and publish a static site. Best of both worlds. That's actually our first demo.
Markdown — The Content Format
# Hello World
This is **bold** and this is *italic*.
Here's a [link](https://example.com) and an image:

- Item one
- Item two
- Item three
Before we look at the tools, I need to show you Markdown. Every static site generator we're looking at tonight — except WordPress — uses Markdown as its content format. Markdown is a plain text format that converts to HTML. It's designed to be readable even as source code. Headings are hash marks, bold is double asterisks, links are brackets and parentheses. If you've ever formatted a message in Slack or Discord, you've basically used Markdown.
Front Matter — Metadata for Content
---
title: "My First Post"
date: 2026-02-15
tags: ["static", "wordpress", "meetup"]
draft: false
---
Your Markdown content starts here...
The YAML block at the top tells the generator about the page — title, date, tags, template, etc.
The one thing that's unique to static site generators is front matter. It's this little YAML block at the top of your Markdown file surrounded by triple dashes. It tells the generator metadata about the page — the title, the date, tags, whether it's a draft. Think of it like the settings you fill in on the right sidebar when you're editing a WordPress post — except it's just text in the file.
The Landscape
Generator Language Vibe
Hugo Go Fastest builds. Great for blogs & docs.
Jekyll Ruby The OG. Powers GitHub Pages natively.
11ty JavaScript Flexible, minimal, developer-friendly.
WP + Simply Static PHP Use the CMS you know, output static files.
Here's the landscape of what we're covering tonight. Hugo is built in Go and is famous for build speed — thousands of pages in under a second. Jekyll is the original static site generator and has native support on GitHub Pages. 11ty — short for Eleventy — is the JavaScript option, very flexible and minimal. And then there's WordPress with Simply Static, which lets you use the CMS you already know and just export the output as static files. I have a live demo site for each of these. Let's start with the one you already know.
WordPress + Simply Static
admin.highrollers.games → www.highrollers.games
WordPress is the authoring environment . The static site is production .
🔴 LIVE DEMO
So here's the idea. admin.highrollers.games is a regular WordPress install. You'd recognize it — wp-admin, posts, pages, plugins, the works. But the production site — what visitors actually see — is www.highrollers.games, which is just flat HTML files on Cloudflare Pages. Simply Static Pro takes the WordPress output and exports it. Let me show you.
Dynamic Problems, Static Solutions
On WordPress, these just work. On a static site, we solve them differently.
🔍 Search — Fuse.js, Algolia, Pagefind
📝 Forms — Formspree, Netlify Forms, Cloudflare Workers
💬 Comments — Utterances, Giscus, Disqus
🛒 E-commerce — Snipcart, Shopify Buy Button, Stripe Links
Now let me show you the flip side. Simply Static Pro has toggles for search, forms, and comments — let me show you those settings panels. Search uses something like Fuse.js, which builds a search index at export time and ships it as a JSON file, then JavaScript searches it in the browser. Forms submit to a third-party service instead of your server. Comments get stored somewhere else entirely. These are the trade-offs I mentioned earlier — but there are real solutions for all of them.
Utterances — Comments via GitHub Issues
A single <script> tag. Comments stored as GitHub Issues.
<script src="https://utteranc.es/client.js"
repo="your/repo"
issue-term="pathname"
theme="github-light"
crossorigin="anonymous"
async>
</script>
Free. Open source. No database. No account system.
This is one of my favorite solutions. Utterances turns GitHub Issues into a comment system. You add one script tag to your site, approve the GitHub app, and you're done. When someone leaves a comment, it creates a GitHub Issue. I actually have this running live on one of the demo sites — I'll show you in a few minutes.
11ty + Decap CMS
dystopian.site
11ty generates the HTML. Decap CMS provides the editing UI. GitHub stores the content. Cloudflare Pages hosts it.
🔴 LIVE DEMO
Now let's swap out WordPress entirely. dystopian.site is built with 11ty — that's the static site generator — and Decap CMS, which gives you a friendly content editor that looks a lot like WordPress. But under the hood, when you save a post in Decap, it creates a git commit on GitHub. Cloudflare Pages detects the commit, runs 11ty to rebuild the HTML, and deploys it. Same workflow as Simply Static, different tools. Let me show you.
Hugo
abitmuch.com
Hugo. PaperMod theme. Markdown content. Cloudflare Pages.
🔴 LIVE DEMO
Third demo. abitmuch.com is built with Hugo using the PaperMod theme — the most popular Hugo theme with over 13,000 stars on GitHub. Same pattern — Markdown files in a GitHub repo, push a change, Cloudflare Pages rebuilds and deploys. But I want to show you something extra in this one.
Headers & Redirects Without a Server
_headers
/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Cache-Control: public, max-age=3600
_redirects
/old-page /new-page 301
/wp-admin https://youtu.be/dQw4w9WgXcQ 302
Flat files. The hosting platform reads them. No server config needed.
On a traditional server you'd configure headers in Apache or Nginx. On a static site, you just drop a _headers file in your repo. Same with redirects — a _redirects file. The hosting platform reads these at deploy time. Let me show you these files in the Hugo site's repo. And yes, that wp-admin redirect is real — try visiting abitmuch.com/wp-admin.
Jekyll + GitHub Pages
chrisdavidmiles.github.io
Push Markdown to GitHub. GitHub builds it. That's it.
The lowest-friction static site setup that exists.
Bonus: Utterances comments are live on this site.
🔴 LIVE DEMO
Last one. Jekyll plus GitHub Pages is the simplest setup of everything we've seen tonight. You push Markdown to a GitHub repo, and GitHub builds and hosts the site automatically. No Cloudflare Pages, no build config, nothing. And this is the site where I have Utterances running — let me show you the comments in action.
Deployment & Hosting
Cloudflare Pages — 3 of tonight's demos. Free. Global CDN.
GitHub Pages — Native Jekyll support. Free for public repos.
Netlify — Similar to Cloudflare Pages. Built-in form handling.
Vercel — Popular with Next.js/React. Supports static too.
The pattern: Git push → Build → Deploy to CDN
You've seen these platforms throughout the demos so this is a quick summary. Cloudflare Pages hosted three of our four demo sites. GitHub Pages hosted the Jekyll site with zero configuration. Netlify and Vercel are strong alternatives — Netlify's built-in form handling is nice since forms are one of the things static sites struggle with. But the key takeaway is the pattern: push to git, the platform builds, and deploys to a CDN. That's true for all of them.
When to Go Static
✅ Go static when
Content-focused sites. Blogs, portfolios, docs, marketing pages. Security is a priority. Budget is tight.
🔧 Stick with WordPress when
Membership, e-commerce, complex forms, real-time features. Non-technical editors need wp-admin.
🤝 Use both when
WordPress + Simply Static. Author in the CMS you know, publish as static files.
Be honest with yourself about what your site needs. If it's a blog, portfolio, documentation site, or marketing page — static is probably faster, cheaper, and more secure. If you need memberships, a full store, complex workflows, or your client needs wp-admin and they're not going to learn Markdown — stick with WordPress. And if you want the security benefits of static but the editing experience of WordPress, Simply Static gives you both. Static sites aren't a WordPress replacement. They're another tool in the toolbox.
Tonight's Demo Sites
Site Stack URL
WP + Simply Static WordPress → Cloudflare Pages highrollers.games
11ty + Decap 11ty + Decap CMS → Cloudflare Pages dystopian.site
Hugo Hugo + PaperMod → Cloudflare Pages abitmuch.com
Jekyll Jekyll + Utterances → GitHub Pages chrisdavidmiles.github.io
Here are all four demo sites if you want to check them out. They're all live, they're all real, and they're all static. Go poke around, view source, see what static HTML looks like.
Resources
Hugo — gohugo.io
Jekyll — jekyllrb.com
11ty — 11ty.dev
Simply Static — simplystatic.com
Decap CMS — decapcms.org
Utterances — utteranc.es
Cloudflare Pages — pages.cloudflare.com
GitHub Pages — pages.github.com
Here are the links to everything we covered tonight. All of these have free tiers or are completely free. If you want to try one, I'd say start with Jekyll on GitHub Pages — you can have a site live in 10 minutes.
Questions?
Chris David Miles
Open it up for questions. If there are questions about specific setups, offer to chat after the meetup.