Elytra Blog

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

August 2019 Update

Web Service

Over the last couple of days, I have been testing a new way for reliably fetching and caching RSS data from your favourite RSS feeds. 

Ironically, my preliminary implementation of this reliable method wasn’t all that reliable usually not adding new articles to the database. Luckily, I caught this issue within 24h and has now been patched. 

This change matters for two reasons:

  1. Although this new method is slower by almost 50%, it uses less resources like CPU and RAM, so I was able to downsize the server that runs this process. This means a small reduction in operating costs for me. 
  2. I have improved logging across the board so now I’ll know exact reasons why a particular RSS Feed failed to update. So the next time if you reach out to me telling me a feed wasn’t updated in a while, I should be able to resolve it quicker. 

iOS App

The progress on this has been slower than I had hoped. iOS 13 is changing a lot across the Betas, and has been one of the buggiest releases in recent memory. I have all the major things covered but I’m most likely not going to release the iOS 13 release of Elytra until the iOS 13 GM becomes available. 

macOS App

Yes, this is planned. But in the mean time, NetNewsWire is out in Public Beta. Definitely give it a shot. 

Improving Discoverability

Finding interesting content to read online has always been easy. Run to your nearest Subreddit Stand or Twitter Board and you’ll find yourself bombarded with a lot of information. What you wanted are topics you’re interested in. So you spend time talking to people and finding new sources. And when you do, you add its RSS Feed to your favorite Reader, like Elytra.

There is scope for improvement here. A lot of social networking services use Graphs to determine what you may want to read. That’s cool (it is, I’m completely fascinated by it) but it involves opening up your reading habits, requiring and storing your personal info, syncing your contacts so the service and find your friends and see what they are reading. It all adds to up to being a very invasive technique.

My Proposal & Implementation

I queried up the blogs in Elytra (over 9000 of them, wow!) and I was happy to see that the majority of them provide tags/categories information through the RSS Feed 1. So I decided to use this information to bring these topics of interest to you from blogs you already follow.

Tags in Unread & Blog Feeds

I’m still exploring this direction but I believe this will open up a lot of possibilities for you to discover new blogs, authors and topics of interest. This information is already made available to Elytra by the blogs and as it does not rely on your information, we successfully keep things private as usual.

I’d love to hear your thoughts on this so head over to the Reddit discussion here.

1. If you run a blog which does not expose this information through its RSS Feed, you should definitely consider adding those.

Elytra December Update

In this post, I wanted to quickly write down a couple of notes for you to read at your leisure. 

  • There is no release scheduled for this month however I am working on a fix release scheduled for next week to fix a couple of bugs reported by one of the newest users of Elytra. Thank you, Tim! 
  • The next big release is scheduled for after 15th of January 2019.
  • I am continuing to improve the API for Elytra which powers the sync services, automated account creation, OPML imports as well a lot of the real time logic which brings push notifications from certain blogs. 

Real Time Updates

The last point from the above list has kept me wondering, how can I improve the situation where publishers can ping Elytra’s API to notify it about new posts. 

After looking in to how WordPress operates, the answer was obvious: RPC Pings. Starting today, if your blog runs on WordPress, you can add the following URL: https://api.elytra.app/rpc-ping under > WordPress Blog’s Settings > Writing > Update Services. 

That’s all you have to do. This won’t immediately enable your readers to receive real-time push notifications for your blog, but it’ll enable the sync service to immediately fetch new posts. I’ll be working on bringing push notifications to your readers in the coming week. Once that is enabled, the API will no longer periodically poll your Blog’s RSS feed and will solely rely on this mechanism. If you can configure the above setting, I highly recommend that you do. 

Recommendations

I have been tweaking how recommendations are selected, over the last week and I am pretty happy with the results now. Currently, the recommendations are purely based on anonymous statistics which detail which articles were read the most eventually surfacing the Feeds they belong to. In the coming few weeks, this will change to using a combination of anonymous statistics to further randomise and give better recommendations. 

The new system will also remove feeds you are subscribed to so that the recommendations become true recommendations for you instead of a generic “Whats Hot!” list.

Data & Statistics

The core of the Recommendations section has been this anonymous data collected directly on the server based on the articles you read. Since this data is in no way tied to any user account and it reveals a lot of information which publishers may find useful. Early next year, I plan to release a dashboard for Publishers to view this data. Just like the iOS app, the dashboard website will have a private and then a public beta. The final release will be available at nominal fee of $1/month for subscribing publishers. 

Your personal data is never collected by Elytra and as such no information about you can be included in the above stats. If you’re a publisher and would like to be included in the Private Beta, give me a shoutout on Twitter or DM me. 

Closing Notes

I have nothing more to write, so I’ll leave you with my best wishes for the Holidays. Cheers. 

New Servers and Scheduled Downtime (October)

New Servers

I’ve just finished work on a new set of servers in the Singapore region. These servers will now handle traffic for all of your requests from the South East Asia region. You should experience lower latencies, faster load times and over all improved speediness in the app. 

Users in the European and American regions are currently unaffected by this change. 

Scheduled Downtime

There will be a scheduled downtime of the Elytra Service starting 28 October at 09:00PM IST (28 October, 3:30PM UTC) up to 29 October, 02:00 AM IST (28 October, 8:30 PM UTC).

During this time, I’ll be upgrading some of the servers in the US-East region for improved efficiency, reduced costs and higher throughput overall. The service will remain unavailable during that time to the users in the American and European regions. Service will continue as expected for users in the South East Asian region. 

Due to the change in the pricing for the servers, the benefits will be passed on to you. I’ll share more details on this later. 

I’ll appreciate your patience during this scheduled downtime. You can find the discussion on this post on Reddit.

Last round on me!

This is most likely the last build of Elytra which will be going out to the Public Beta testers. It mostly contains a few minor fixes and two new additions. Read on to learn more.

New

  • Long tapping on the All Read button (Double checkmark) in a Feed’s interface will enable you to mark all unread articles as read, including articles not currently loaded in the interface. This is especially useful when you add a new high frequency feed to your list.
  • You can now optionally use a Dark Application Icon for Elytra. A new Miscellaneous section has been added under settings.

Fixes

  • Tweaked the Application Icons to render correctly on displays which use the sRGB colour profile.
  • Updated the footer text in the Subscriptions Interface to be compliant with Apple’s requirements. This is critically useful for you as well as I have come to realise. (I’m secretly hoping Elytra passes Apple’s review in the first go, as we all do :D)
  • Fixed application launch on iPads when running Elytra for the first time on the device.
  • Scrolling to load the next batch of articles now consumes less power. This is done less frequently now by using an alternate system API.
  • Fixed the status bar being dark (when a dark theme is selected) for the Move Folder interface.
  • Tapping on the Close button on iPads now deselects the currently selected article.

Notes
Version: 1.0.0
Build 127
Pipe: PBeta-04

Broken Promises

Sometime last week (or perhaps the week before that), I made some minor changes to how RSS feeds are polled. This made the “engine” more efficient by running in period bursts so as to not block your requests from taking priority. 

I did however change something: The older variant used a callback system while the newer variant used Promises. I did not have an integration test to check how this change worked with the WebSub mechanism. 

Earlier today when I published the Public Beta 3 notes, I was wondering why I did not receive a push notification. Almost 6 hours later I hit my, “ah ha!” moment. 

I have patched the issue and now have an integration test for this incase I break it in the future. 

If you are subscribed to Push Notifications for the Elytra blog, you should have received one. If you didn’t, you should totally subscribe.