this post was submitted on 02 Jun 2024
77 points (96.4% liked)

Fediverse

27918 readers
644 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy

founded 1 year ago
MODERATORS
 

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

top 50 comments
sorted by: hot top controversial new old
[–] Kalcifer@sh.itjust.works 34 points 4 months ago* (last edited 4 months ago) (3 children)

Without it being open source and not providing reproducible builds, the privacy claims are borderline weightless.

[–] GBU_28@lemm.ee 9 points 4 months ago* (last edited 4 months ago) (1 children)

Agree, but anyone competent could just sniff the traffic. (Or hopefully, lack thereof)

load more comments (1 replies)
[–] warmaster@lemmy.world 5 points 4 months ago (1 children)

This. For all we know, the app could be doing all kinds of nefarious things and we wouldn't be able to tell.

load more comments (1 replies)
[–] Jumuta@sh.itjust.works 1 points 2 months ago* (last edited 2 months ago) (1 children)

even if it's open source, how would you verify that the instance is running that version of the software?

[–] Kalcifer@sh.itjust.works 1 points 1 month ago

Fair point. I believe I was under the impression that this was an app rather than a served webpage. I suppose one can easily verify this by looking at how the "For You" algorithm works within the browser ­— all the code for functionality would be sent to the browser; though, it could potentially be obfuscated, which might be a pain.

[–] helenslunch@feddit.nl 21 points 4 months ago

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.

[–] Andromxda@lemmy.dbzer0.com 16 points 4 months ago (2 children)

That does actually look interesting and might revolutionize parts of the Fediverse, ngl. Is it open-source?

[–] Aurelius@lemmy.world 2 points 1 month ago (1 children)

I just gave Quiblr an open source update. You can find GitHub can be found here

[–] Andromxda@lemmy.dbzer0.com 2 points 1 month ago (1 children)

Just saw it, amazing, keep up the great work!

[–] Aurelius@lemmy.world 2 points 1 month ago

I appreciate the support and kind words!

[–] mesamunefire@lemmy.world 1 points 4 months ago

Not the op but not now by the sound of it.

[–] muntedcrocodile@lemm.ee 8 points 4 months ago

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?

[–] Zak@lemmy.world 7 points 4 months ago (1 children)

I would LOVE feedback from folks if you get a chance to try it out!

I have feedback completely unrelated to the recommendation engine: please consider using CSS prefers-color-scheme instead of defaulting to light mode.

[–] Aurelius@lemmy.world 8 points 4 months ago

Notes! I’ll aim to add it to the next release. Thanks

[–] historypresent@lemm.ee 7 points 4 months ago (1 children)

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?

[–] Aurelius@lemmy.world 9 points 4 months ago* (last edited 4 months ago) (1 children)

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

[–] Danterious@lemmy.dbzer0.com 1 points 4 months ago

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)~

[–] sturlabragason@lemmy.world 6 points 4 months ago (1 children)

This is great! Is it open source? The only thing I found missing was an about page.

[–] Aurelius@lemmy.world 5 points 4 months ago (1 children)

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

[–] Andromxda@lemmy.dbzer0.com 7 points 4 months ago (1 children)

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.

[–] sturlabragason@lemmy.world 5 points 4 months ago

Yeah, when someone says private I assume I can self host.

[–] drspod@lemmy.ml 6 points 4 months ago (2 children)

This is great! Some feedback on UI:

  • The first thing I did was click ⇩ on a post and it prompted me to log-in. This is confusing because I thought I could train the recommender without having to log-in. It took me a minute to find the "Like/Dislike" buttons because they require an extra click to open the post menu. Maybe make the Like/Dislike a bit more prominent and accessible, and find a way to differentiate between the controls for training the recommender and the upvote/downvote actions on the post itself. Or even better, make them the same thing so there's only one pair of controls and if you're not logged-in then upvoting just boosts the recommendation but doesn't actually send the upvote action to the post.
  • Please use actual links (<a href=""></a>) for post navigation so that I can tell my browser to open a link in a new tab. Usually I middle-click to do this (in Firefox) but since the post title and content only respond to javascript events, I can't middle click to open in a new tab. Clicking the post opens it in the same window.
  • Add text content of posts, or at least a button to expand the text content. Right now text posts are just the post title and I have to click through to read the content.
  • Add alt-text (tooltips) to your buttons. I know what the standard share/bookmark icons look like but it helps to have tooltips to be sure.
  • Add a link to open the original post (on the origin server). Every fediverse UI has this. If you have it too, I couldn't find it.
  • Allow me to see (and drag) the scrollbar of the main content frame.
  • Add a refresh button (maybe at the top of the feed) so that I can generate more recommended content without having to actually reload the page in the browser.
  • When clicking a community name, I get the community page but I can't press the back button to go back to the feed.
  • If I "dislike" a post, I don't expect to see it again after a refresh, or ever.

Also, it's a bit late to change it now, but the name is very 2009-internet-startup.

[–] Aurelius@lemmy.world 3 points 4 months ago* (last edited 4 months ago)

Lots of great feedback. I'll try to address each:

  • I tried to differentiate voting vs. "like/dislike" for the algorithm as to not confuse users who think they are logged in. I can put more thought into how to make this a bit more intuitive
  • Quiblr is built as a progress web app (PWA) so it uses native app components. The benefit is that it is faster and easier to manage multiple code bases. But the con is that it doesn't have all the same benefits as HTML. I added an "open posts in new tab" feature in the settings
  • I like the idea of added more body text in the post itself. My fear was that it would make the feed look too crowded, but I can take second look at it
  • I love the tooltips idea
  • The 3 dot ellipses has a Post Detail section for each post. Maybe this could be a good place to add the link back to the original Instance url.
  • I like the scrollbar idea. I think this could make sense as an optional setting because I personally don't prefer the scroll bar but I want to include it for users who do prefer it
  • I added a refresh button for users using the PWA version (since they don't have a refresh button in the browser). Maybe something like "pull down to refresh" could work on
  • You should be able to press the "<" back button when viewing a community on mobile or just back in your browser. Both should take you back to your feed. Let me know if it isn't working as intended
  • I'll have to see the API allows for removing downvoted items from feeds. I can try to get creative if needed

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

[–] misericordiae@literature.cafe 1 points 4 months ago

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:

  • There doesn't seem to be a way to switch the "For You" feed away from card view. I think it's fine if you want to make it a separate view setting from the main page, but I'd like to be able to change it to my view of choice.
  • I'd like to see the post/comment body text tweaked for better readability: higher contrast against the background, a touch more space between lines, and a lighter weight (regular or medium) would all make reading long posts more pleasant, imo.
  • In compact view, if I expand the attached image, there doesn't seem to be a way to shrink it back down, as clicking again opens the post.
  • When viewing a post, there's a community sidebar on the right with all the rules and such, but that info is missing from the actual community detail page.
  • The community sidebar on the post page scrolls separately from the rest of the post, which is weird to me on desktop. Giving it an "expand" button might be a good compromise, so you don't have the weird case of short post/long sidebar unless the user explicitly asks for it.
  • Navigating front page > post page > community detail page, and then hitting back on the browser twice returns me to what the nav bar tells me is the front page, but only that one community's posts are shown. Refreshing or clicking "front page" fixes this, but it's a little confusing the first time.
  • Navigating front page > community detail page doesn't trigger a... page load, I guess? My browser (firefox) doesn't recognize the community detail page as a separate page, so I can't hit back to go back to the main feed. Instead, I have to either refresh or click "front page".

Overall, though, this is super impressive!

[–] SorteKanin@feddit.dk 6 points 4 months ago* (last edited 4 months ago) (1 children)

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.

[–] Aurelius@lemmy.world 3 points 4 months ago

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

[–] xnx@slrpnk.net 3 points 4 months ago (1 children)

Is it opwn source? Would love to see it on mastodon and other apps

[–] Aurelius@lemmy.world 1 points 1 month ago

Sorry for the delayed response. Quiblr is open source. Github here

[–] ElectroVagrant@lemmy.world 3 points 4 months ago* (last edited 4 months ago) (1 children)

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.

[–] Aurelius@lemmy.world 5 points 4 months ago* (last edited 4 months ago) (1 children)

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

[–] ElectroVagrant@lemmy.world 2 points 3 months ago (1 children)

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.

load more comments (1 replies)
[–] lutindiscret@mastodon.libre-entreprise.com 3 points 4 months ago (1 children)

@Aurelius does #quiblr project have a dedicated matrix room?

@fediverse

[–] Aurelius@lemmy.world 4 points 4 months ago (1 children)

It does not. I haven't used matrix yet. What are matrix rooms used for?

[–] MrSoup@lemmy.zip 5 points 4 months ago

Are like Discord federated.
Matrix can be used also in place of Telegram/Whatsapp.

[–] Alice@hilariouschaos.com 1 points 4 months ago
[–] riot@lemmy.world 1 points 4 months ago (3 children)

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?

[–] Aurelius@lemmy.world 3 points 2 months ago (1 children)

Just a quick follow up here - I added a simple toggle setting to Quiblr that lets you flip the arrow order.

Apologies for the slow roll out, I had a big laundry list of updates in this latest release!

[–] riot@lemmy.world 2 points 2 months ago (1 children)

Wow, I appreciate you following up! I can just imagine how much you had to get through. Cheers!

[–] Aurelius@lemmy.world 2 points 2 months ago

It's my pleasure! Enjoy!

load more comments (2 replies)
[–] thesocavault@lemmy.world 1 points 4 months ago (1 children)

I like this, it's impressive. Will there be an app we could move to or is it just web based for now?

[–] Aurelius@lemmy.world 2 points 4 months ago

Web based for now. IOS and Android apps are in the works!

[–] franzcoz@feddit.cl 1 points 4 months ago* (last edited 4 months ago) (1 children)

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.

[–] Aurelius@lemmy.world 2 points 4 months ago (1 children)

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!

[–] franzcoz@feddit.cl 1 points 3 months ago

that's cool!

load more comments
view more: next ›