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

SelfishHugoJekyll
OwnershipYours: files on your hostingYours: files on your hostingYours: files on your hosting
Cost£3.99 once, introductory — £9.99 from December. Optional premium themes at £1.99 eachFree, open sourceFree, open source
Where content livesIn the app on your device (optional iCloud sync)Markdown files in a folder, usually a git repoMarkdown files in a folder, usually a git repo
Custom domainWhatever domain you point at your hostingSameSame
Email/newsletterNoneNone built inNone built in
MonetisationNoneNone built inNone built in
Audience/discoveryNoneNoneNone
EditingNative composer with toolbar and live previewAny text editorAny text editor
TemplatingChoose a theme. Add header and footer snippetsGo templates, fully customisableLiquid templates, fully customisable
OutputStatic HTML, sitemap, RSS and JSON feedsStatic site, whatever your templates produceStatic site, whatever your templates produce
Lock-in/exportStandard HTML output. No Markdown file exportPlain Markdown source filesPlain 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…

Choose Selfish if…

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.