I built the first 100% private, on-device "For You" feed on the fediverse
Hi all,
Quiblr now has personalized post feeds for Lemmy!
I haven't seen a "recommended feed" feature anywhere else in the fediverse but I thought I would take a crack at building it!
My goal was to make a privacy-focused recommendation engine that tailors your experience based on the content you interact with. None of the data leaves your device. You don't even need to log in for it to work
- You can turn it off or tune your feed in the settings
- Each post now also includes a show me more/less button
I would LOVE feedback from folks if you get a chance to try it out!
This was really fun to build so let me know if there are any questions!
PS: Let me know if someone else has built this feature for the fediverse - then I will change the title to not claim "the first" lol
Without it being open source and not providing reproducible builds, the privacy claims are borderline weightless.
Agree, but anyone competent could just sniff the traffic. (Or hopefully, lack thereof)
For sure. What the aforementioned bits of information provide is the ability to be confident in the privacy of software if one were to treat it as a black box, ie an average consumer.
This. For all we know, the app could be doing all kinds of nefarious things and we wouldn't be able to tell.
Hm, I feel that it's inaccurate to say "we wouldn't be able to tell". It's not exactly a black box system — the app would have to run on an operating system, and if you are able to know what the operating system is doing, and what instructions are being executed by the CPU, then you can know exactly what the app is doing.
What the aforementioned bits of information provide is the ability to treat software as a black box and be sure of its safety without having to fundamentally audit it.
Wow. This is pretty impressive since you usually only see these kinds of things from big tech companies and their stuff is definitely NOT privacy friendly.
Can you provide more detail on how it works and how it is different than what big tech is doing?
Thanks a bunch! It took me a while to craft the solution to make sure it was both effective + private. I was originally inspired by Canopy. They built a news aggregator with private & personalized posts a few years back and the idea sat in my head.
To answer your question(s), there are quite a few signals that big tech uses to recommend content. Not all of them are privacy invasive (or at least they don't HAVE to be). My approach was to do thorough research on the different signals used by big tech to make their recommendation engines, and just build ones that 1.) were possible given fediverse API limitations and 2.) private. I had to craft some novel approaches to make it work but I'm pretty happy with the outcome!
One of the biggest differences between the "big tech" approach and Quiblr's is that most big tech does not keep data simply on your device. They store it in datacenters to build large social-webs to essentially cluster users (and push more relevant ads).
But I was able utilize many of the other signals used by big tech (e.g. communities you engage with, metadata of content you read, dwell time, post/comment/vote activity) and I designed it to work offline with no servers.
Edit: grammar
How does it make the decision to recommend one post over another using the data it collects? Also does it treat all that data differently when ranking posts?
btw it feels really well polished so nice job.
~Anti~ ~Commercial-AI~ ~license~ ~(CC~ ~BY-NC-SA~ ~4.0)~
Yep I will be happy to see that too
I dunno if this is within your wheelhouse but what I'd really like to see is a manual weighting by community.
So, for example, if you're mildly interested in Linux, you can give those communities a 3/10 weight and that way you'd only see the most popular content rather than having it dominate your entire feed.
And then a gaming community 10/10 weight so you'd see every single post.
Maybe you can combine the 2 and just make the automatic "for you" weighting visible and manually adjustable.
I have feedback completely unrelated to the recommendation engine: please consider using CSS prefers-color-scheme instead of defaulting to light mode.
Notes! I’ll aim to add it to the next release. Thanks
This is great! Some feedback on UI:
Also, it's a bit late to change it now, but the name is very 2009-internet-startup.
Lots of great feedback. I'll try to address each:
Edit: Added tooltips for post buttons + original url on the Post Detail page. I will continue to update this comment as I work through other additions in this list
I'll second all of these, especially the lack of scrollbar and "expand text post in feed" button, and the hidden like/dislike buttons. The like/dislike vs upvote/downvote thing is tricky; I don't have a good solution for it, but maybe different icons that don't read as up/down would work.
Also, from a quick poke at things:
Overall, though, this is super impressive!
This is great! Is it open source? The only thing I found missing was an about page.
Not open source (at least yet). Quiblr has been a side project for me and I've never managed an open source project before lol I'm talking with a buddy on how that could work though because he manages a few open source projects
Also, I added an about page in Settings >> For You >> Learn More
There's not that much that you have to do. Just take the code, put a FOSS license (e.g. AGPLv3 or BSD 3-clause) on it and publish it.
Yeah, when someone says private I assume I can self host.
It would be best not to direct users to sign up at lemmy.world by default. There's nothing wrong with lemmy.world, it's just that I feel it'd be better if users spread out more rather than only amassing in the larger instances.
I used lemmy.world as the default for non-technical users or for folks who can’t decide. Users can still select different instances. Maybe it could make sense to default sign ups to a list of popular instances
That does actually look interesting and might revolutionize parts of the Fediverse, ngl. Is it open-source?
Not the op but not now by the sound of it.
Is this foss if so where ia source code. Second does this need to be its own ui or could it be modified to work as a proxy between a 3rd party client and a lemmy instance? Otherwise how hard would it be to implement into eternity?
I like this, it's impressive. Will there be an app we could move to or is it just web based for now?
Web based for now. IOS and Android apps are in the works!
Forget about personalisation. That UX work is just 👌👌💯✨
But I'd definitely would like to know how it works.
Your comment made me smile! I've worked hard to make Quiblr a platform for the fediverse to be clean, modern, and accessible. Basically - remove all the friction that generally comes with fediverse apps
Is it opwn source? Would love to see it on mastodon and other apps
I'm stealing this term.
What a super cool idea, and I love the implementation! I do however keep accidentally downvoting, when I want to upvote, and vice versa, since all other sites that I've ever used, display the upvote first, and the downvote second. Any chance of a toggle for that in settings?
A must-have feature for me is the ability to collapse comments on posts. Right now it seems like we can only collapse replies to comments, or put differently, we can only collapse child-comments. Any chance you could make it possible to collapse parent comments too?
Thank you so much! And I just made a note on the voting arrow order. I like the idea of making that an option in settings
And I can look into collapsing parent comments too. As you pointed out, I made it so just child comments collapse. The idea to collapse the parent comment never occurred to me lol
I'll see if I can work both of these features into the next release.
You're an absolute champ! Wishing you all the best with this project going forward, and I look forward to using it more :)
Very cool!
Tesseract just lets you put communities into groups and view those groups as feeds, but it doesn't do any personalization. AFAIK, you're the first :)
Could this somehow be upstreamed into a new sort to be built into Lemmy? That would be pretty cool.
looks Nice
Nice UI work. I'll wait for it to be open-sourced before I use it to login to my account.
This is insanely good!
This is flipping amazing. UX beats big corps hands down, recommendations are greatly innovative. One little thing: can we have a back button? It's a bit clunky when I have to go to the top of my browser every time I go back from a post. Other than that, it looks great!
THANK YOU! Im glad you love the UX and recommendations feature.
Can you elaborate what you mean on the back button? Pressing back on your browser scrolls to the top of your feed?
Little feedback on the UI from taking a peek at this.
When I went into settings and adjusted post display style from card to anything else, it wasn't clear to me that this wouldn't apply to the new For You feed, which left me confused and less inclined to use it. I still gave it a try to make sure I wasn't missing anything and to see how much the feed seemed to change with some light interaction, but I think you'd need to use it more than I did to see an effect.
Problem being: display settings not applying to the For You feed means I'm not going to use it much with the default card view.
Second part is that there was some comment display lag as I looked through posts, so if I looked at a post about cats with cat-related comments, those comments would linger and appear for a moment under a different post about possums. It's just long enough to be noticeable, so thought it worth mentioning.
Valid. I finished the functionality of the For You feed and wanted to share before wrapping up all the formatting styles for the posts. Should be fixed here in a few hours.
Also, I'll see if there is a better way to dynamically load comments. Thanks for the feedback!
Edit: Other post formats are now available on the For You feed
Appreciate the adjustments and responsiveness! Gave it another try after this and the different formatting hit the spot! Still need to use more to see more finely tuned results, but dig the idea.
Also as others have already said plenty, would be cool to see this cleaned up for an open source release. If you'd like to see how some others are handling a sorta similar idea but with RSS feeds, you might look to Nunti for ideas on how to approach it.
I’ll check it out!
@Aurelius does #quiblr project have a dedicated matrix room?
@fediverse
It does not. I haven't used matrix yet. What are matrix rooms used for?
Are like Discord federated.
Matrix can be used also in place of Telegram/Whatsapp.
I'm confused. You don't have to log in at all? So if I post a comment, how does that work?
The recommendation engine doesn’t require users to log in. You would still need to log in to vote, post, comment, etc
Where can I submit a bug report? Liking the app so far, great work!
I appreciate it! And there is a Feedback form in the sidebar
This is excellent! Thanks. Anyway to self host? I dont want to bog down your system.
Quiblr is a frontend, so you are not bogging down my system :) It is designed to run on whichever Instance you use
You don't happen to use this username on Steam, do you?
No I do not lol do I have a doppelgänger?
I had a friend who used the same name. Doesn't seem like a common name so I thought I'd check.
This makes me think of Fediverse client SoraSns. It used on-device ML and has algorithmic choice. It’s awesome that everything is done on-device
Wow, this looks cool and useful, but since it's the first time I know about Quiblr I have to ask, what is it? I feel like it's a frontend to any lemmy instance? This fediverse world is cool but the many layers of this onion confuse me a little. I like the look and feel of the site! I think this feature of "For You" would be useful to other federated projects. In "reddit-like" projects I don't see much use because my feed on that app was from things I followed, but in things like peertube or youtube alternatives, a "recommended" page is a thing that I miss! It could be awesome if this feature could be implemented in other federated projects.
Hi, Im glad you like Quiblr! It is a frontend. It currently supports Lemmy Instances. So you can use Quiblr and browse/join any other Lemmy instance. Basically, it is the equivalent of a Reddit client
And I agree that the recommendation algorithm perhaps has a more ideal fit with other content. But I liked the idea of something new and novel by mixing Lemmy's Reddit-style with a Youtube/Instagram-style recommendation feed.
Let me know if any other questions or feedback come up!
that's cool!
🚩 Anti-libre software bans us from proving it's claims. This is worse, service as a software substitute.