Show HN: RSS Brain (rssbrain.com)
* Recommend related articles from the feeds of your choice. It's backed by ElasticSearch and the algorithm is described on RSS Brain's website.
* Option to sort articles by upvotes and time. The algorithm is similar to the old Reddit and you can find it on the website as well.
* Save search terms into folders so you can filter the articles.
I've been using it for a while and found these features very helpful. So I want to share this on HackerNews. The frontend is written in Flutter so it has cross platform clients, even though the web version don't feel very "web native" because the level of Flutter web support. I guess only time can improve that.
I don't have enough hardware to scale it up so it's currently in subscription mode to limit the users. I'm going to open source the code (maybe non-commercial license) once I think it's ready so you can host it by yourself. It's still in early stage and haven't been tested by a lot of people. So any feedback is helpful. Thanks!
Update: Added a scroll down hint in the landing page. Thanks for the feedback.
80 comments
[ 4.8 ms ] story [ 148 ms ] thread- no information besides "rss reader" before signup and requiring email meant i bounced
- why make me choose download vs web app before seeing anything at all?
- why should i trust you with my reading data?
edit: on macos there're no scrollbars and no other affordances on your landing page to know that i must scroll down to learn more
You could even let Chat GPT do the work with a prompt like „Make this text suitable for a software product landing page, and correct any spelling errors: paste text“
Nit #1: images (or emojis) on either side of the text you added are not displayed in iOS Safari.
Nit #2: I am getting horizontal scrolling in iOS Safari (no content is cropped, just unnecessary scrolling due to some constraint miscalculation)
You might have interests in many different domains or subjects and it's nice to have a live feed of each one separately vs all clumped together as one. Tags sort of help, but IMO columns make it easy to sort by tag, while still letting you see multiple at once.
RSS is also a great candidate for event feeds similar to tweet deck - where you're less interested in reading in the reader, and more interesting in organizing different event feeds that you can curate to ideally alert you to important things quicker - security bulletins and space launches might be good examples.
Somewhat tangential: does anyone know if there is a way to subscribe to the local timeline RSS feed (or even federated!) of a specific Mastodon instance? Individual users have RSS feeds but I could not find a timeline feed yet.
Even more tangential, I've been building an algorithmic digest of Mastodon (supports home, local, or federated) at https://fediview.com/. It might be interesting if you want a summary of Mastodon posts. Adding in RSS support might even be possible at some point.
One feature I would like to explore more is making algorithms completely customizable (as an advanced option perhaps). I.e. allowing changing all params manually in addition to being able to use your presets.
About the cutomizable params, it would be more complex since that means each person's articles need to have difference scores, which multiplies the storage and computation a lot. But on some level the priority of articles is customizable: you can provide customized "upvotes" for each of the articles in a customized RSS feed (an example to provide these fields in RSSHub: https://docs.rsshub.app/en/joinus/quick-start.html#submit-ne...), which will affect the final sorting of the articles.
What I'm missing even more is a single Atom or RSS feed for the people I follow from my account.
On Reddit my account specific feed can be found at an URL that looks like this: https://old.reddit.com/.rss?feed=SECRET&user=USERNAME
On Pinboard it's at: https://feeds.pinboard.in/rss/secret:SECRET/u:USERNAME/
Adding a feed for every single person I follow to my feed reader (and manually keeping it in sync with what what my account actually follows) is not a solution that works.
There are several expectations decreed by the community; for example: search has been specifically rejected.
Suggestion: before posting to a technical forum like HN, make sure you have a "technical FAQ" or similar. There were a ton of obvious geek questions I had after reading your front page, and ~~saw no link that might answer any of them.~~ (Edit: okay, some of it is behind the "algorithm" link https://www.binwang.me/2022-10-29-RSS-Brain-Yet-Another-RSS-... which I assumed would be a link to a bunch of code).
First and foremost: I've never heard of any cross-site upvoting protocol. Did you create one? How do you upvote things on sites (e.g. HackADay) that don't have voting?
The way RSS Brain knows upvotes is by leveraging customized fields in ATOM feed. It will parse the tag <*:upvotes>, <*:downvotes> in each of the article and compute score from there. That means the RSS feed should support those fields in order to let RSSBrain know the upvotes. But the protocol is open so any RSS feed an RSS reader can use those if they think this is a good idea.
So it can only get exiting upvotes from the site. It has no way to upvote when there is no such feature in the original site. However, you can have a customized RSS feed to use upvotes in a different way: for example, for a news website, the position and size of an article usually means the "upvotes" from the editors. Which you can give some weights based on the position and generate a RSS feed that use those weights as "upvotes".
I did two things to make it easier at the beginning:
1. When you subscribe to HackerNews or a subreddit in RSS Brain (that means you paste HackerNews/subreddit URL directly to RSS Brain to subscribe), it will try to parse the content by itself (using some APIs), instead of trying to find a RSS feed. It's not a standard way, but just a way to make it easier while no RSS feeds have those fields yet.
2. I pushed a PR to a very popular RSS generator: RSSHub, so that you can easily add those fields (the doc: https://docs.rsshub.app/en/joinus/quick-start.html#submit-ne...) when create a RSS feed using RSSHub. I've updated its HackerNews RSS feed to generate upvotes fields as well.
Obviously this is something you have thought through, so I assume you just treat item disappearing from the feed as some form of indication it's not "trending" enough from the source point of view. Am I right?
If I want to write an algorithm to sort articles in HackerNews by upvotes and time, is the upvotes information available to Gnus? Assume the RSS feed has a customized field called <RSSBrain:upvotes> for each of the article, does the algorithm have access to that data?
And does Gnus need to get all the articles in a folder/feed and run the sorting algorithm on the fly? If so it seems to be a performance concern. Would love to know how it works in real life.
[1] https://sachachua.com/blog/2012/07/transcript-emacs-chat-joh...
- Privacy policy should direct me to https://www.rssbrain.com/privacy not terms
- Selecting email in the support section doesn't work, which the website encourages me to do
- Are you handling your own logins? Seems like a security issue waiting to happen!
- Do you need to sign up with both an email and a username? Perhaps email is enough
- The logo and the name "RSS Brain" do not match up in height
- The download buttons CSS padding-bottom is too thin
- The scroll down to see more part seems to have some symbols added, I can't see them on my computer (Mac). I assume these are arrow emojis/symbols or something. Replace them with something that works cross-platform
- "Support upvotes and comment count from forums like Reddit and HackerNews" should be "Supports"
- "Powered by transparent algorithm" -> "Powered by a transparent algorithm"
- "Try RSS Brain with 7 days free trial and subscribe with $4.99 per month. " -> "Try RSS Brain with a 7 day free trial and subscribe for $4.99 per month."
- If I go to the login page, and then the signup page, and then hit the Back button on my browser, it shows "page not found".
- The green design box that contains the screenshots is off center
There's some other smaller inconsistencies but I'll leave it at that. I can see you put a lot of effort into building this tool, and it seems quite cool! I hope you succeed.
Can you explain what you mean by "handling your own logins" and what is the norm?
Also I don’t want FB/Google to know what I login to if I can avoid it.
And that would exclude many, including myself as I refuse to use the "services" provided by rapacious scumbags like Google and FB. Then again, OP is using Flutter, which is a Google jam. I wonder how long it will be before Google cancels it?
All that said, why not suggest WebAuthn[0] or (Google again, short lifetime likely) Firebase instead? Especially since Firebase is a supported plug-in[1] for Flutter?
[0] https://en.wikipedia.org/wiki/WebAuthn
[1] https://pub.dev/packages/firebase_auth
For example, if I’m using rails I can drop in Devise for a strong community tested user auth system. One that doesn’t let a marketing company track my usage.
https://www.reddit.com/r/Startup_Ideas/comments/zcb6r3/perso...
You have basically everything set in place for that. I'm no expert in AI software (yet?), but could be fun to brainstorm with you, or if it is open source, branch out to try it myself.
You can definitely build a better RSS reader and a big part of that is going to be tailoring so its not just a hosepipe of everything. I use FreshRSS every day and it supports filtering but its a pain to use and its not what I am looking for really it has no intelligence. I read maybe 1/10th of the articles it presents and I have cut feeds where the signal to noise is poor for my interests. This is definitely an area worth improving.
Basically, the more you "liked" past content from a given feed - the more priority is given to new content from that feed.
A more detailed description of the algorithm I use: https://linklonk.com/item/3292763817660940288
As I understand the OP system does not collect/use your content ratings, only external upvote counts. But this is something I think they should try.
anyone else cant even access the site?
Is that true though?
Wouldn't this be the same as Google hypothetically saying "The algorithm behind Google Search is transparent, so you don't have to worry about SEO"?
SQLite has built in Full Text search.
What's the advantage of using ElasticSearch and having to worry about server costs? Why not just get rid of that and charge me for the app without worrying about never-ending costs?
Because when it's a client-side only app, it's more difficult to charge for subscriptions to ensure that sweet, sweet revenue. Which appears to be the raison d'etre for most software these days. :(
Besides, making it require a server pushes the hoi polloi to register to use "the cloud" (read: someone else's server) rather than just run it themselves.
And if it gets big (it seems like an interesting and potentially popular app), money can be made harvesting PII from those who register.
If you're the app developer, what's not to like?
I'd note that the OP says the code is open source, and so should it be useful, tech folks will likely host their own servers.
This comment isn't meant to denigrate or bash RSS Brain or its author. Rather, it seeks to answer Masukomi's question[0].
My analysis may be dead wrong. It seems plausible, especially since so many folks seem to want to make everything a subscription.
To butcher an old quote[1]: Subscriptions are $10 here, $10 there and soon you're talking about real money.
No thanks.
[0] https://news.ycombinator.com/item?id=34190815
[1] "A billion here, a billion there and soon you're talking about real money." Usually attributed to Everett Dirksen[2], but it appears that he never said any such thing.[3]
[2] https://en.wikipedia.org/wiki/Everett_Dirksen
[3] https://www.dirksencenter.org/research-collections/everett-m...
1. Sync between clients. This can also be done by using a Cloud service to sync some database, but resolving conflict data between clients can be tricky.
2. It needs a long running process to check updates for the feeds. It's hard for mobile devices to check updates all the time. So there needs to be another desktop device that check the updates regularly, and may need to sync the articles to the mobile devices. You either sync the whole database, which is a lot for some people (it has been 10GB+ for my own feeds), or you fetch the articles on demand, which makes the desktop client essentially a server.
3. The recommendation features is much easier implemented with ElasticSearch, since it summarize an article's content with a term vector, which you can use to find similar articles. And its search is much more powerful than SQLite's full text search as well.
I understand some people don't want advanced features. Without those features it maybe simpler to just write a RSS client without server. But the advanced features are the motivate behind me writing RSS Brain, and how I find a RSS reader can be more useful.