The short answer: all three produce the same kind of thing, a folder of static HTML you can host anywhere. Hugo and Jekyll are developer tools. They give you templates, total control and a git-based workflow, and they expect a terminal and a text editor in return. Selfish is a native app for iPhone, iPad and Mac. It gives you a finished writing and publishing workflow and much less control over the machinery. If you enjoy building the site as much as writing on it, use Hugo or Jekyll. If you’d rather just write and publish, Selfish removes the toolchain.
For full disclosure, the site you’re reading is built with Hugo. It’s a marketing site with custom layouts, which is exactly the kind of job Hugo is good at.
At a glance
| Selfish | Hugo | Jekyll | |
|---|---|---|---|
| Ownership | Yours: files on your hosting | Yours: files on your hosting | Yours: files on your hosting |
| Cost | £3.99 once, introductory — £9.99 from December. Optional premium themes at £1.99 each | Free, open source | Free, open source |
| Where content lives | In the app on your device (optional iCloud sync) | Markdown files in a folder, usually a git repo | Markdown files in a folder, usually a git repo |
| Custom domain | Whatever domain you point at your hosting | Same | Same |
| Email/newsletter | None | None built in | None built in |
| Monetisation | None | None built in | None built in |
| Audience/discovery | None | None | None |
| Editing | Native composer with toolbar and live preview | Any text editor | Any text editor |
| Templating | Choose a theme. Add header and footer snippets | Go templates, fully customisable | Liquid templates, fully customisable |
| Output | Static HTML, sitemap, RSS and JSON feeds | Static site, whatever your templates produce | Static site, whatever your templates produce |
| Lock-in/export | Standard HTML output. No Markdown file export | Plain Markdown source files | Plain Markdown source files |
None of the three gives you an audience, email or payments. Those are platform features, and all three of these are tools.
Where Hugo and Jekyll genuinely win
Flexibility
This is the big one. Hugo uses Go’s html/template and text/template packages. Jekyll uses Liquid. With either, you control every byte of the output. You can build custom page types, data-driven pages, landing pages, documentation, multilingual sites, or whatever structure your content needs. Hugo describes its taxonomy system as “powerful” and it is. Categories and tags are just the start.
Selfish offers a fixed set of choices. You get posts and pages, categories and tags, a theme, and custom header and footer snippets. The four free themes and three premium ones are each a single CSS file. A custom theme editor is something we’re considering, not something that exists. If you need a layout Selfish’s themes don’t offer, a static site generator is the right tool.
Speed at scale
Hugo is written in Go, and its own documentation says it “renders a complete site in seconds, often less”. For large sites with thousands of pages that speed genuinely matters. Selfish is designed for personal sites and skips unchanged files when it uploads. Hugo is the one to reach for when a site gets big.
Git workflows
With Hugo or Jekyll, your content is Markdown files in a repository. That gets you version history, branches, pull requests, collaborators, CI builds, and deploys triggered by a push. Jekyll has a special relationship with GitHub Pages. GitHub’s documentation describes it as having built-in support there. GitHub Pages can only build a limited set of Jekyll plugins itself, and GitHub now recommends GitHub Actions for anything beyond that.
Selfish can publish to GitHub Pages by committing the generated site into a repository. That repo holds the output, though, not an editable Markdown source tree. If your team reviews posts in pull requests, stick with a generator.
Price
Hugo and Jekyll are free and open source. Selfish is a one-time £3.99 purchase — an introductory price that rises to £9.99 in December — plus optional premium themes. If you’re already comfortable in a terminal, the generators cost you nothing but time.
Portability of source
Your Hugo or Jekyll content is a folder of text files with front matter. Moving between generators is work, but the words themselves are never trapped. Selfish stores your writing as a small Markdown subset inside the app. The published output is standard HTML that belongs to you, but Selfish doesn’t currently export Markdown files. Folder export is on the list of things we’re considering. That’s a real difference, and you should weigh it.
Where Selfish wins
No toolchain
Here’s the Hugo quick start at the time of writing:
hugo new project quickstart
cd quickstart
git init
git submodule add https://github.com/gohugo-ananke/ananke themes/ananke
echo "theme = 'ananke'" >> hugo.toml
hugo server
Jekyll’s getting-started guide asks for Ruby 2.7.0 or later, RubyGems, GCC and Make, then:
gem install jekyll bundler
jekyll new myblog
cd myblog
bundle exec jekyll serve
None of that is hard if you’re a developer. But it happens on a computer, it breaks when versions drift, and it’s the reason plenty of people who’d like a static blog never finish setting one up. Selfish has no installation step beyond the app, no dependencies and no build command.
Writing and publishing from an iPhone
Hugo and Jekyll need a computer to build the site. You can wire up a phone-to-git-to-CI pipeline, but it’s a project in itself. Selfish runs natively on iPhone, iPad and Mac. It has autosave, drafts, automatic photo optimisation, photos placed inline where you put them, and a live preview that matches the published page exactly. You write, you publish, and the upload goes straight from your device.
Deployment is included
With a generator, building and deploying are separate problems. You pick a host, script an upload or set up CI, and manage the credentials. Selfish handles SFTP (password or SSH key, with RSA and Ed25519), S3-compatible storage, Netlify, Cloudflare Pages and GitHub Pages directly. It has a Test Connection button and shows per-file progress. Credentials live in Apple’s Keychain, and SFTP host keys are pinned on first use. The publishing docs walk through each route.
Sensible output by default
Out of the box, a Selfish site has a sitemap, RSS and JSON feeds, canonical links, meta tags, responsive themes and automatic dark mode. The themes use no web fonts and no trackers. Hugo and Jekyll can do all of this and more, but the quality of what you get depends on the theme you pick or the templates you write.
Choose Hugo or Jekyll if…
- You want full control of templates and site structure.
- Your site is large, multilingual, or more than a blog.
- You want your source in git, with branches, reviews and CI.
- You want your writing stored as plain Markdown files you can take anywhere.
- You’re comfortable in a terminal. For Hugo, prebuilt binaries for most platforms. For Jekyll, the Ruby ecosystem and native GitHub Pages support.
Choose Selfish if…
- You want a static site without installing or maintaining a toolchain.
- You write on an iPhone, iPad or Mac and want to publish from there.
- A good theme and header and footer snippets are all the customisation you need.
- You’d rather have publishing, credentials and uploads handled for you.
Where Selfish fits
Selfish is on the App Store as one app for iPhone, iPad and Mac, for a one-time £3.99 introductory price that rises to £9.99 in December. It isn’t trying to replace Hugo or Jekyll for people who want to build their own machinery. It’s for people who want the result without the machinery. If that’s you, the user guide shows the workflow and our post on a static site generator without the command line goes into more depth.