Elytra Blog

The simple RSS Reader. This blog publishes release notes, engineering and design details.

May 2022-2 Release

The 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, and EYYWWDC22 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.

New

  • New User Interface and manager for OPML Imports

  • New marking articles as read now happens in the background. The operations complete instantly and whenever your device has an opportunity to update this with the API, it’ll make an attempt. If you’re offline, it’ll try the next time you’re online.

Fixes

  • Fixed marking read blocking the UI in some cases.

  • Fixed some data-race bugs.

  • [iOS] Fixed Safari extension showing blank feed items.

  • [iOS] Fixed Safari extension showing the UI when only a single feed is identified. It now directly opens the app with that URL instead.

  • Fixed a bug where image re-downloads would fail immediately when retrying with the image proxy.

  • Fixed push tokens not being synced with the server when push notifications are already authorized.

  • Fixed full re-sync causing the app to crash instantly.

May 2022 Release

The 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, and EYYWWDC22 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

The 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.

Elytra v2.6 is now available

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.

A Year in Review and the Future

With 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

Banner: Elytra running on macOS Monterey on the 2021 Macbook Pro

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.


Elytra's feed view with an article open Elytra's feed view with an article open with the New York font applied to titles. Elytra's search view in focus Elytra's with a Youtube video open in the article reader

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 – 2021 Q3 Schedule

Elytra v2.4 is on track for its release later this year in Q3 along side iOS & iPadOS 15 and macOS Monterey. Apart from the various goodies that’ll be introduced in these versions, Elytra will additionally gain support for:

  • Tables in articles
  • Improved external display support (via Airplay or connected through a cable)
  • Inline support for Vimeo videos (similar to Youtube videos)
  • Instagram Feeds support
  • Additional per feed settings

Elytra will also include options to reset various data points of your account directly from the app without having to contact support. This will ensure that should the data on any of your devices get corrupted, you’ll be able to start fresh immediately.

iOS

iOS and iPadOS 15 include some interesting improvements especially around sharing your onscreen content via SharePlay, new multi-tasking views and wider widgets on iPadOS.

I’m also working on improving the overall reliability of the app by digging through older known bugs and patching them as I go. Some of the bugs have been fixed by Apple directly and Elytra gets that added stability for free.

Back in February, I started the process of migrating a lot of code from Objective-C to Swift, but I left out the Article Reader view since its code was thousands of lines spanning across several files. As of last week, I’ve completed the migration for the Article reader as well and found several bugs thanks to Swift’s strongly-typed nature.

The Article Reader is now more resistant to crashing, locking up and sometimes straight-up bad rendering. I’ve even managed to log improved performance under certain cases, but the average performance is roughly the same (differences in 1/1000th of a second) so you won’t notice any difference.

macOS

Apple has thankfully introduced some new APIs in macOS Monterey for Mac Catalyst apps which enables me to reduce some workarounds in code. I’ll be fully supporting Big Sur until a later point in time, so I’ll have to maintain some of them, but I’m glad we have direct access to some of macOS’ existing features now.

I’m also investing some time in writing new interfaces for existing ones which look and feel at home on macOS and work with the various experiences we’re used to on non-touch input based devices. The filters preference tab was the first view to get such a treatment and others like: New Feed, New Folder, Import and Export OPML, etc. will also be getting the same treatment.

Shortcuts

Apple is also bringing the Shortcuts app to macOS Monterey. Now that shortcuts is available across iOS and macOS, I’d love to hear from you about automations that Elytra can enable for you. As an RSS Feed Reader app, there isn’t much Elytra can do for you, but whatever little it can, it should. So please reach out to me at support@elytra.app with your ideas.

If you have any other ideas, feel free to get in touch with me on the above email.

Timelines

Beta builds on TestFlight are now processing once again as of iOS & iPadOS 15 Beta 2. The public beta program for these operating systems has also commenced. If you’re going to be living on the bleeding-edge of things, I’d really appreciate your help in testing Elytra on these versions. These are beta software (both from Apple and I) so proceed with caution as you could end up losing a lot or all of your data.

But if you’re throwing caution to the wind, head over to this TestFlight link and get signed up. I’ll start sending out new builds for iOS 15 starting 5th of July, 2021.

For macOS, head over to the Elytra Releases page, download the app and set it up. Then, open preferences and under Misc > Updates, select the Test builds line. The macOS update will also be available on the same day as the iOS build goes up.

I look forward to your feedback, until then: Happy Reading!

Bug Fixes available for the Summer 2021 Release

Elytra version 2.3.2 running on a Macbook Pro in dark mode.

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 – Notarized Builds Now Available

Elytra running on the M1 family of Macs

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:

  1. 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.
  2. 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 Summer 2021 Update

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's new Add Feed interface shown on the M1 iPad Pro and iPhone 12.

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.

Elytra's new Add Feed UI on iPhone 12 showing feed suggestions.

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

Elytra's new Folders and Bloccs widgets running on ithe iPhone 12.

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

The new filters UI in Elytra 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

Elytra's new subscriptions UI. The prices in the screenshot are placeholders.

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

The new mini audio player playing the Core Intution podcast's Episode 462

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

Elytra now supports playing audio clips within the app.

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 results in Elytra now also match Article titles and author names.

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.

Search results in Elytra on macOS now also match Article titles and author names.

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

The two new reader bar sizes: The small size on the left and the large size on the right.

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.