May 2022 Release
May 9, 2022The May release of Elytra focuses on clearing up old code and files from Elytra’s codebase. A lot is changing under the hood, but very little is changing visually in the app.
This is to prime the codebase for WWDC 2022 which will bring in new OS versions and features to the app.
As WWDC approaches, we'll be seeing a lot of articles coming from the press surrounding the event. RSS feeds are a great way to follow this news as it happens.
So to get you setup, first 1000 users can get their first three months at a discounted price using the code:
EYTWWDC22
for the monthly subscription, andEYYWWDC22
for the yearly subscription.These codes will be valid till the 12th of June, 2022, 12:00AM GMT.
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.
Fixes
-
fixed a bug preventing manual refresh
-
[iOS] fixed a bug causing background refresh to hang until the app was active again.
-
[iOS] implemented Offer Codes Redemption
-
[iOS] fixed viewing logs
-
fixed a bug causing indexed articles to be re-indexed on launch
-
miscellaneous internal fixes
-
April 2022 Release
Apr 29, 2022The April release of Elytra focuses on clearing up old code and files from Elytra’s codebase. A lot is changing under the hood, but very little is changing visually in the app.
This is to prime the codebase for WWDC 2022 which will bring in new OS versions and features to the app.
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.
New
-
Spotlight integration for articles.
-
Re-enabled feeds indexing for Spotlight.
Improvements
-
Improved logging system
-
Sharing logs is now faster
-
Improved mini-audio player reactiveness.
-
When contacting support, logs are automatically attached to the email.
-
When no email accounts are setup, Elytra will now let you share the debug information and logs through the share sheet.
-
macOS users can view the app logs now. Help (Menu) > View Logs
Fixes
-
Fixed a few random crashes caused by the previous available SDK.
-
Fixed a regression where the blog label was not tappable in the article reader.
-
Fixed a bug with updating selected state of article in the list on iPadOS/macOS.
-
Fixed localisation, Voice Over and some accessibility tokens on the article switcher and helper buttons.
-
Fixed importing OPML files not correctly parsing unencoded html entities in feed titles.
Others
- Updated attributions of 3rd party libraries.
-
Introducing Neptune
Mar 30, 2022Prelude
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.
March 2022 Update
Mar 30, 2022The first release of March, 2022 is here and includes a variety of improvements and bug fixes.
The is the first release to introduce Neptune, Elytra’s own full-text extractor based on modern technologies.
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 v2022.03.0:
New
- The app now uses Neptune, a new full-text extractor, for fetching full-text content for articles.
- [macOS] Added Read and Bookmark buttons to the toolbar.
- You can now import and export your feed settings.
Fixes
- Fixed articles rendering an image caption again as a normal paragraph.
- Fixed an accessibility bug where large bodies of text would not be picked up by VoiceOver.
- Fixed an accessibility bug where image captions would sometimes skip punctuations when using VoiceOver.
- Fixed a crash that would sometimes occur when opening an article in its own window.
- Fixed fetching full-text and reloading full-text content.
- Fixed discarding loaded full-text content.
- Fixed a critical issue where the app would start into an invalid state after setting up the account.
- Fixed a crash which would sometimes occur when opening an article in the browser.
- Fixed a crash which would sometimes occur when setting up an article.
Notes
If you see continous 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 to unblock
api.revenuecat.com
in your DNS blocker settings to get things to work.February 2022 Update
Mar 2, 2022Elytra got multiple releases in February. This post outlines the changes across all those releases and acts as a monthly summary of things happening here.
Version Numbers
Starting with the recent releases, the versioning scheme for the apps has changed. The previous version numbers wouldn't make much sense to either of us, except for identifying a particular release.
That’s not helpful if I have tens of builds for the same version and the macOS and iOS apps are running two separate builds for the same version.
Now, the versions are numbered as year.month.release, the latest release being
2022.02.4
. That makes it easy for the both of us to identify when this build was released. For people browsing the App Store, it's a clear indication of a regularly updated app as well.Changes, Improvements and Fixes
Improvements
-
Added new keyboard shortcut to load Full-Text when an article is open.
-
Updated Japanese translations
-
Improvements to bulk marking read and improvements around on-device logging for the same.
-
Hint for externally opening articles
Fixes
-
Some fixes around images from specific hosts failing to load.
-
Fixed some issues around fetching full-text.
-
Fixed a bug causing full-text cover images not being drawn in the article view.
-
Fixed an issue with some attachments not appearing in articles.
-
[iOS] Added Logs viewer and export under settings.
-
Fixed swipe action on article not correctly marking an article as unread.
-
Clear local data correctly when resyncing.
-
Fixed shadows of the categories in the New Feed section.
-
Fixed a crash when processing block quotes in some articles.
-
Fixed a crash occurring after a successful OPML import.
-
Fixed crashes around importing feeds from OPML files.
-
Fixed feeds not mapping to folders when importing structured OPML files.
-
Fixed a bug with first time account setup causing multiple not-found errors in some cases.
-
Fixed a crash when syncing new articles which only contain a cover image.
-
Fixed adding a new feed directly to a folder.
-
Fixed feeds resync discarding feed settings.
-
Fixed feeds resync not remembering custom feed names.
-
Fixed shadows of the categories in the New Feed section.
I’m going to make this a habit: post a monthly summary at the beginning of each month so changes to app can be clearly tracked and if we missed out anything, we can go back and look at these logs to figure things out.
There are a few new repos I’d like to mention here:
-
Localisations All the translation files used by Elytra. If you find a mistake in a translation, please feel free to submit a correction there. You can also add a new language that you're comfortable translating to. The contents of that repo use a permissive license, so other developers can also use translations that fit their apps from there.
-
IssueTracker The Issue Tracker is a public repo for tracking bugs and feature requests. If you have one, please open an issue there with the correct type so other users with similar requests can also chime in.
Thank you for reading, have a safe and cheerful day.
-
Elytra v2.6 is now available
Jan 20, 2022 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.Elytra 2022 LTS Plan
Jan 15, 2022This post outlines the Long Term Support (or LTS for short) plan for current and upcoming releases:
iOS:
-
v2.6.x is scheduled to be released soon and will be the last version to support iOS 14.0–14.7.
-
v2.7.0 will support iOS 15.0 and later only.
-
If any critical fixes are required for iOS 14.x support, they will be released in the 2.6.x pipeline.
macOS:
-
v2.6.x is scheduled to be released soon ad will be the last version to support macOS 11.0 (Big Sur).
-
v2.7.0 will support macOS 12.0 and later only.
-
If any critical fixes are required for macOS 11.x support, they will be released in the 2.6.x pipeline.
Timelines
The v2.6.x pipeline will continue to receive critical fixes, if any are necessary, for up to 6 months after v2.6.0 is released. After that date, no critical fixes will be issued and LTS support will end for those releases.
Hopefully with the release of v2.7.0, the LTS support will span for longer durations considering more features being supported now in iOS 15 and macOS 12.
If you have any questions about the LTS plan, feel free to get in touch with me over email.
-
A Year in Review and the Future
Jan 6, 2022With 2021 wrapped, we end another pandemic laden year, and I hope it has been a gentle one for you. Here’s what happened for Elytra in 2021:
- Exactly a year ago, I made some pricing calibrations for the Indian AppStore and some other regions to keep the original prices for Elytra’s subscription plans.
- Soon after, we got the 2020 Winter update which brought local sync, and support for local notifications. It also brought a feed settings user interface to toggle per feed settings like Notifications, Automatic Reader Mode and more.
- Later in May, Elytra’s 2021 Summer update went live which brought in numerous updates and improvements to the app. It was one of the largest updates ever in terms of changes of lines of code.
- Along with the 2021 Summer release, the Notarized Builds were also made available enabling you to download Elytra directly from me.
- And in the last quarter, Elytra v2.4 and v2.5 were released alongside the iOS 15 and macOS 12 releases respectively.
The Future on iOS and macOS
Overall, 2021 was much busier for Elytra than 2020 was. A lot of improvements, updates and new features. And if you’ve been a customer of Elytra for a while, you know that never stops.
The 2022 Q1 release is just around the corner. I’m polishing up the release now, and thanks to my beta testers, this has been very quick. The Q1 release is mostly going to focus on performance & stability, and moving to a new storage engine. More on that once the actual release becomes available.
You don’t have to wait though, if you’re interested in a TestFlight build, jump right in.
The API Updates
The API has seen numerous updates and bug fixes in the last couple of months. Most notable ones include:
- Articles with no summaries are now pre-filled with a summary extracted from the main content when available.
- Sync now no longer relies on an outdated token system, and without it is much more faster.
- Improved Push Notifications delivery
That’s all for now, have a happy and gentle new year, and keep reading. Cheers.
Elytra v2.5 for macOS Monterey now available
Oct 25, 2021Elytra 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 v2.4 is now available
Sep 20, 2021Elytra’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
</source></source></source>
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.