“Self-hosting” covers a wide range. At one end, you rent a Linux server and run everything yourself. At the other, you keep your writing on your own machine and hand a folder of HTML to a free static host. Both count, because the thing that matters is the same: your words are in a format you control, and you can move them without asking anyone’s permission.
This is a survey of the real options in 2026, with the trade-offs stated plainly. There are two decisions to make: what software produces the blog, and where the result is served from.
Part one: the software
A static site
A static blog is pre-built HTML files. Nothing runs when a visitor arrives; the server just hands over a file.
You can produce those files two ways. The traditional route is a static site generator: Hugo, Jekyll, Eleventy and Astro are the best known. You write posts as Markdown files, run a build command, and get a folder of HTML. The alternative is an app that does the writing and building for you, which avoids the terminal entirely. There’s a longer look at that in a static site generator without the command line.
- Cost: the software is free. Hosting can be free too (see part two).
- Maintenance: close to none once it’s running. There’s no server-side software to patch on the blog itself.
- Security: the best of the three by a distance. There’s no login page, no database and no code executing per request, so there’s very little to attack.
- Limits: anything dynamic needs a third-party service. Comments, search and newsletters are bolted on, not built in. The command-line generators also carry a real learning curve.
Ghost, self-hosted
Ghost is an open-source publishing platform with a polished editor and built-in memberships and email newsletters. You can pay for Ghost(Pro), the official hosting, which starts at $18 a month billed yearly at the time of writing, or run it yourself for free.
Self-hosting it is a proper server job. Ghost’s official Ubuntu guide asks for Ubuntu 22.04, 24.04 or 26.04, MySQL 8, nginx, a supported Node.js version and at least 1 GB of RAM, installed through the Ghost-CLI tool. There’s also a newer Docker Compose method.
- Cost: a small VPS, plus a transactional email service if you want to send newsletters in volume.
- Maintenance: regular. Ghost, Node.js, MySQL and the operating system all need updating, and major upgrades occasionally need care.
- Security: reasonable if you keep up with updates. There’s an admin login and a database, so there’s more surface than a static site.
- Where it wins: if you want paid subscriptions and email newsletters from your own domain, Ghost does that well, and a static site doesn’t do it at all.
WordPress, self-hosted
WordPress needs no introduction. The self-hosted version from wordpress.org is free software; you supply a server with PHP and a database. At the time of writing, WordPress recommends PHP 8.3 or newer and MySQL 8.0 or MariaDB 10.11 or newer.
- Cost: shared hosting or a small VPS. Plenty of hosts offer one-click installs.
- Maintenance: the highest of the three. Core, themes and plugins update constantly, and a plugin that goes unmaintained becomes a liability.
- Security: a popular target, precisely because it’s everywhere. Automated attacks on login pages and known plugin vulnerabilities are routine. A carefully maintained install with few plugins is fine; a neglected one is a problem.
- Where it wins: the plugin ecosystem is unmatched. If you need something unusual, somebody has probably built it.
Part two: where it’s served from
Ghost and WordPress need a server that runs code, so a VPS or managed hosting is your only option. A static site can go almost anywhere.
Your own VPS
A virtual server from a provider such as Hetzner, DigitalOcean or Linode. At the time of writing, Hetzner’s cheapest cloud server is €5.49 a month excluding VAT in Germany and Finland. You install a web server, point your domain at it, and upload files over SFTP. The steps are in how to host a static blog on your own server.
This is the most independent option. Nobody’s terms of service apply except your provider’s, and moving is a matter of copying a folder. It’s also the one that makes you responsible for operating-system updates.
Object storage
S3-compatible storage (Amazon S3, Cloudflare R2, Backblaze B2 and others) can serve a static site directly from a bucket. Cloudflare R2’s free tier, at the time of writing, includes 10 GB of storage a month and charges nothing for egress. That’s more than a personal blog will ever use.
One catch worth knowing: Amazon S3’s static website endpoints don’t support HTTPS. AWS’s documentation points you to CloudFront or Amplify Hosting in front of the bucket, which adds a layer of setup.
Free static hosts
Three platforms will host a static site for nothing, with HTTPS and a global CDN. Their free tiers differ in ways that matter.
| Free tier at the time of writing | Watch out for | |
|---|---|---|
| GitHub Pages | 1 GB published site, soft limit of 100 GB bandwidth a month | Free accounts must publish from a public repository; not for sites that are primarily commercial |
| Cloudflare Pages | 500 builds a month, up to 20,000 files per site | Cloudflare now also offers static hosting through Workers, with a migration guide from Pages |
| Netlify | 300 credits a month on a hard limit | Bandwidth costs 20 credits per GB and each production deploy 15; the paid Personal plan is $9 a month |
The Netlify figures deserve a closer look. Under its credit-based pricing, 300 credits covers roughly 15 GB of bandwidth if you spent them on nothing else, and every production deploy draws from the same pot. For a small blog that’s usually fine. But if a post takes off, the free plan doesn’t bill you; it pauses your projects, all of them on the account, until the next billing cycle or until you upgrade. That’s worth knowing before you rely on it.
The honest trade-off with all three: they’re convenient, fast and free, but you’re on someone else’s platform and subject to their limits and policy changes. Because your site is plain files, though, leaving is easy. That’s the difference between hosting on a platform and publishing on one.
So which should you pick
If you want the least work and the most security, use a static site. Host it on GitHub Pages or Cloudflare Pages if free matters most, or on a small VPS if you want full independence.
If you need paid memberships and newsletters, self-hosted Ghost is the strongest option you can own, as long as you accept the server upkeep. Ghost(Pro) is a fair compromise if you don’t.
If you need a specific plugin or a site that’s really an application, WordPress is still the practical choice. Budget time for updates.
For most personal blogs, the answer is a static site. The writing is the point; everything else should be quiet.
Where Selfish fits
Selfish is a native app for iPhone, iPad and Mac, on the App Store for a one-time £3.99 (an introductory price, rising to £9.99 in December), that writes and builds a static blog and publishes it to your choice of SFTP server, S3-compatible storage, Netlify, Cloudflare Pages or GitHub Pages. Your content stays on your device, and the published site carries no Selfish code. The publishing docs explain each route.