I am investigating server issues that are preventing webpage text from loading in Unread.

Update 1:21 PM New York City time: I resolved the server issues. I am sorry about the downtime.

Unread 3.5.1 is available from the App Store. This update fixes a bug that caused bad article list summaries for some Substack newsletters.

Unread 3.5 is available from the App Store. This is a modest update that adds support for iOS/iPadOS 17 and incorporates these improvements:

  • This update adds significant performance improvements to Unread’s feed discovery algorithm and changes to the Subscription information screen. Details below.
  • This update adds performance improvements around refreshing Unread Cloud and Local accounts.
  • Mark All Read is now available in the swipe left menu of an article list showing search results. This change is not available in Fever accounts.
  • This update fixes a bug that prevented the app from rotating while zoomed in on an image.
  • The list of starred articles in Inoreader accounts is now referred to as “Read Later”, matching Inoreader’s nomenclature.
  • Unread now more aggressively tries resubmitting articles to Raindrop.io after failures.
  • When removing an account from a device, Unread now uses the phrase “Delete Account” and a trash can icon for deleting a local account. It uses the phrase “Remove Account” and a lock icon for deleting other accounts of other types. When removing an Unread Cloud account, you are given the option of simply removing the Unread Cloud account from the device or destroying the account.
  • With this update articles from Facebook via Inoreader’s Facebook integration have no title.
  • This update fixes bugs around the display of ads from free Inoreader accounts.
  • This update fixes a bug that caused refresh problems with Unread Cloud and Local accounts after significant system clock fluctuation.
  • This update fixes a bug that could cause issues syncing read/unread article status changes with a Feedly account under some circumstances.

Feed Discovery, Subscription Screen Changes

In prior versions of Unread, retrieving a list of feeds for a specific webpage could be slow under some circumstances. Unread would attempt to determine before even presenting the list of feeds whether each feed was summary-only or had full article content, and therefore what the default webpage text settings should be. With this update Unread does not attempt to determine this until refreshing the account after subscribing to the feed. This makes the process of subscribing to a feed from either the app or the Subscribe in Unread share sheet extension faster.

Since the best default webpage text settings are not yet known at the time you subscribe to a feed, the webpage text options are no longer part of the Subscription screen in the app. They are set automatically in the background. As in prior versions, when switching from Feed Text to Webpage Text or vice-versa for an article there is an option to apply that change to all articles from that feed.

As I mentioned at the start of the year I am working on bringing Unread to the Mac. I recently implemented Unread’s caching options on macOS. Like on iOS, paid subscribers to Unread will be able to cache webpage text, images, or both. Unread’s caching makes the display of articles very fast because all the information needed to display an article is on the device. It also allows customers to read articles from summary-only feeds and view embedded images when no network connection is available.

I wanted to share my experience implementing the user interface to setting these caching options on macOS. It is an interesting and somewhat comical example of how building a user interface that seems simple can require several iterations.

On iOS the caching options are simple. There is a Webpage Text caching option and an Images caching option. Each can be set to “Always”, “Wi-Fi Only”, or “Never”. The only caveat is that one cannot choose to cache images without caching webpage text. Unread needs the webpage text to determine the set of images embedded in an article from a summary-only feed.

Initially I thought this was very straightforward, I just needed the same two options on macOS as pop-up buttons. But there were some issues.

What About Ethernet?

The first adjustment I needed to make was accounting for Ethernet. When using an Ethernet connection, caching works as if the device is using a Wi-Fi connection. The settings interface needs to be clear about this.

Technically an iOS device could also be connected via Ethernet, but that is very rare. I would rather the iOS interface stay simple and just say “Wi-Fi Only”. On macOS the situation is different. Ethernet is common enough that the interface should be clear about it.

Therefore the pop-up button options needed to be “Always”, “Wi-Fi or Ethernet Only”, or “Never”. That was a little wordy, but it accounted for Ethernet.

What Is the Difference Between “Always” and “Wi-Fi or Ethernet Only”?

On iOS it is clear that “Always” includes when using a cellular connection, “Wi-Fi Only” does not.

While no current Mac has cellular hardware, a Mac can use Personal Hotspot from an iPhone or iPad. Considering Personal Hotspot is important. I anticipate that some customers will need caching to happen when connected via Personal Hotspot, and other customers will need to minimize their cellular data usage. The ability to treat Personal Hotspot differently needed to stay, but there was still a problem. A Mac user who does not often use Personal Hotspot might look at “Wi-Fi or Ethernet Only” and “Always” and think what else is there besides Wi-Fi and Ethernet, and why is that a different option?

I needed to clarify the options. I could make options for each of the two pop-up buttons any one of the following:

  • “Enabled”, “Enabled except when using Personal Hotspot”, or “Never”
  • “Enabled”, “Enabled even when using Personal Hotspot”, or “Never”
  • “Personal Hotspot, Wi-Fi, or Ethernet”, “Wi-Fi or Ethernet Only”, or “Never”

Each of these is clear, but none would look right as pop-up button or radio options.

Simplifying

I needed to rethink how to present these options on macOS, ignoring how they are presented on iOS. Connecting via Personal Hotspot from a Mac is a somewhat exceptional case, unlike being connected via cellular network when using an iPhone. It needed to be treated as such.

That lead me to think there should be two pop-up buttons: a general purpose Cache pop-up button that could be set to “Nothing”, “Webpage Text”, or “Webpage Text and Images”, and a When Connected via Personal Hotspot pop-up button with the same set of options.

This was a little better.

Even More Simplicity

I was still not happy with the When Connected via Personal Hotspot pop-up button. The name was long, and it felt like overkill.

I ended up removing that pop-up button and replacing it with a checkbox that disables caching when using Personal Hotspot. The checkbox is disabled when Cache is set to “Nothing”. The disadvantage of this approach is that the customer cannot choose to cache both webpage text and images when connected using Ethernet or Wi-Fi, but only cache webpage text when using Personal Hotspot. While that disadvantage is significant, I believe it is the right trade-off on the Mac where connecting via Personal Hotspot is an exceptional case. It keeps Unread’s presentation of options simple.

Cache settings view, with a pop-up button for “Cache” and a “Disable when connected via Personal Hotspot” checkbox
The resulting settings view, subject to change.

What About Cellular Devices Other Than Personal Hotspot?

Ideally a setting for Personal Hotspot would apply to any device that provides a similar function, such as hotspot functionality in an Android phone or a dedicated hotspot device.

I would like the setting to do that. Perhaps it does, but I cannot promise this. Apple’s API documentation only promises that the relevant API call applies to Personal Hotspot.

Even if I could confirm that the setting applied to most Android phones or most hotspots, it is likely that there is an exception to this. I need to err on the side of underpromising what the “Disable when connected via Personal Hotspot” checkbox does. Therefore the wording around this setting will refer only to Personal Hotspot.


How Is Unread for the Mac Coming Along?

I have been using Unread on my Mac for months. Functionality that has been implemented works well, but I am not ready for anyone else to use it — even as a beta. I am hesitant to provide an estimate. However this is an incomplete list of functionality that I have implemented and that works well now in Unread for the Mac:

  • Adding accounts of all supported types (Unread Cloud, Local, Feedbin, Feedly, Fever, Inoreader, and NewsBlur)
  • Syncing with accounts of all supported types
  • Showing subscriptions, article lists, and articles
  • The Subscribe in Unread and Save to Unread share extensions
  • Toggling the read/unread status of an article
  • Toggling the starred/saved/read later status of an article
  • Mark Above Read, Mark Below Read, Mark All Read
  • Mark Read on Scroll
  • Hide Read Items
  • Article list options for showing thumbnails, authors, and summaries
  • Themes
  • Caching

This is an incomplete list of functionality that I still need to implement in Unread for the Mac:

  • Search
  • Adding, editing, and removing feed subscriptions from inside the app
  • Article actions (saving to services such as Instapaper and Pocket)
  • Handoff between devices
  • Changing the dock icon
  • Widgets
  • Importing and exporting of subscriptions
  • Onboarding
  • Account-specific settings around retention of old articles

Things are coming along, but I still have a lot of work to do.

I am upgrading the systems that power Unread Cloud, Unread’s webpage text feature, and the Webpage Text API. This upgrade requires a two-hour maintenance window. I am going to perform this upgrade Saturday, July 1, from 5:00 AM New York time to 7:00 AM New York time.

Unread

For customers using Unread with an Unread Cloud or Local account: refreshing an account, retrieving or caching webpage text, adding and editing feed subscriptions, and using Unread’s share sheet extensions will not work reliably while this upgrade is taking place.

For customers using Unread with an external account such as a Feedbin or Feedly account: the impact will be limited to the first 30 minutes of the upgrade maintenance window. The ability to refresh an account will not be impacted. Retrieving or caching webpage text, subscribing to new feeds, and using Unread’s share sheet extensions will not work reliably during the first 30 minutes of the upgrade maintenance window.

Webpage Text API

For customers using the Webpage Text API directly, calls to webpagetextapi.goldenhillsoftware.com will continue to work as expected with an existing access token. During the first 30 minutes of the upgrade maintenance window, API calls to auth.goldenhillsoftware.com to retrieve an access token will not work reliably.

Technical Details

I am upgrading the database servers powering Unread Cloud and the authentication system from PostgreSQL 14.8 to PostgreSQL 15.3, and from Ubuntu 20.04 to Ubuntu 22.04. Most of my other servers have been running Ubuntu 22.04 for almost a year, but I am more conservative with database servers. The Linode instance hosting the Unread Cloud databases will also get more cores and more storage.

Feedly tweeted the following:

Hello Feedly community, we're very sorry for the disruption, but our service is experiencing a slowdown. Our team is working on it. You'll find the latest updates here: status.feedly.com.

Thank you for your patience, we'll update the thread here as well.

Follow @feedly on Twitter or check their status page for updates.

Update: Feedly later tweeted this:

Dear Feedly community, we're happy to announce that our service has now been fully restored. Your patience and understanding during this disruption has been highly appreciated. Thank you for your continued support.

Unread 3.4.4

John Brayton

May 29, 2023

Unread 3.4.4 is available from the App Store. This update fixes a bug that caused subscriptions imported from some OPML files to have blank titles.

If you enjoy using Unread, please consider purchasing a subscription. Unread subscribers can enable caching of webpage text and images, choose an alternative app icon, save arbitrary webpages to Unread, and more.

It is easy to subscribe to more feeds than you have time to read, or more content than you even have time to scroll through. I subscribe to an inordinate number of feeds myself. I want to share a trick for managing this.

I subscribe to 475 feeds. About half of the new articles I see each day comes from 8 of those feeds. And while I often enjoy articles from those 8 high-volume feeds, they generate a disproportionate number of articles that I am not interested in reading. I have a tag called “High Volume” containing just those 8 feeds. When I fall behind and my number of unread articles is more than I want to go through, I first mark all articles with the High Volume tag read. I do that by long-pressing the “High-Volume” tag and selecting “Mark All Read” from the resulting menu. This trick helps me quickly focus on the articles I am more likely to read.

Unread 3.4.3

John Brayton

May 14, 2023

Unread 3.4.3 is available from the App Store with these improvements:

  • This update makes theme change animations a bit smoother.
  • This update fixes a bug that made the article view move around when selecting text in an article using a trackpad.

If you enjoy using Unread, please consider purchasing a subscription. Unread subscribers can enable caching of webpage text and images, choose an alternative app icon, save arbitrary webpages to Unread, and more.

Unread 3.4.2 is available from the App Store. This update contains these improvements:

  • This update incorporates Inoreader’s new icon.
  • This update fixes a bug that prevented password changes for Feedbin accounts from being saved.
  • This update fixes a bug that affected the display of images associated with gearnews.com articles. This fix will apply to articles downloaded after installing this update.
  • This update makes the Mark All Read operation slightly faster under some circumstances.

If you enjoy using Unread, please consider purchasing a subscription. Unread subscribers can enable caching of webpage text and images, choose an alternative app icon, save arbitrary webpages to Unread, and more.

Unread 3.4

John Brayton

March 14, 2023

Unread 3.4 is available from the App Store. This update adapts to the shutdown of Feed Wrangler:

  • Feed Wrangler accounts can no longer be added to Unread.
  • Unread no longer tries to refresh Feed Wrangler accounts.
  • Unread no longer deletes outdated articles from Feed Wrangler accounts.
  • The ability to subscribe to a feed, edit a feed subscription, and unsubscribe from a feed is disabled for Feed Wrangler accounts.
  • The ability to add, edit, and remove smart streams is disabled for Feed Wrangler accounts.
  • Marking articles read/unread and starred/unstarred still works, but those changes are no longer synced in Feed Wrangler accounts.

The ability to import subscriptions into an Unread Cloud or Local account from a Feed Wrangler account that is not already synced to the device is disabled as well.

If you were using Feed Wrangler and have not yet setup a new account, Unread will let you import subscriptions from a synced Feed Wrangler account into an Unread Cloud account or Local account. Unread also lets you export your subscriptions from a synced Feed Wrangler account to an OPML file. Please get in touch if you need assistance. The Feed Wrangler website still offers subscription exports and migration to Feedbin.

This update also incorporates these improvements:

  • This update adds bug fixes around subscribing to YouTube RSS feeds.
  • This update fixes a bug that prevented retrieval of webpage text for articles from dw.com.
  • This update fixes bugs around Unread’s trackpad support on the iPadOS 16.4 beta.

Feed Wrangler is scheduled to shut down on March 1, 2023, just about one month from now. I want to let customers know how Unread will adapt to this. These changes will only affect customers using a Feed Wrangler account.

As soon as possible after Feed Wrangler shuts down I am going to release an update that removes the ability to add a Feed Wrangler account to Unread. Feed Wrangler accounts that are already added will remain present but have limited functionality, specifically:

  • Unread will no longer try to refresh Feed Wrangler accounts.
  • Unread will no longer delete outdated articles from Feed Wrangler accounts.
  • The ability to subscribe to a feed, edit a feed subscription, and unsubscribe from a feed will be disabled for Feed Wrangler accounts.
  • The ability to add, edit, and remove smart streams will be disabled for Feed Wrangler accounts.
  • Marking articles read/unread and starred/unstarred will continue to work, but those changes will not sync in Feed Wrangler accounts.

The ability to import subscriptions into an Unread Cloud or Local account from a Feed Wrangler account that is not already synced to the device will be disabled as well.

If you are using Feed Wrangler and Unread is your only RSS reader, Unread Cloud will likely be a suitable replacement. You can import your subscriptions directly from a Feed Wrangler account into an Unread Cloud account or a Local account.

If you use Unread in combination with other RSS readers or if you need a web interface, I recommend Feedbin, Feedly, Inoreader, or NewsBlur. Feedbin has a migration tool that migrates subscriptions, starred articles, and the read/unread status of articles from a Feed Wrangler account. This is available via your Feed Wrangler account page.

Please get in touch if you have any questions or need assistance.

Unread 3.3.1 is available from the App Store with these improvements:

  • This update fixes a bug that would cause syncing with a NewsBlur account to miss articles under some circumstances.
  • This update fixes a bug that would cause the Readwise article action to disable itself under some circumstances.

If you enjoy using Unread, please consider purchasing a subscription. A subscription adds the new Save to Unread share sheet extension, article actions, caching of webpage text and images, custom app icons, and more.

Since releasing Unread 3.3 with Save to Unread I have heard from a few customers who did not initially see Save to Unread or Subscribe in Unread in the share sheet. I imagine others have the same question. Both Save to Unread and Subscribe in Unread appear in the set of actions listed vertically with monochrome icons:

If you use either action frequently, you can add it to your set of Favorites as follows:

1. Tap the Edit Actions button at the very bottom of the share sheet.

2. Find Save to Unread or Subscribe in Unread in the Other Actions section.

3. Tap the green plus (“+”) sign next to the action.

Adding an action to Favorites puts the action closer to the top of the share sheet.

Unread 3.3 adds the ability to create an article from a webpage, a Readwise article action, and more. This update is available now from the App Store.

Create an Article From a Webpage

Visit any webpage with Safari or any other browser, open the share sheet, and select Save to Unread. Unread will create a new article with the content of that webpage. In an Unread Cloud account, Local account, or NewsBlur account, the new article will be added to Saved Articles. In a Feedbin account the new article will be added to your set of Pages. In a Feedly account the new article will be added to Read Later.

Similarly when reading an article, the long press menu for a link now includes an Add to Saved Articles, Save to Pages, or Save to Read Later menu item. Selecting that menu item will create a new article with the content of the linked webpage.

In Feedbin accounts, Pages now appears under Articles on the account screen — under Unread Articles, All Articles, and Starred Articles. It no longer appears as a feed subscription.

In Feedly accounts and NewsBlur accounts, articles saved from webpages are initially marked read and cannot be marked unread.

This functionality is available for Unread Cloud, Local, Feedbin, Feedly, and NewsBlur accounts. The Save to Unread share sheet extension requires an Unread Subscription.

Screenshots pertaining to saving an article from a webpage and reading them in Unread

On the left, saving an article via Save to Unread. On the right, reading that article in Unread.

Readwise Article Action

This article action lets you quickly save articles and links to Readwise Reader. After enabling the article action and signing in, you can send any article to Readwise by long pressing it in the article list and selecting Readwise from the resulting menu, by swiping left from any article and selecting Readwise from the resulting menu, or by using the option-r hardware keyboard shortcut from the article list or from an article. You can also send any link inside an article to Readwise by long pressing that link and selecting Readwise from the resulting menu.

Article actions require an Unread Subscription.

Screenshot of Readwise article action in menu
Readwise article action in the swipe left menu of an article.

Additional Improvements

  • Unread now detects Link articles from onethingwell.org and techmeme.com. This change applies to articles downloaded after installing this update. To view both the feed article and the article to which it links, open the article, swipe the screen to the left, select Display from the resulting menu, and then select Feed & Webpage Text from the resulting submenu. Select All Link Articles at the resulting prompt to make that change apply to all link articles from that feed.
  • When invoked on lobste.rs linked list articles, the share sheet and article actions now use the linked article URL instead of the lobste.rs URL.
  • This update adds improvements to the way feeds from ooh! directory are presented in the Subscribe in Unread share sheet extension.
  • This update adds significant performance improvements around loading and caching both webpage text and images.
  • This update adds modest performance improvements around syncing Unread Cloud and Local accounts.
  • This update incorporates bug fixes around Unread’s VoiceOver support.
  • This update incorporates bug fixes around GIFs shown full screen.
  • This update incorporates bug fixes around inline SVGs.
  • This update fixes a bug that caused the article view to move around when sliding your finger to scrub video or audio.
  • This update adds improvements to avoid images flickering in the article list.
  • When unable to retrieve webpage text for an article, Unread now shows the message “Webpage Text Unavailable” on the article screen as static text instead of as a message that floats up from the bottom of the screen.
  • When in Low Data Mode, Unread will not cache webpage text or images.
  • When using the system font size setting, Unread imposes maximum font sizes in order to ensure that the text can be displayed within the app’s layout. With this update those maximum font sizes are much larger on iPad. The maximum font sizes are unchanged on iPhone. The maximum font sizes are also unchanged when Unread has a narrow Split View, Slide Over, or Stage Manager window. When using a very large font size on iPad, the swipe left menu does not show icons.

This update required changes to the privacy policy, specifically:

  • Our servers are used to generate article content for articles saved from webpages under most circumstances.
  • Our servers store articles saved from webpages to Unread Cloud accounts.
  • The privacy policy now links to the Readwise Privacy Policy, as it applies to articles saved to Readwise via the new article action.

Unread 3.3 requires iOS/iPadOS 16.2 or later.

Unread 3.3 is available now from the App Store. If you enjoy using Unread, please consider purchasing a subscription. A subscription adds the new Save to Unread share sheet extension, article actions, caching of webpage text and images, custom app icons, and more.

Inoreader on Twitter:

Due to issues in our secondary data center, you might experience issues with some functionality like search, newsletter subscriptions and accessing very old articles. Our engineers are working on restoring all services as fast as possible. We apologize for the issue.

In a follow-up tweet:

Some details: We've had 3 major power surges today (so far). The first one caused our UPS to fail and to get stuck in bypass mode. A 140+ TB ceph storage cluster is still repairing with multiple failed HDDs after 3 consecutive power failures. This takes time...

In another follow-up tweet:

... No data loss is expected since we also have offline tape backups of everything, but it could take some time to restore articles archive prior to 2019. The other service that is currently affected is the newsletter subscriptions since our email provider is also in this DC.

I recommend checking @Inoreader on Twitter for updates.

This past year brought several big improvements to Unread including:

  • Unread Cloud, a syncing and article retrieval system for Unread.
  • Local accounts that take advantage of the Unread Cloud infrastructure for fast article retrieval.
  • Subscribe in Unread, a share sheet extension making it easy to subscribe to feeds offered by the website you are visiting.

Social Media

This past year brought big changes to the social media landscape. You can now follow Unread on Mastodon or through a fediverse-compatible social network such as Micro.blog at @unread@mastodon.goldenhillsoftware.com.

For now I am continuing to maintain Unread’s Twitter presence. If that changes I will announce that both here on this blog and through the @goldenhillsw and @unread_app Twitter accounts.

In Unread 3.2.1 I added the ability to discover Mastodon feeds. And while I am not going to turn Unread into a Mastodon app, I am thinking about whether there are additional ways Unread should adapt to the growth of Mastodon and the fediverse.

Feed Wrangler

Feed Wrangler announced in April that it is shutting down on March 1, 2023. That is now only two months away.

If you are using Feed Wrangler and Unread is your only RSS reader, Unread Cloud should be a suitable replacement. You can import your subscriptions directly from a Feed Wrangler account into an Unread Cloud account or a Local account.

If you use Unread in combination with other RSS readers or if you rely on Feed Wrangler’s web interface, I recommend Feedbin, Feedly, Inoreader, or NewsBlur. Feedbin has a migration tool that migrates subscriptions, starred articles, and the read/unread status of articles from a Feed Wrangler account. This is available via your Feed Wrangler account page.

Almost immediately after Feed Wrangler shuts down I will release an update to Unread that adapts to this change.

Looking Ahead

I have been working on a feature update that I expect to release within the next several weeks.

My next major development focus for Unread will be a Mac version. I am going to start work on that soon. I cannot estimate when that will ship, and it will likely not be in 2023. But I plan to focus as much as possible this coming year on Unread for the Mac.

Happy New Year!