RSS Feeds are amazing! Many of us have built entire apps, services and businesses around it. The specifications for it have existed for a long time. Newer specifications like JSONFeed are powering new workflows around it.
Earlier in the previous decade, websites began injecting ads, trackers into their RSS feeds. Those were easy to get around for Elytra.
However, soon after the rise of Ad Blockers and similar technologies, more and more websites wanted people to open their web pages through their RSS feeds. This leads to websites providing only truncated excerpts in their feeds.
This become a legitimate problem soon after Social Media Giants began fiddling with users feeds by converting a timeline to a suggestions list like the coupons section from a local newspaper ¯\_(ツ)_/¯.
To solve this problem, a lot of genius services like Postlight’s Mercury popped up. They provided a huge boost to feed reader apps (and many others). Almost every app I used before Elytra used it. Elytra used it up till version 2022.2.4.
However, Postlight later made Mercury an open-source project which didn’t receive much attention from the original authors and the community since 2019. I tried to add my own patches to it however, it became tedious to maintain in its current form without doing a complete rewrite against the latest tooling and NodeJS versions.
Since I was considering a rewrite anyway, I thought to myself: why not do it with my new favourite programming language as of 2022: Swift. And as I was going to rewrite things, why not do it simpler (if not better!).
Introduction
This led me to create Neptune, a pure Swift based system to fetch and parse full-text content from webpages for Elytra. It’s fast, very very fast (more details below) and uses a simpler logic compared to mercury to parse and process webpages.
The Swift programming language, by its design, leads to type safe code that brings fewer surprises compared to NodeJS. It also compiles down into a single executable binary, which has its own tradeoffs, but brings three powerful, key features:
maintainability
performance
more performance
Numbers
Oh, and I’m not kidding. On a tiny t3.nano (512MB RAM, 2GB swap, 1vCPU) server, these are some numbers:
Process
0.1K Articles
1K Articles
10K Articles
Mercury
28s
378s
3500s
Neptune
12s
135s
1428s
Change
+40%
+41.17%
+42.05%
These tests were performed with the t3.nano instance having full CPU credits available to it.
These tests did not persist any data to disk by itself.
These tests were performed in partial isolation: only the process being tested was run along with the test script.
If you’re asking yourself, what the numbers mean for you: the answer is quite simple: Neptune is very quick at fetching full-text context from your favourite blogs. Additionally, because it’s simpler to maintain and upgrade, adding support for new websites is vastly simpler and requires only a few lines of code of me (sometimes only 6 lines, 4 of which are bootstrap code).
The Future
I’m sure Neptune is not ready for any commercial use, not in its current form anyways. But I will eventually offer Neptune as a standalone service for other apps to use. I’ll document this at a later point in time.
Users of Elytra can take advantage of Neptune starting with the v2022.03 release as the default extractor. No settings to toggle. It’s all set up.
If you spot any issues, or articles from specific websites failing to load, please submit an issue on Github. It has a standard format making it easy for you to submit reports. I look forward to reading from you about your experience with Neptune.
The first release of 2022 is here and brings some incredible performance enhancements to Elytra. This is the culmination of all the work I put into the app’s engine in 2021.
If you feel generous and have a couple of minutes, please leave a review on the App Store. It makes a huge difference for me. Thank you in advance.
Here’s what’s new and changed in v2.6.0:
New
Moved to a new of storage engine (Apple’s own) which is much faster, reliable and will help implement a lot of the upcoming features in Elytra.
New Small widget that shows the latest unread article from a single feed of your choice.
New onboarding flow
The app is now localised for 10 languages. If you spot any mistakes in the text translations, please get in touch.
Reset Account: You can now reset parts of or your entire account without having to create a new account.
Added Source Han Serif font for improved support in CJK articles.
macOS: Added a “Reset App” item under preferences.
Improved
Notifications will now include the cover image if the article includes one.
Major improvements to handling and managing subscriptions in the app. See note below if subscriptions data fails to sync.
Widgets now directly load data from the common data store, so they update much faster and sync more reliably.
macOS: Added Internet Access Policy items to give descriptive messages of connections in apps like LittleSnitch and MicroSnitch.
macOS: Fixed spacing for items in Preferences.
macOS: Improved full-screen support for videos in Big Sur. Toggling full-screen on a video will now open it in the OS’s fullscreen, not limited to the app window’s area.
Fixes
Fixed a bug where favicons would sometimes never load for a feed even with a valid URL.
Fixed loading indicator showing when no where articles available (after switching sorting order).
Opening articles from feeds with reader mode enabled now works across all article list types (unread, today, folder…)
Fixed a crash that would occur on opening certain articles with deeply nested content.
Fixed a critical range overflow bug when applying attributes to paragraph content.
Fixed a bug where toolbar article navigation buttons would not update after changing the article.
Temporary Removals
Due to some bugs in modern systems, the following have been temporarily disabled:
Hide bars on scroll (iOS and iPadOS)
Search on macOS
If you notice any translation errors, please feel free to reach out to me on support@elytra.app. I’m continuously working with wonderful people who are helping with translating the app and introduce new languages to Elytra. If you’d like to help, you can check out the instructions here.
Notes
If you see continuous errors when fetching information about subscriptions, purchasing or restoring: please check if you have a custom DNS blocker enabled on your device. Some of these prevent connections to the service Elytra now uses to manage subscriptions. You may have unblock api.revenuecat.com in your DNS blocker settings to get things to work.
Elytra is now optimised and available for macOS Monterey. It also includes performance and usability optimisations for macOS Big Sur. You can download it directly from here or from the App Store.
This is the first release with a modern and cutting-edge foundation which focuses on reliability, stability and ease of adding new features in future releases.
If you feel generous and have a couple of minutes, please leave a review on the App Store. It makes a huge difference for me. Thank you in advance.
Along with the macOS release, a small iOS release is also available which brings the most recent fixes to the iOS app and brings the two on parity.
New
New UI for the New & Rename Folder prompt
Improved UI for Feed Info UI
Safari Extension to add new feeds to Elytra directly from the webpage you’re browsing.
Quick Notes support (only on macOS Monterey)
Added a new sync method to also sync added and deleted feeds on sync
Added a new Portrait Lock preference under miscellaneous settings
Added support for tables in articles
New and improved article list view. It renders twice as fast now and uses less power overall
Added a new setting to the Feed Settings: You can now toggle full-text fetching for feeds. When you open an article from that feed, the full-text content will be automatically loaded.
Added a “Enable Push Notifications” toggle under Preferences > General. You will only see it if Push Notifications are not already enabled on that device. For cross-device sync, it is recommended you turn this on.
New Options for Feeds: Open Articles in the Browser. This is useful for feeds where full-text extraction fails.
Improvements
Improved loading speed for the Unread and Today feeds.
The panel sizes (Sidebar and Articles List) are now persisted across app launches.
New Photos Browser
Improved handling of adding new feeds via the url scheme
If you add multiple folder widgets, you can configure each one with a unique folder (latest macOS only).
Improved error messages across the app. The app will now display error messages directly from the API’s error
Added delete and info swipe actions to the search results for feeds
Improved scrolling performance in the article reader
New Appearance customisation UI in the article reader
Improved visuals for the folder row if a feed is being dropped onto it
Improved dragging states for feeds and articles
The sidebar now maintains the folders expansion state across app launches
Added the cmd + G (cmd + shift + G for backwards) shortcut for navigating to the next article search result
Improved sync and timeline loading performance for users with several filters
Fixes
Fixed an issue where changing the font-size from the Preferences window to any value other than System would keep system sizing enabled
Fixed an issue where closing the main window would prevent the window from being opened again
Fixed an issue which caused the macOS tint color to not be properly set for all views
Foxed an issue where the window’s size and position would not be maintained with window manager apps installed and running
Fixed an issue where marking some articles as read failed if they were recently synced on to the device
Fixed an issue across all platforms that could sometimes cause a crash on launch when available system memory is low
Fixed an issue with the title view in the articles list being hidden after scrolling
Fixed an issue when swiping back from the article reader when the bars are hidden to cause the layout to get janked
Fixed an issue with the new sync not updating the feed’s folder structure if one already exists
Fixed an issue that caused a crash when changing from light to dark mode and the article reader was open
Fixed a crash that would sometimes occur when opening an article with Lists containing multiple line breaks at the beginning of the paragraph
Fixed a bug with importing OPML Files with invalid/incorrect format
Fixed an issue where the feed settings would not be loaded correctly on app launch
Fixed an issue which caused Feeds only re-sync to fail which also caused background sync to fail sometimes. This could potentially cause feeds metadata to get wiped
Elytra’s 2021 third quarter release is here and is ready for iOS and iPadOS 15.
This is the first release with a modern and cutting-edge foundation which focuses on reliability, stability and ease of adding new features in future releases.
If you feel generous and have a couple of minutes, please review the app on the App Store. It makes a huge difference for me. Thank you in advance.
New
Quick Notes
Quick notes has been one of my favourite additions to iPadOS 15. You can quickly reference articles using it in your notes with a simple drag and drop.
Prominent Scene
The inclusion of prominent scene is a great addition to the multitasking arsenal on iPadOS. Simply pinch out from an article to open it inside its own prominent scene.
Extra Large Widgets
Extra large widgets on the iPadOS 15 makes getting a quick overview of recently fetched articles even easier. All widgets have been updated to support this new size.
Other New Additions
Added a new sync method to also sync added and deleted feeds on sync.
Added a new Portrait Lock preference under miscellaneous settings.
Added support for tables in articles.
New and improved article list view. It renders twice as fast now and uses less power overall.
Added a “Enable Push Notifications” toggle under Settings > Notifications. You will only see it if Push Notifications are not already enabled on that device. For cross-device sync, it is recommended you turn this on.
Added the old v1 app icon to the list of customisable icons.
New options for Feed Settings:
Open Articles in the Browser. This is useful for feeds where full-text extraction fails.
You can now toggle full-text fetching for feeds. When you open an article from that feed, the full-text content will be automatically loaded.
Improvements
Categorised keyboard shortcuts on iPadOS.
Added a small bar underneath the status bar when you have the hides bars preference enabled. This prevents underflow of the content and helps prevent the distracting “text over text” situation.
New Photos Browser
Improved external display/Airplay handling
If you add multiple folder widgets, you can configure each one with a unique folder. The previous limitation of a single folder has been fixed. (back-ported to iOS 14).
Improved error messages across the app. The app will now display error messages directly from the API’s error.
Added delete and info swipe actions to the search results for Feeds.
Notifications under the app settings will now also show Local Notifications if any are enabled.
Improved scrolling performance on iOS 14 and 15 inside the article reader.
New and improved settings UI.
New Appearance customisation UI in the article reader (on iOS 15, it’ll appear as a bottom sheet).
Improved visuals for the folder row if a feed is being dropped onto it.
Improved dragging states for feeds and articles.
The sidebar now maintains the folders expansion state across app launches.
Added the cmd + G (cmd + shift + G for backwards) shortcut for navigating to the next article search result.
Added Keyboard shortcuts to dismiss interfaces like New Feed, Feed Info and other modals.
Improved sync and timeline loading performance for users with several filters.
Added the ability to reuse your existing account ID for signing in to the app. Please contact support on details on how to use this.
Fixes
Fixed an issue where marking some articles as read failed if they were recently synced on to the device.
Fixed an issue across all platforms that could sometimes cause a crash on launch when available system memory is low.
Fixed an issue with the title view in the articles list being hidden after scrolling.
Fixed an issue when swiping back from the article reader when the bars are hidden to cause the layout to get janked.
Fixed an issue with the new sync not updating the feed’s folder structure if one already exists.
Fixed a crash that was caused when changing from light to dark mode and the article reader was open.
Fixed an issue with the Article Reader’s bottom helper view used a black background and black shadow causing it to appear blurry for some users.
Potentially fixed a crash for some users when using the toolbar preference.
Fixed a crash that would sometimes occur when opening an article with Lists containing multiple line-breaks at the beginning of the paragraph.
Fixed a long standing issue on iPadOS where the currently selected article or sidebar item would get deselected when the app was backgrounded and then foregrounded again.
Fixed a bug with importing OPML Files with invalid/incorrect format.
Fixed an issue where the feed settings would not be loaded correctly on app launch.
Fixes an issue which caused Feeds only re-sync to fail which also caused background sync to fail sometimes. This could potentially cause feeds metadata to get wiped.
Since the release of the Summer 2021 builds last week, I have released two additional patch versions for Elytra.
The builds are available on the App Store and on the dedicated Releases page.
Combined Release Notes:
Fixed an issue where the app would crash when creating a new folder.
Fixed some minor visual bugs with the Subscriptions Interface.
Fixed a bug causing the app to always index feeds on launch for Spotlight.
Fixed a bug where the article reader preferences would not apply in real time.
Drag & Drop for feeds across folders is now enabled.
Drop & Drop for articles into Unread or Bookmarks is now enabled.
Fixed an issue with articles rendering empty audio players in the article reader.
Fixed an issue with the articles next / previous commands being mapped to cmd + up and down arrow. They are now correctly marked to J and K including the app menu.
Fixed an issue where no activity indicator would be shown on macOS when adding a new feed.
Fixed some minor bugs with adding new feeds.
Fixed loading Youtube videos.
Fixed an issue where audio from videos wouldn’t play if the mute switch on your iPhone is on.
Elytra v2.3 has just been released, you can read all about here.
I’m also excited to announce that Elytra is now also available on macOS as a Notarized app. You can head over here to download the latest release.
It’s same as the Mac App Store release with two distinct differences:
The app can auto-update itself (or you can manually check for updates) between the two Release and Test Build pipelines. The release line is recommended for most users, the test line is for those who like living on the edge.
The app will use an external Payment Processor which enables me to offer discounts, especially for students, you can read more about it here.
Going forward, I’ll be able to release more frequent fixes directly to the Notarized builds. These builds currently do not have any kind of crash reporter built-in. So if you encounter any crashing bugs, please do take a moment to send me the crash report.
I look forward to hearing from you about this, you can always reach out to me on twitter or email me at support@elytra.app. Happy Reading.
Elytra’s 2021 Summer Release is here, just in time for WWDC 2021. It’s been extra challenging to work on v2.3 as this is the first release of Elytra that introduced Swift into various core systems of the app.
If you have read my earlier post about the public beta, you’d know this has been in the works for a while, but the work on the new version started all the way back in February of 2020.
This is slightly bigger release (even I am not used to this) so this is going to need a TLDR.
TLDR;
New system for adding feeds: You can explore topics by prefixing your keyword with the # symbol. Or directly search for a website with its base URL.
Sync is now faster: more reliable and uses a delta updates approach to conserve power and network bandwidth.
Two new Widgets: Folders (configurable) and Bloccs.
Improved App Performance: Thanks to a new core, the app’s performance has seen a big boost and crashes less.
Filters on macOS: You can now add and remove filters directly from the macOS App.
Mini Audio player: Elytra now ships with a mini-audio player to quickly browse through audio-clips and podcast episodes.
Media Playback: Elytra now comes with improved support for Youtube and Apple Trailers feeds.
Search: Searching for feeds and articles is now simpler than ever and on macOS, it’s always available.
Reader Bar: You can now customise the reader bar size and choose from three sizes: Small, Regular and Large.
Finally: As always, an assortment of improvements and fixes.
New
Adding Feeds
Elytra v2.3 introduces a new system for finding and adding feeds to your lists. You can explore some pre-defined topics or search for topics of your interest by prefixing the keyword with a # key.
To directly explore feeds linked by a website, simply type in the website’s URL. If you have a feed URL, then you can directly use that.
Something that been asked for a long time is to directly add a feed to a folder when creating it. It’s now possible to do so and all your folders will be listed out. By default, None will be selected.
Core Sync
Syncing across all apps is now faster, more reliable and also automatically syncs in the background to keep all your devices in sync and ready to go. This lays a critical foundation for future releases.
The new sync system is written in Swift (version 5.4 for those who care) and is much more resilient, fault-tolerant and heavily tested compared to its previous iteration.
It also now uses a delta updates system so your devices only download the data they don’t already have. Multiple sync triggers can happen simultaneously on a single device of yours (say you added a feed, then marked all the items inside that feed as read which will trigger two events). This ensures your devices consume less power and consume less network bandwidth.
Two New Widget Types
v2.3 brings two new Widgets: Folders and Bloccs. The Bloccs widget brings up to 6 of the latest unread articles from your feeds to your device’s homescreen, decorated by the articles’ cover images. The Folders’ widget enables to you select a folder of your choice and showcase up to 4 articles from that folder. I can’t wait to see how you have these setup on your devices.
Performance
I’ve spent all of March working through various modules in the app to optimise the performance. The Article Reader was the only component in the app that was optimised down to the last bit (to my best knowledge and technical capabilities). Everything else was just mish-mash. You should now notice improved performance in the app for just about any activity you’d perform in it.
Filters on macOS
Filters have been available in Elytra since v1.0 so it was always weird that there was no UI for it on macOS. Now there is, it’s mac-assed and works exactly as you’d expect it to.
### New Subscriptions UI
I also took this opportunity to redesign the subscriptions interface. The new design is an indicator towards the next iteration of the design system for Elytra, it better and more clearly explains the advantages of each subscription type and enables you to quickly switch between the two offerings.
Mini Audio Player
For a long time, I’ve used Elytra to notify me when new episodes are available for the podcasts I follow. In v2.3, I’ve built a mini-audio player into the app. It detects Podcast episodes and automatically updates its rendering state. This is in no way a replacement to a full-fledged Podcast app, but just a little something to get you a sneak-peak into that episode if you so desire.
Rich Media
I’ve made several improvements to the API and the apps to improve media playback. This fixes some Youtube videos not loading correctly. But most importantly, the apps now load, and enable playback of Movie trailers from the trailers.apple.com RSS Feeds.
Search
The apps now feature global search enabling you to search for Feeds and Articles. You can also match for author names. In a future release, tokens will also be introduced to tokenise your search for a more precise hunt.
If you’re looking up an article and there are no feed suggestions for the app to provide, the app will suggest feeds from the articles it has found. So you can jump to the feed or the article.
Reader Bar Sizes
To ensure the app is accessible by everyone, Elytra has always supported Dynamic Type, Voice Over and the various navigation accessibility features that macOS and iOS provides. In March, a customer got in touch with a complaint about the reader bar and a potential solution. We worked on that solution and I am now happy to let you know that the reader bar now comes in three sizes: Small, Regular (default) and Large. You can toggle the size from Settings > Misc.
PS: This setting has no effect if you’re using the toolbar.
Improvements
Drastically improved performance and accuracy of batch marking articles as read. (In my testing, marking a batch of 2000 articles as read previously took over 8s, and now only takes 2s).
Counting unread articles is now literally 6 times faster. The app can now spend less time keeping these counters up to date and more time rendering articles.
Improved handling and logic for rotation on iPadOS. This also fixes the blank slate launch state of the app on iPads in portrait mode.
Sharing articles on macOS will now use the recommended approach instead of the workaround I was previously using. This will ensure a smoother experience across various macOS versions.
The macOS app will now correctly sync after waking up your mac from sleep.
Fixes
Fixed a critical and long standing issue where articles marked as read on one of your devices would not sync to your other devices.
Fixed a critical bug where the “Start Trial” button would have no effect or start the process and keep the button disabled preventing retries.
Fixed an issue where opening a Feed or a Folder and then opening the Unread list would reset the sorting preference to Unread – Latest First.
Fixed an issue with sync not working correctly upon a fresh signup.
Fixed an issue where the wrong state for the article reader would be setup: incorrectly showing next and previous articles to be available when only a single article was available in that list.
Fixed an crashing bug on iPadOS where the app would crash after backgrounding the app.
Fixed a bug in which HTML would show in the summary field.
Fixed a bug with Substack newsletters where the images in the posts would be really small (Substack converts the original URLs into their image proxy URLs for the Feeds which caused this issue, Elytra strips out this information and then loads the images).
Fixed a bug where custom feed names would not correctly sync across to your other devices.
The macOS app will no longer open duplicate windows. If it finds an existing window for the same activity, it’ll bring that window to the foreground.
Externally connected displays on iPads will now mirror the the iPad screen. This would previously display the app’s UI at native resolution with no scaling. A future release will correctly address this issue.
It’s finally happened. It took 3 years and I hope it was worth the wait.
Elytra for macOS brings the same native rendering performance you have come to know and love on iOS and iPad OS.
All of this has been possible because of Apple’s Mac Catalyst system which has been significantly improved on Big Sur, since its debut on macOS Catalina.
Your subscription will carry forward to the macOS App as well, no separate purchase or subscription will be necessary. (You can also take this opportunity to take advantage of the special pricing I have going on for Diwali)
I’ll be sharing a deep-dive into the design decisions for Elytra, but for now, I hope you enjoy the release.
As always, Happy Reading!
PS: A small update for iOS and iPadOS has also been released, so be sure to grab that from the App Store as well.
Version 2.1 brings a lot of stability and Quality of Life improvements to Elytra before the final Winter release of this year. This also brings the iOS App up to parity with its macOS app to be released soon.
This build also brings support the the newly released iPhone 12 lineup as well as the iPad Air 4th Gen.
Designed by the Braille Institute of America, and offered for free, Atkinson Hyperlegible is a great new font choice for greater visibility and legibility for low vision readers. Paired with an Accessibility focused app like Elytra, I hope this improves the reading experience for you.
If you have a URL copied, the app will automatically detect it when attempting to add a new feed.
Tapping an article now dismisses the sidebar on iPads in portrait mode.
The sidebar items are now correctly highlighted. They no longer use the tint colour when selected.
Search in the sidebar now uses Alpha sorting like the rest of the view.
Multiple improvements throughout the app for Voice Control (VC) and Voice Over (VO) a11y options.
The app now correctly shows titles for icon only buttons when VC is activated.
The app now correctly updates states for icon only buttons when VC is activated.
Simplified Article labels for VC to make it easier to select articles. They will now be presented as “Article 1”, “Article 2” and so on… Previously, the article title’s was used which could be difficult to command with long titles.
VO will now read the article index followed by its title.
Improves formatting for CJK Text. CJK text should no longer appear as one big blob of text. It may still happen if the source provides it that way.
Unreads Widget intents now work as expected. You can now toggle between loading favicons and cover images in the widgets.
The article viewer will now draw horizontal rules. (<hr /> element equivalent.)
During first launch, if your account already has a subscription, the trial interface is no longer shown. You are directly taken to the Feeds Interface.
Added support for dragging and dropping articles into the Unread or Bookmark rows in the Sidebar to perform respective actions.
Added support for dragging feeds between folders or outside folders.
Added support for dragging feeds to external applications. This action will drag with the RSS Feed URL. (iPadOS only)
Updated images for GIF loading and playback controls.
Tapping a gallery image now opens it in full view.
Fixes
Fixed a rare bug that would prevent the bookmarks counter from updating when adding or removing bookmarks.
Fixed an issue where unread counters would not update when you have 0 unread articles.
Fixed loading of GIF favicons.
Removing a bookmark while in the bookmarks feed now removes the article after a small delay.
Fixed a rare crashing bug that would occur when initiating a Refresh in the Feeds Interface. (Thank you for Lee.)
Fixed an issue with the Today Count always reporting as 1.
Fixed rotation behaviour on iPads.
Fixed an issue where the unread/today counts would change when reading an article from a feed you’re not subscribed to.
Fixed an issue where the selected feed would remain selected after opening recommendations.
Fixed an issue with the Unreads widget not updating in a timely manner.
Fixed a background crash that would occur when syncing and downloading new data.
The app now saves restoration data properly so launching the app from a saved state is now faster.
Fixed an issue where images in the article viewer would fail to load (network issues, invalid URL or for whatever other reason) and would show a large placeholder image.
Twitter apps selection now works again when tapping tweets.
Matched the keyboard navigation to the macOS App.
Images in Widgets should now load reliably. I’ve discarded the older method of loading images in favour of a more standard approach as recommended by Apple Engineering.
Fixed the app using a semi-bold font for headings on iOS 14.0.1 and higher.
Image Loading options now correctly apply to favicons inside the Articles List Interface.
Title Font preference now correctly applies to headings inside the article as well.
Hot off the tracks of v2.0.2 comes v2.0.3 with a couple of more fixes. All known issues in Elytra’s v2 are now fixed and patched. If any additional issues are reported, those will be addressed in v2.1.0 unless they prevent the app from functioning.
Improvements
Improved Swift and SwiftUI Syntax Highlighting
Improved Swift & SwiftUI syntax highlighting in code blocks.
Fixes
Fixed an issue where selecting the “Only load on Wi-Fi” image bandwidth setting did not persist correctly.
Fixed an issue where selecting the “Low Res” image resolution setting did not persist correctly.
Fixed a bug where toggling dark mode (or already present) did not correctly set the colours for the filters’ input.
Fixed an issue where the Image Viewer would not display the image at full resolution once it is loaded.
Fixed an issue where the OPML Interface would launch with the base tint on the button backgrounds and then update to your preferred tint.
Fixed an issue where semantic colours would not load correctly on iOS 14.0.1 for your selected tint colour.
Fixed a crash that would occur when bootstrapping the local cache database.
Fixed a crash that would occur when saving restoration data.
Fixed an issue where images in articles would be scaled incorrectly when using the image proxy.
Fixed a bug where tapping on the Attributions item in the Settings interface would crash the app.
Fixed a crash that would occur when decoding certain HTML encodings. (16-bit decoding is hard, y’all!)