From install to live

The flow is always the same: write a post, let Selfish build the site, point it at a place once, and publish. You do the connection setup a single time for each site. After that a publish shows you what will change and sends only that.

Before the first publish

Set Site URL in Site Settings → Site to the public address readers will reach. Feeds, the sitemap and link previews are built from it. Create a site has the details.

Where should your site live?

Open Site Settings → Publishing. When a site has nowhere to publish yet, Selfish asks the question in plain words and says what each answer needs. You can change your mind at any time, and each site remembers its own setup.

Free, and quick to set up

RouteWhat it isWhat it needs
GitHub PagesYour site lives in a GitHub repository, and every publish is kept, so you can always go back.A free GitHub account.
Cloudflare PagesServed from Cloudflare’s network, fast wherever your readers are.A free Cloudflare account.
NetlifyA managed host that is quick to publish to again.A Netlify account.

I already have web hosting

RouteWhat it isWhat it needs
SFTPUpload to the server your web host gave you, or to one of your own.The server’s address, a username, and a password or key.
WebDAVUpload to a WebDAV folder: Nextcloud, a Synology or QNAP, Fastmail Files, a Hetzner Storage Box.The folder’s address, a username and a password.

I use storage buckets

RouteWhat it isWhat it needs
S3-compatible storageAmazon S3, Cloudflare R2, Backblaze B2, DigitalOcean Spaces or MinIO.A bucket and an access key.

I keep my own copy in sync

RouteWhat it isWhat it needs
A folderSelfish copies the site into a folder on this device, in iCloud Drive or Dropbox, or one your web host’s app keeps in sync.A folder you choose, on each device.
KEYCHAIN

Whichever route you choose, every secret is stored in the Apple Keychain: SFTP passwords and SSH keys, WebDAV passwords, S3 secret keys, and Netlify, Cloudflare and GitHub tokens. Never in the site’s data, an export or a log. With iCloud Keychain on, they sync between your own devices, end-to-end encrypted.

Test, then publish

Every route has Test Connection (for a folder, Check Folder). Use it before your first publish. It checks your details and the destination, so you find problems now and not halfway through an upload.

On SFTP and GitHub Pages it also notices when everything connects but the site still wouldn’t show, and says what to change: the result reads Connected — check this, with the fix beneath it.

Then choose Publish Site. Preview and publish walks through the screen, and How publishing works explains what happens underneath.

Themes

How a site looks is separate from where it goes. A theme is chosen for each site, and switching one never touches your words. See Themes and design in the user guide, or all eleven themes.

Choosing a host

Compare hosting options for Selfish: managed static hosting, your own server, object storage, or a folder you sync.

Every route, and how it works

  1. 01 SFTP Your own server or web hosting, with a password or an SSH key.
  2. 02 WebDAV Nextcloud, a Synology or QNAP, Fastmail Files, a Hetzner Storage Box, or a host that offers WebDAV.
  3. 03 S3-compatible storage Amazon S3, Cloudflare R2, Backblaze B2, DigitalOcean Spaces or MinIO.
  4. 04 Netlify A managed host with HTTPS and a CDN. Needs a site and a personal access token.
  5. 05 Cloudflare Pages Served from Cloudflare's network. Needs a Pages project and an API token.
  6. 06 GitHub Pages Free hosting from a GitHub repository, with every publish kept. Sign in, or use a token.
  7. 07 A folder A folder on your device, in iCloud Drive or Dropbox, or one your web host's app keeps in sync.
  8. 08 Custom domains The DNS records your domain needs on GitHub Pages, Netlify and Cloudflare Pages, and how Selfish checks them.
  9. 09 How publishing works The files in a site, how only changes are sent, what is removed and what is never touched.
  10. 10 Troubleshooting Refused connections, permissions, tokens, host keys, and sites that connect but don't show.
THE REST OF THE APP
Read the user guide
→