Pull to refresh

Why I need RSS 3.0

Level of difficulty Easy
Reading time 6 min
Views 775

In the past 5 years, I moved across 3 countries and 2 continents. It was not a short tourist travel or vacation, but a full immigrant experience with 1+ year experience minimum. I had to adapt to new cultures, new languages, new people, new food, new weather, new everything. One of the pains was to adopt new online services and information sources.

The problems I have faced were not obvious and interesting at the same time. I tried to analyze what was missing and required to make life easier.

Informational noise

As an immigrant, I had to adapt to new resources and services: shopping, news and government portals, car mechanics, medicine, etc. It's surprising but talking to a person or calling by phone is a huge pain for a foreigner. You feel much better going online with translators and time to make decisions, but a new problem awaits you.

Each modern website will ask for push notifications permissions and email. Unfortunately, nothing but spam will be sent and as a result, you have to find an unsubscribe button on each advertising email. They didn't even know what I was looking for in the first place. Each website has its design and layout. You will have to learn that someone decided to put the menu on top, and someone decided to place it on the left. You decided to order something in the evening, but the website you need hasn't implemented a dark mode and you got a flashbang. Each website has its ads, as it appears that ads are the only way to monetize content for many resources.

Being a foreigner

The Internet has existed for 40+ years, but each part of the world has its unique details. Globalization is still in progress.

You have to use local services to get the best experience, while each country has its own local businesses and customer culture and processes. In North America, real estate agents use square feet for space measurement (400-499 square feet) and amount of bedrooms/bathrooms (2 bedrooms / 1 bathroom). In East Europe, real estate agents use square meters (80 square meters) and the total amount of rooms in a flat (3 rooms). In case you want to buy a car experience is also quite different. In Canada, you will see Canadian dollars, miles, hp, and ft. lbs while in Poland you will face Polish zloty, kilometers, kW, and Nm. So you have to do a lot of math to compare cars.

Browsers managed to build in translation, but experience is still not perfect. You will have to translate each page and calculate pounds to kilograms, gallons to liters, miles to kilometers, etc.

My needs

I was looking for a service that would provide a comfortable way of getting information from different sources. I wanted to have a unified way to read news, articles, and blogs, compare cars and flats, and get notified about events. Service that could translate posts and unit conversion for me. Get notified only on topics I want to and easily control all my subscriptions. I want to own the way I read content and how it's displayed and organized.

Existing solutions

After looking around, I found that issues are known to some degree. Back in the day internet was full of blogs and post-like websites, that could generate content not so often. To simply process checking content RSS was created to generalize content and provide a unified way to read it. At the moment of RSS creation, you could install an RSS reader and read all your news in one place, configure it the way you wanted, display it in the way you want, and be in control. Unfortunately, RSS is losing its popularity.

There are not too many technologies that are well-supported and developed based on pure enthusiasm. Even fewer technologies are successful. RSS now is not supported by many websites and companies producing RSS readers are not pushing standards forward. The last RSS update was in 2009. Since that markdown was created, nobody even tried to update the specification to include markdown support to simplify content creation and bring fresh blood.

Improvements

In my opinion, RSS is still a good solution but should be fundamentally improved. Breaking changes are not avoidable.

Service role

RSS protocol assumes that the client will check RSS sources for updates and control state locally. A lot of modern RSS readers add server-side state, so you can read news on your phone and continue on your laptop. It's a good feature, but it's not part of the RSS specification. Meanwhile, RSS protocol assumes that the website can be a source of data.

Right now, many people don't own websites. They use social networks to share content. Social networks are not part of the RSS standard.

I think that the new model should assume 3 roles by default: producer, consumer, and server.

  • Service that stores state and provides a unified interface for consumers. It should be responsible for indexing data and applying customer-desired functionality on top.

  • Producer is not only a website that generates content, but an individual that can cooperate with service directly.

  • Consumer is a client that reads content. By default, it should communicate with the service, but some basic functionality with the producer is possible without the service.

Types

RSS is a good solution for text content, but it's not enough for modern internet. Many types of content are not supported by RSS. Any kind of information can be represented as text, but you can't sort, filter, or transform content efficiently without metadata. As a result, RSS should move away from text or HTML content and support any kind of content, ideally human close: text, image, video, audio, money, location, time, date, etc.

Types should provide the technical ability to filter/sort data. Any kind of transformation or prioritization can be applied on the service side. That will provide incredible flexibility for consumers, not possible with RSS.

Representation

Let's assume that we have the best deal houses for sales we want to share in an RSS-like way. We can describe a house with text, a few images or videos, location, price, etc. With RSS, everything will be mixed. It's hard to read, process, or organize. In case we use the typed approach mentioned earlier, we need to have a way to represent data. Modern internet and social networks did great work in formalizing ways to display data.

We can use cards in feed scrolls as a base. Use a map with card representation in case items have location. Calendar with card representation in case items have dates. Grid representation in case items have few important criteria for consumers. Each card can consist of sections. Each section can have its representation. For example, an image section can have an image or video, a text section can have text or markdown, a location section can have a map, etc.

Service functionality

Service can provide a list of functionality that is requested by consumers on demand: subscription notification and notification by rules, default filtering, and sorting. Service can provide representation customization on demand: dark mode, font size, etc. Service can provide data transformation on demand: convert currency, convert units, etc. Service can provide data prioritization on demand: prioritize by location, prioritize by date, prioritize by price, etc.

There are a lot of functionality that can be provided by the service. It's hard to predict what will be useful for consumers. Service should provide a way to extend functionality by consumers. It can be done by plugins, scripts, etc.

Consumer functionality

Consumers can access a huge amount of data and functionality. Additional functionality requires more computations and results in usage costs. Consumers should have a flexible way to pay for service usage. It can be a subscription, pay-per-usage, etc. Once the consumer pays for the service, it should be able to use all functionality without any limitations, providing the best possible experience.

Benefits

A new RSS protocol version can't be developed based on pure enthusiasm. It should be beneficial for all parties involved.

  • Producers of data should be able to reach more consumers, have more control over data, and have more flexibility in data representation. It should be cheaper and easier than creating and supporting one's website. Once the producer provides great value for consumers, it should be able to monetize it inside the service and get useful insights.

  • Consumers should be able to read data in a unified way, have more control over data, and have more flexibility in data representation. It should be cheaper and easier than using multiple services. Once the consumer provides great value for producers, it should be able to monetize it inside the service.

  • Service should be able to provide great value for consumers and producers. To develop new features and support services, it should be able to monetize its service.

Conclusion

I was not able to find the tool I was looking for. I'm not sure how common problems for others I described and how it should look like. The service I described is somewhere in the middle of RSS, CRMs, and social networks with no code cherry on top. It feels complex and rewarding to achieve, so...

I decided to create it.

Tags:
Hubs:
+2
Comments 1
Comments Comments 1

Articles