The problem
Long articles are rarely just articles. They arrive wrapped in a sticky header, a newsletter popover, a cookie banner, two ads that reflow the text as they load, and a sidebar of things you should read next. Safari’s Reader fixes all of that, but only in Safari, and only after the page has already loaded and jumped around a bit.
I wanted the reader view to be the destination, not a thing I remember to turn on afterwards. So I made WebReader: a small Mac app whose entire job is to take a URL and show you the text.
What it does
Send it a link and it opens in a clean 1200×800 window, no toolbar, no chrome — just the article. It registers as an http/https handler, so it shows up under Open with in Safari, Mail, Slack, or anywhere else a link lives. Set it as your default browser and every link lands in reader view; keep it alongside a real browser and use it deliberately for the long reads.
A few things that make it pleasant day to day:
- Any site, not one site. It has no home page of its own — it exists to receive links from elsewhere.
- ⇧⌘R toggles back to the full page when the reader view guesses wrong, which happens on pages that aren’t really articles.
- It remembers its window, so it opens where you left it.
Download
Download WebReader — universal (Apple Silicon and Intel), macOS 13 or later. It’s signed with my Developer ID and notarized by Apple, so it opens normally with no Gatekeeper detour.
One command
WebReader isn’t really its own project — it’s webwrap, the Mac app wrapper I built earlier, pointed at nothing in particular. The whole app is a single command.
First install webwrap, if you haven’t already:
brew install yepzdk/tools/webwrap
Then build the app:
webwrap create \
--no-url \
--name "WebReader" \
--reader \
--progress-bar
--no-url is the interesting flag: instead of wrapping one site, it builds a handler-only app with no home site, which implies --handle-urls and --open-any-url so it accepts links to anywhere. --reader makes the distraction-free view the default rather than something you invoke. The progress bar earns its place here — reader view holds the window blank until the article is parsed, so without it a slow page looks like a hung app.
That builds a working app in /Applications, signed ad-hoc so it runs on the Mac that made it. If you have an Apple developer account and want to move the app to another Mac, add --sign "Developer ID Application: Your Name (TEAMID)" and --notarize --notary-profile your-profile — that’s how the download above is built.
That’s the part I like: a genuinely useful app with no source code of its own, just a description of what it should be.
Build your own and change what you like — a different size, a toolbar, your own icon. The docs are at github.com/yepzdk/webwrap, and I wrote more about how webwrap works in my post about it.