Pocket from Mozilla is my favourite way to save interesting articles and videos for watching/reading later. The standard account is free but I like both the service and Mozilla so much that I'm happy to pay for the premium plan which adds full text search of everything I've saved, smarter tagging and an advert free experience. There are pocket apps for Android and iOS and services like Pocket to Kindle which I've got set up to automatically push my most recently saved articles to my Kindle every week.

Recently I've upgraded my trusty, much loved Dell XPS 13 to a Surface Book and since it has a fancy detachable screen I started looking around for a Windows app for Pocket so I could read in comfort. There is an official MacOS desktop app but the recommendations for Windows are a confusing mess of RSS readers, ancient clients that looked they were designed for Windows XP and abandonware. To be honest this is a pretty common problem as a Surface Book owner, the hardware is amazing and when you detach the screen you've got a super powered tablet with a beautiful screen. But, and this is a huge but, there are almost no Windows applications out there that are designed for tablets.

Fortunately the Pocket web app is very touch friendly so I have been using it in a browser but I was finding it too easy to get distracted when I have a web browser open. At this point I discovered Nativefier which is rather neatly summed up by it's GitHub desription:

Make any web page a desktop application

It is a Node.js package that once installed globally gives you a CLI to wrap any website inside a template app with the appropriate which is then packaged into an Electron app for Linux, Windows or MacOS using Electron Packager. Now I know that the only uncontentious thing I can say about Electron is that it can be contentious, but this is pretty much the perfect solution to my problem. Installing Nativefier and generating a Pocket app is as simple as:

npm install nativefier -g
nativefier --name "Pocket" --maximize "https://app.getpocket.com"

This generates a folder called Pocket-win32-x64 which contains a Pocket.exe and opening that gives me the pocket web app in a dedicated window with no distractions!

I used the --maximize and --name to make sure the app always opens maximized and has my chosen name, but you can also inject javascript or css, disable context menus, set disk cache size and lots more, check out the API docs for more details.