The release that lets you move in, and leave again. Importers for WordPress, Ghost, Substack, Medium and Markdown; a full export; two new ways to publish; and a publish that shows what will change, sends only that, and takes down what you have removed.
The first release since 1.1 on iPhone and iPad and 1.0 on the Mac, and the first to bring all three to the same version. On the Mac it also brings 1.1’s inline photos, video and audio.
Move in, move out
IMPORT
Leave WordPress. Import the export file from Tools → Export: posts, pages, categories, tags, excerpts and featured images come across, photos are downloaded from your old site at full size, and captions, galleries and embeds keep their place. How importing works → IMPORT
Leave Ghost, Substack or Medium. Import Ghost’s export file, Substack’s export folder or the folder Medium’s “Download your information” gives you. Posts for members or paying subscribers arrive as drafts, and Substack’s subscriber list is never opened.
IMPORT
Bring a folder of Markdown from Hugo, Jekyll, Eleventy or Obsidian: posts, pages, dates, drafts, categories, tags and photos become a new site.
IMPORT
Bring in any blog by its address. Selfish finds its feed and brings in the posts it holds, photos and podcast audio included.
IMPORT
Old links keep working. An imported post remembers its old address, and links to it lead to the post once your site lives where the old one did — real redirects on Netlify and Cloudflare Pages, a small forwarding page elsewhere.
IMPORT
Export your site. A folder with every post and page as a Markdown file, all your photos, videos and audio, and your settings. Hugo, Jekyll and Eleventy can read it as it is. Passwords, secret keys and tokens are never included. Export and backup → IMPORT
Restore an export on a new device, or hand a site to someone else: it comes back exactly as it was, ready to publish once its password or token is added.
IMPORT
A Markdown copy of your site, kept up to date in a folder you choose as you write.
IMPORT
Get a lost site back from the web. Given your site’s address, Selfish rebuilds it from its own published pages.
IMPORT
One post in, one post out. Import a Markdown or plain-text file as a draft; share a post as Markdown with its photos, a self-contained web page, or a PDF.
IMPORT
Duplicate a site, and copy or move a post to another of your sites. A moved post’s old address sends readers to its new home.
Publish
PUBLISH
Publish over WebDAV — to Nextcloud or ownCloud, a Synology or QNAP, Fastmail Files, a Hetzner Storage Box, or a web host that offers it. HTTPS only. Set up WebDAV → PUBLISH
Publish to a folder — in iCloud Drive, Dropbox, or one your web host’s app keeps in sync. Set up a folder → PUBLISH
Sign in with GitHub instead of copying a token: approve Selfish on GitHub, choose the repository it may reach, and it turns Pages on when you first publish. An access token still works. GitHub Pages → PUBLISH
“Where should your site live?” When a site has nowhere to publish yet, Publishing asks in plain words, says what each choice needs, and links to the pages where the account, project and token are made.
PUBLISH
See what will change before you publish: new, updated and taken-down posts and, where Selfish keeps its record beside the site, how much will upload and a list of the files. How publishing works → PUBLISH
Only changes are sent. SFTP, S3 and GitHub Pages now upload just the files whose content changed, as Netlify and Cloudflare Pages already did.
PUBLISH
Your live site matches your device. On SFTP and S3, unpublishing or deleting a post takes it off your server, photos and all. Selfish only ever removes files it recorded uploading.
PUBLISH
Safe across devices. On SFTP, WebDAV, S3 and folders, if your live site has posts this device hasn’t synced yet, or newer versions of them, the publish screen says so before anything is replaced.
PUBLISH
A site check before you publish: photos with no description, links to posts that aren’t online, very large files, posts with no description, a missing site address. It never stops you.
PUBLISH
A privacy report for every publish. Selfish reads the pages it just built and says what they ask of readers’ browsers.
PUBLISH
Checks that it’s live. After publishing, Selfish opens your site’s address and confirms it shows the new version — or says why not.
PUBLISH
Publish history: when, where to, how much was sent, and which posts went up, changed or came down. It stays on your device.
PUBLISH
Your own domain, step by step. For GitHub Pages, Netlify and Cloudflare Pages, Publishing shows the DNS records your domain needs and checks them from your device. Custom domains → PUBLISH
Test Connection names the fix when everything connects but the site still wouldn’t show: GitHub Pages switched off or serving another branch, an SFTP folder with the host’s web folder inside it.
PUBLISH
Schedule a post. Mark it Published with a later date and it stays off your site until that day, then goes out at the first publish from it. Selfish reminds you that morning.
PUBLISH
Publishing keeps going when you leave the app on iPhone and iPad.
PUBLISH
Publishing credentials sync between your own devices through iCloud Keychain, so a site set up on iPhone can be published from the Mac.
PUBLISH
GitHub Pages keeps your custom domain. The CNAME file GitHub stores it in is carried over on every publish.
PUBLISH
Your own files are safe. On SFTP, WebDAV, S3 and folders, a robots.txt, favicon or 404 page that Selfish didn’t put there is left exactly as it is.
PUBLISH
Addresses without .html, if you want them: /posts/my-post/ instead of /posts/my-post.html, with the old addresses still leading to your posts.
PUBLISH
On Amazon S3 and S3-compatible storage, every file now tells browsers how long to keep it.
PUBLISH
Plainer words when something goes wrong. A dropped connection, a server that doesn’t answer, or an address that leads nowhere is described as what it is and what to do — and checking what’s live gives up after 75 seconds rather than waiting for ever.
PUBLISH
Once, after this update: the first publish to SFTP, WebDAV, S3 or a folder uploads everything, to create Selfish’s record of what is live, and every post page is sent once more for its new markup. After that, only changes.
PUBLISH
Share what you just published: the new post’s link, straight from the publish screen.
Write
WRITE
More formatting: code, strikethrough, a divider line and footnotes, numbered for you. Writing → WRITE
A read-more break and a table of contents for long posts.
WRITE
Lists as you type: Return starts the next item, and Return on an empty item ends the list.
WRITE
Smarter paste. A web address pasted over selected text makes it a link; text copied from a web page, Google Docs, Pages or Notes keeps its formatting; code becomes a code block.
WRITE
Link to another post. The link follows the post if its address changes.
WRITE
Keyboard shortcuts: ⌘B, ⌘I and ⌘K, and ## , ### or > typed at the start of a line.
WRITE
Find and replace in the editor, and bigger or smaller text.
WRITE
Notes. Leave a post’s title empty and it’s a note, short as on a social feed.
WRITE
Earlier versions of a post, kept on the device you wrote on, to read and bring back.
WRITE
Suggestions, written on your device. Where Apple Intelligence is on, Details offers a description and picks from your tags. Nothing about the post leaves your device.
WRITE
Recently Deleted. A deleted post or page waits 30 days before it’s gone, and comes off your live site at the next publish.
WRITE
Start a page from a template: About, Now, Uses, Contact, Blogroll or Colophon.
WRITE
Record audio in a post, drag photos in from other apps, paste a photo, or, on iPhone and iPad, draw one with Apple Pencil or a finger. Photos, video and audio → WRITE
Photos side by side, crop and rotate with Revert, a focal point for square thumbnails, and camera details on request — never where it was taken.
WRITE
An index thumbnail for each post, chosen from its photos or added only for the listing.
WRITE
Link cards. A link alone on its line can show the page’s title, description and picture, kept with your post so your page loads nothing from the other site.
WRITE
Posts from Photos: one post holding them all, or a post for each, dated the day it was taken.
WRITE
Writing Stats: your posts and words over the last twelve months, counted on your device.
WRITE
Details — status, date, category, tags, address, description — now save automatically, like the words do.
Your site
SITE
Make a theme yours, free. An accent colour, a typeface, always light or always dark, and the column width, for every theme. Design → SITE
A menu on every page, in the order you choose, with links to other places, an archive page, a Subscribe page and search if you want it.
SITE
Search your site. The only script Selfish ever adds, so it’s off until you add it: it runs on the search page alone and reads only your own site.
SITE
A page as your home page, with your posts on a Blog page — or an introduction above your newest posts.
SITE
Pages of posts. Choose how many your home page and archives show; older posts continue on page 2.
SITE
Excerpts, titles or whole posts on your home page and archives, and an excerpt you can write yourself.
SITE
Pin a post to the top, keep one off the lists while it stays published, ask search engines not to list one, or credit the address where it first appeared.
SITE
Share a draft at an address no one could guess, before it’s public.
SITE
Reading time, updated dates, related posts and series, and older and newer posts linked at the foot of every post.
SITE
A podcast, free. Every post with audio becomes an episode of a feed you can add to Apple Podcasts, Overcast or any podcast app. Readers and feeds → SITE
Whole posts in your feed, photos included, and a feed for each category and tag.
SITE
Share cards. With them on, a post with no photo shows its title in your theme’s colours when it’s linked from Mastodon, Bluesky or Messages. New sites start with them on.
SITE
Lighter, steadier pages. Photos carry their size and load as the reader reaches them, each can be published at smaller sizes for phones, and videos show a picture before they play.
SITE
Code in colour, with no scripts. A code block that names its language is coloured as your site is made.
SITE
Your site’s language and time zone are settings, and Selfish’s own words on your site — Read more, Older posts, the 404 page — come in 21 languages.
SITE
The files every site should have: a “Page not found” page in your theme, a robots.txt, and an icon for browser tabs and home screens — your avatar or, with the new monogram setting, the first letter of your site’s title.
SITE
Your logo beside your site’s name in every theme but Sky, which shows your avatar already — and your footer, your way: a line of your own, a Creative Commons licence, and the “Published with Selfish” credit, which you can turn off.
SITE
Browsers enforce the privacy promise. One setting tells browsers to run no script and load nothing from anywhere else.
SITE
One main heading on each page (on for new sites), a “Skip to content” link, visible keyboard focus, and print styles that leave out the menus.
SITE
Dates no longer depend on which device publishes, and a page with no photo of its own now shows your banner in link previews in every theme.
Readers
READERS
Readers & Links. Your links elsewhere at the foot of every page, each marked as yours so Mastodon shows your site as verified; credit on Mastodon’s previews of your posts; your domain as your Bluesky handle; Reply by email under each post; Subscribe by email through the feed-to-email service you choose; and Google’s and Bing’s verification codes.
READERS
Webmentions and IndieWeb markup. Posts are marked up as h-entries, and Selfish can tell the sites your new posts link to.
Capture
CAPTURE
Share to Selfish from any app. A page from Safari with the words you selected, a link, text, or up to ten photos becomes a draft in the site you choose. Capture → CAPTURE
Widgets and a Control Centre control. Your newest drafts on the Home Screen, Lock Screen or the Mac’s desktop, and New Post one tap away.
CAPTURE
More Shortcuts actions: Publish Site, Create Post, Append to Post and Find Posts. “Publish my Selfish site” works with Siri.
CAPTURE
Start a draft from any app on the Mac with Services → New Selfish Draft With Selection.
CAPTURE
Find your posts from system search and carry on writing on another device with Handoff.
Your sites
OWN
New sites don’t start blank. Say what kind of site it is — a blog, a photo journal, notes or essays — and it starts with a theme that suits it and starter pages as drafts. A first site also gets a welcome draft that shows how formatting and photos work.
OWN
Deleted sites can come back. A deleted site waits in Recently Deleted for 30 days, with every post, photo, setting and password.
OWN
Archive a site you’re not working on, and see what a site takes on your device.
Mac, iPad and accessibility
MAC
Mac: photos, video and audio in the body, where you put them — and drag them in from Finder or Photos.
MAC
Mac: a post in its own window, a Site menu, ⌘1–⌘9 to switch sites, and a Publish button that counts what isn’t live yet.
MAC
Mac: fixed a crash when resizing the window with Details open.
MAC
iPad: the button that brings the Sites list back is there in portrait.
MAC
Better with VoiceOver. Every photo in a post can be reached and described, headings are announced, and cropping and the focal point work without dragging.