The original crop of read-it-later apps that date back to the earliest days of the App Store were based on web services maintained by the developers of those apps. Apps like Instapaper and Pocket, the two biggest names in the space, have always been backed by web services that integrate tightly with native apps across Apple’s platforms. It’s a model that worked, and although those apps have continued to evolve and change with regular updates over the years, new entrants into the category were few and far between in this once hyper-competitive category – until now.
Thanks to relatively recent changes to Apple’s OSes, a new generation of read-it-later apps are emerging. They no longer need to run their own web services and are leveraging the latest OS technologies in new and interesting ways. One of the very best is GoodLinks, a new read-it-later app and link manager released today by Ngoc Luu, the developer of the well-known text editor 1Writer.
Since returning to Reeder for the RSS feeds I follow, I’ve been using its read-it-later service, which is terrific. We’ve also covered apps like Abyss and Readit in MacStories Weekly. Like GoodLinks, those apps use iCloud sync to keep articles you save synced across all the devices they support instead of using a developer-maintained web service. That’s a relatively new development for these sorts of apps, but the difference in this new generation of read-it-later apps runs deeper. New features of the OSes on which GoodLinks runs have breathed new life into the category, and its developer has taken advantage of these features to provide new utility to users.
Having settled into a comfortable Reeder workflow, I didn’t expect the way I manage links to be upended anytime soon. However, that’s exactly what has happened since I began using GoodLinks. What grabbed me is a versatility that stems from the fluidity of getting links into the app, managing them, and getting them out again. There’s built-in flexibility to GoodLinks that allows it to adapt exceedingly well to a wide variety of use cases. As with any 1.0 app, there’s room for improvement, but my wishes for GoodLinks are just that: wishes borne of enthusiasm for a terrific app that has quickly found its way into my daily workflow. Let’s dig into the details.
Adding Links
Adding links is table stakes for read-it-later apps, but worth covering nonetheless because, on iOS and iPadOS, GoodLinks includes an interesting twist on the share sheet that I haven’t seen in other apps. Share extensions are expected in all read-it-later apps, but GoodLinks offers a unique Quick Save toggle in its settings that controls how the extension behaves.
By default, Quick Save is off. When you tap the extension, GoodLinks opens a view with the URL, title, and summary of the webpage pre-populated. From here, you can add tags, mark the article as read, and add a star.
If the default setup involves more friction than you’d like, you can turn on Quick Save. That way, when you tap the GoodLinks extension, instead of being presented with a form to fill out, you’ll see a short ‘Saved’ graphic. If you do nothing, the link will simply be saved to GoodLinks as-is. However, if you tap the graphic, GoodLinks’ full share sheet form opens, allowing you to add tags and other details. It’s a terrific touch that accounts for different styles of link saving.
Of course, you can add a link from scratch from inside GoodLinks itself too, but the vast majority of links I save are with the extension. GoodLinks also supports drag and drop for adding links on the iPad. It’s a fantastic way to quickly save links from a multi-tab research session in Safari.
The Mac version of GoodLinks is less flexible. There is no share extension, Service, or Safari extension, nor is drag and drop supported. Instead, you’re limited to adding links by clicking the plus button in the toolbar from within the Mac app itself. The experience feels very limiting after using the iOS and iPadOS versions of the app and is something I hope is addressed in a future release.
Managing Links
Links can be organized and managed using tags, stars, and unread status. Read/unread and starred/unstarred states are common to many read-it-later and RSS clients and are a handy way to manage your links. What sets GoodLinks apart, though, is its use of tagging. Tagging adds another dimension for organizing links into buckets that can overlap.
I’ve never been a heavy tagger of anything, but I’ve found the system works nicely with GoodLinks. I can add a tag based on an area of interest like ‘music’ or ‘games’ or a project like ‘weekly’ for links I’m considering for our Club MacStories newsletter. Sometimes, links span multiple categories, which is easily handled by multiple tags. There’s also an untagged category that I use as an inbox for quickly processing new links by adding appropriate tags.
However, as powerful as tags are in GoodLinks, they could be improved by:
- Adding a dedicated UI for adding and deleting tags
- Including auto-completion of tags as they are typed
- Dragging and dropping tags onto articles or articles onto tags in the sidebar to quickly assign tags to untagged links
None of those wishes involve critical omissions, but they would make setting up and maintaining a tagging system easier and applying tags faster.
The Reading Experience
GoodLinks’ reading experience is the first I’ve tried that rivals Reeder’s. Of course, that’s a matter of personal taste, but I like the balance GoodLinks strikes with its customization options. There are fewer choices than Reeder, but just enough of the critical ones to dial in a comfortable reading experience. There are sliders for adjusting the font size, line spacing, and margins, plus five typefaces, which are accessible from the toolbar that appears when you scroll to the top of an article or tap it. On the Mac, the same adjustments can be made from the toolbar. On the iPhone and iPad, you can also select one of ten different accent colors for links, the toolbar, and iconography.
From the settings of the iPhone and iPad apps, you can also access two light and two dark themes that can be enabled manually, based on screen brightness, or according to your system settings. The Mac is limited to light and dark modes.
Articles are displayed in GoodLinks using a readability mode that is similar to Reeder’s, although not exactly the same. On the iPhone and iPad, you can also select among Safari, Chrome, and the in-app browser for links and force the app to load links in Reader mode. I love that I can open links locally without being kicked out to a separate browser. It’s a nice touch that puts the control of when a link leaves GoodLinks in the hands of the user, which I appreciate. On the Mac, I’d love to see an option to open links in the background instead of immediately opening in the default browser.
Processing Links and Automation
I’ve already mentioned the ability to mark articles with a star and as read or unread. Both can be accessed on iOS and iPadOS from the toolbar that appears at the bottom of the reader view when you tap an article, or from the context menu available on the iPad and Mac as well as the Mac’s toolbar and menu. They’re also available from GoodLinks’ Actions menu which is located in the app’s toolbar and includes buttons for sharing a link via the share sheet, marking an item as read or unread, adding or removing a star, deleting, editing, or copying a link, or opening it in a browser. Up to four actions can also be assigned to swipe gestures on the iPhone and iPad that are activated by swiping left or right on items in the articles list.
On the iPhone and iPad, the Action menu can also include Custom Actions defined by the user that allows components of an article saved in GoodLinks to be passed to another app using URL schemes. Among the data that can be passed is an article’s URL (escaped or unescaped), image URL (also escaped or unescaped), title, description, author, and content in HTML, plain text, or Markdown.
GoodLinks also has extensive Shortcuts support with actions to show a specified list of articles, add links, display a list of all links or just links tagged with a specific tag, open links, open the last unread link, open a random link, retrieve links with a specific tag, get all links with a specific tag, and get a list of tags. It’s a long list of actions that, along with GoodLinks’ own URL scheme, opens up some interesting possibilities.
I’ve only scratched the surface of what’s possible with GoodLinks’ automation. After just a short time experimenting, though, I’ve already created automations to handle each stage of the tasks related to the Interesting Links section of MacStories Weekly that I contribute to each week. It’s a fairly simple set of two shortcuts and a Custom Action, but it streamlines a process that I go through at least a dozen times every week leading up to the publication of the newsletter, so it’s a task worth automating.
The first shortcut, called ‘Save to GL,’ accepts URLs from the share sheet. I use it to save articles to GoodLinks that I’ll read later and decide whether to include in that week’s issue of MacStories Weekly. The shortcut takes the URL, extracts its title, URL, and excerpt, URL-encodes each and uses the GoodLinks URL scheme to build a link that saves it to the app with that information plus the tag ‘weekly.’ The quick=1
parameter at the end of the URL tells GoodLinks to not show its share extension UI since I’ve taken care of the parts I care about in the URL already. With Save to GL available in the share sheet, I can send articles from Twitter, Reeder, or anywhere else I find interesting links directly to GoodLinks pre-tagged, so I only need to tap that tag to start reading those articles.
You can download Save to GL below or find it in the MacStories Shortcuts Archive.
Save to GL
Using GoodLinks’ URL scheme, the shortcut quick-saves a URL to GoodLinks from the share sheet adding a specific tag, which can be changed to something more relevant to you.
The second shortcut I created uses GoodLinks’ built-in Shortcuts actions. Called ‘Read by Tag,’ the shortcut retrieves a list of my GoodLinks’ tags and displays them as a list. Tapping one opens a list of the articles with that tag. When I tap a story’s title, it’s opened in GoodLinks. It’s an excellent complement to the first shortcut, allowing me to open just the stories tagged ‘weekly’ when I’m ready to start reading.
You can download Read by Tag below or find it in the MacStories Shortcuts Archive.
Read by Tag
Read by Tag uses GoodLinks’ Shortcuts actions to display a list of articles based on how they are tagged. Tapping on an article’s title opens it in GoodLinks.
Get the shortcut here.
The final automation I want to share is a GoodLinks Custom Action that works with a very simple shortcut. Custom Actions can be added from GoodLinks’ settings. Using another app’s URL scheme, you can send data to it from GoodLinks. In my case, I’ve created a ‘Weekly Links’ Custom Action that uses Shortcuts’ URL scheme to send a bit of pre-formatted Markdown to iA Writer, my text editor. The parameter input=([Link]([url]))
takes the URL of the article I’m reading in GoodLinks and links it to the word ‘Link’ in parentheses, which is the format we use with linked stories in MacStories Weekly.
The other parameter called ‘name’ launches my ‘Weekly Link to iA Writer’ shortcut. The shortcut copies the Markdown text passed by the input parameter to the clipboard and then opens iA Writer, where I paste it into the document where I’m writing summaries of the links. This is a shortcut that I expect I’ll refine to fit my workflow better, but for now, it’s a handy way to avoid having to manually create the link for each article over and over. Unfortunately, Custom Actions are not available in the Mac version of GoodLinks, and because Shortcuts isn’t available on macOS either, I expect I’ll be working in GoodLinks on my iPad Pro much more than my Mac.
Everything Else
There are a few other details I should mention. Search is fast and reliable on all platforms, and the text of articles can be copied as HTML, plain text, or Markdown. Also, the iPad version of GoodLinks supports multiwindowing along with Split View, Slide Over, drag and drop, context menus, and keyboard shortcuts, making that version of the app the most useful of the trio. GoodLinks also supports Handoff, which I think is far too often overlooked by developers. I really appreciate the convenience of moving an article from one device to another as I work.
What’s Missing
Often, the apps I like most are the ones for which I have the most wishes. GoodLinks is definitely one of those apps. I love what it does, but I also have a handful of things I’d like to see in future versions, including:
- Smart categories like ‘All articles tagged ‘weekly’ that are unread and saved in the past week.’
- Bulk actions for marking articles before or after a certain date as read or deleting them along with shortcut actions to accomplish the same.
- The Mac app needs a share extension and Service to make it as easy to get links into the app as it is on the iPhone and iPad.
- GoodLinks seems to only sync upon launch, which means the Mac app is inevitably out of sync with my iPhone and iPad if I leave it open in the background.
- Search is fast and reliable, but I’d like search terms the app finds to be highlighted and navigable by jumping from one to another.
There are always smaller refinements that could be made too, but I think these additions would make GoodLinks work better with larger collections of links and raise the Mac app to the level of the iOS and iPadOS versions.
I’ve had some frustrating experiences recently with iPad apps that are designed as closed systems that expect users to work exclusively within the boundaries they set. Those days ended with the introduction of extensions in iOS 8 and have only accelerated toward the horizon with Shortcuts and iPadOS features like Split View and drag and drop.
By lowering the barriers to importing and exporting data out of its iOS and iPadOS apps, GoodLinks is a far more powerful tool than it would be on its own. The openness of the app to integrating with other apps makes it more versatile than if it forced users into a particular workflow. Instead, GoodLinks can serve as everything from a straightforward read-it-later app to a component of a more complex process involving the collection, processing, and archiving of links across multiple platforms. As a universal purchase across the iPhone, iPad, and Mac that adopts modern design principles and technologies, GoodLinks is a terrific example of an emerging generation of exciting new apps.
GoodLinks is available on the App Store as a universal purchase on the iPhone, iPad, and Mac for $4.99.