I built the first 100% private, on-device "For You" feed on the fediverse

cross-posted from: lemmy.world/post/16102424

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

autonomoususer, (edited )

🚩 Anti-libre software bans us from proving it’s claims. This is worse, service as a software substitute.

degen, (edited )

Apologies for the late comment. So this is a full-fledged frontend like photon or alexandrite, but with this recommendation engine built in? On first glance, it looks so much more responsive and lightweight! I’m really wondering what you’ve done that other big frontends haven’t lol, no broken images or anything! If you do end up going open source, I might consider actually contributing to something for once. I’d love to help build out some features.

Edit: After using it for a few minutes, wtf, it’s snappier than lemmy itself. And the community search, wow! Maybe a pretty ui does something to perception, I dunno. I am assuming you have barrels of cache lol.

Aurelius,
@Aurelius@lemmy.world avatar

I appreciate all the kind words! You are correct that it is a frontend with recommendation engine built in. And the speed likely comes from being a progressive web app.

There are tradeoffs, but it definitely makes thinks “snappier” :)

Asudox,
@Asudox@lemmy.world avatar

How does it work? I was planning on importing a recommendation algorithm I made in the past for MAL for an upcoming fediverse summer project I was thinking of making that was also pretty much privacy-friendly. I’d like to know how you do the on device recommendation though. Since it’s content based, do you download thousands of posts or something?

fmstrat,

First app I guess, but running your own instance does the same thing, right?

spiritedpause,

Wow this is such a clean and snappy Lemmy client, may become my new daily driver!

The “For You” feed looks like it has a similar focus as the one I have on Agora, which is a webapp for following people across the “extended Fediverse” as I call it (Mastodon, Bluesky, Threads, Nostr).

The For You feed on Agora utilizes a fork of the open source FediAlgo library to create a feed that combines interesting posts from people you follow, as well as friends of friends, and it learns your preferences based on whose content you like/boost.

Agora: agorasocial.app

Source code: github.com/ghobs91/agora

Eggyhead,

Images on the feed shrink when I try to zoom in on mobile. If I want to read the text on the image, I need to tap it once to open the post, then tap it again to open the image. At that point it fills the screen, but I still can’t zoom in any closer, it just bounces back.

Aurelius, (edited )
@Aurelius@lemmy.world avatar

That is an effect of the dynamic sizing (adjusting the style for different screen dimensions) + it may be because the items are in a flatlist. I will add a dynamic image size setting option tonight to allow users to show the full image ratio rather than a standardized image size.

Edit: dynamic image size setting is now live

uranibaba,

How do you pay for costs? Will there be donations or a premium feature?

Aurelius,
@Aurelius@lemmy.world avatar

I use Kofi for donations (button in the top bar). I build and pay for everything myself so support is appreciated!

janonymous,

Can you elaborate how and what actions will affect my feed? I don’t quite understand how this works without any login as I can’t vote or write comments. Also how do my subscriptions affect it if I’m logged in to an instance?

I do like it and would wish something like that as an app.

solrize,

Do you mean it downloads all the posts whether you read them or not? Is that basically running your own instance?

Aurelius,
@Aurelius@lemmy.world avatar

No. Posts are not downloaded and Quiblr is purely a frontend (you can choose which instance you want to use). The algorithm basically crafts the relevant API calls to populate the For You feed with content that matches your usage preferences. Those preferences and metadata are all stored on your device

Emotet,

Ah, so the “100% private” part is purely the recommendation engine.

Aurelius,
@Aurelius@lemmy.world avatar

I see what you mean. To clarify, Quiblr as a platform is also 100% private. It doesn’t even use Google Analytics. The only data that I collect is anything submitted via the Feedback form + Umami for analytics .

Emotet,

It’s a very nice feature of a pretty polished frontend I haven’t heard of before, I’ll be sure to try it out!

Aurelius,
@Aurelius@lemmy.world avatar

Let me know if you have any feedback!

Guadin,
@Guadin@k.fe.derate.me avatar

Never heard of Quiblr but I really like the look and feel of. Also great that you added a "For you page". Any chance you can add kbin/mbin instances? Is Quiblr like a frontend which pulls data from other instances or is it an other fediverse piece of software? And are we able to selfhost Quiblr?

Aurelius,
@Aurelius@lemmy.world avatar

Quiblr is purely a frontend. It creates a standardized experience across Instances (including the feed personalization). Im not super familiar with Kbin. If it uses the same API as Lemmy then it should work.

Long-term, I’d love to integrate more and more fediverse platforms into Quiblr

Scolding0513,

A dedicated webview on fdroid would be cool, for those of us that dont keep cookies and such

helenslunch,
@helenslunch@feddit.nl avatar

Your browser should have an option for per-site cookie permissions.

delirious_owl,
@delirious_owl@discuss.online avatar

Aaaand its empty. Intentionally.

helenslunch,
@helenslunch@feddit.nl avatar

…what is?

delirious_owl,
@delirious_owl@discuss.online avatar

My list of places where I allow cookies

helenslunch,
@helenslunch@feddit.nl avatar

Yes, I know. That’s the problem. Instead of asking for and installing an app, maybe just enable cookies for that site? That’s far less intrusive.

delirious_owl,
@delirious_owl@discuss.online avatar

The app shouldn’t be intrusive, if its a good app

helenslunch,
@helenslunch@feddit.nl avatar

The point is, you’re asking the dev to take the time to create and maintain an app, when you could just tick a box to enable cookies and use the PWA instead…

RedStrider,
@RedStrider@lemmy.world avatar

I’d like to see pixelfed when it gets lemmy compat

GolfNovemberUniform,
@GolfNovemberUniform@lemmy.ml avatar

So it’s fully local right? That’s a really awesome system then. I’d probably recommend encrypting the data but that’s not really necessary

Aurelius,
@Aurelius@lemmy.world avatar

Yup, 100% completely local to your device alone

GolfNovemberUniform,
@GolfNovemberUniform@lemmy.ml avatar

I don’t understand why nobody did it in the past. It makes the experience so much better for normal users. I hope this becomes mainstream. Btw does it have any automatic analytics cache cleaning or something like that (so it doesn’t grow 20 gigs of it in a year)? If so, make sure it cleans it periodically and not immediately when a piece of data becomes unneeded. On low end devices frequent write/delete cycles can be an issue

DScratch,

I can’t go into too much detail, I was working for a recognisable company who was dabbling in the Fediverse with a heavy lean towards empowering the users.

This was high on my list of demands. Along with fine grain controls for what metrics you opt into and what notifications you receive.

Project got gutted early this year.

GolfNovemberUniform,
@GolfNovemberUniform@lemmy.ml avatar

Hmm that sounded a bit sus to me. I would highly suggest you not to work for unethical companies, mister/miss

helenslunch,
@helenslunch@feddit.nl avatar

Hate to tell you this, but most companies are varying degrees of unethical. If you write them all off you’d never have a job.

GolfNovemberUniform, (edited )
@GolfNovemberUniform@lemmy.ml avatar

Your decisions are your decisions. My job is to promote ethics and to interrupt the work of unethical companies. Being ignorant and working for evil companies just for convenience is not good imo

helenslunch,
@helenslunch@feddit.nl avatar

It’s not fucking “convenience”, it’s your livelihood. Check your privilege.

delirious_owl,
@delirious_owl@discuss.online avatar

Nah, if you’re patient and good at what you do, you can find work for an ethical org.

But it helps not having kids to feed

helenslunch,
@helenslunch@feddit.nl avatar

Brother, a lot of people go months without being able to find a job at all

delirious_owl,
@delirious_owl@discuss.online avatar

It might take years of applying for about 20 jobs per day across a few continents of cities to find an ethical one. It takes time.

helenslunch,
@helenslunch@feddit.nl avatar

Yeah, not everyone can afford to be perpetually looking for new jobs like it’s a job while not having a job…

delirious_owl,
@delirious_owl@discuss.online avatar

It helps when you live in a car

Aurelius,
@Aurelius@lemmy.world avatar

I appreciate the kind words. And yes, I included a mechanism to constantly refresh and clean up recommendations so that it doesn’t use too much memory

sabreW4K3,
@sabreW4K3@lazysoci.al avatar

Is it just a front-end or are there backend changes?

I like it for the most part. I dislike that you can’t find the real URL of anything though

Aurelius,
@Aurelius@lemmy.world avatar

All front-end.

And thanks for the feedback. Can you elaborate what you mean by “can’t find the real URL of anything”?

sabreW4K3,
@sabreW4K3@lazysoci.al avatar

So I opened the link and was scrolling through the front page and eventually saw a community that I’d never seen before, so I wanted to take a look. I opened it and couldn’t see what instance it was hosted on. When I tried to share it to myself, it still wouldn’t give me the original instance URL. I found that super frustrating.

Aurelius, (edited )
@Aurelius@lemmy.world avatar

Gotcha. That should be an easy addition. I’ll see if I can push an update tonight!

Edit: I noted this in a separate comment, but I added the instance info to the communities page + the original post url to the Post Details page (via the 3 dot ellipses)

Aurelius,
@Aurelius@lemmy.world avatar

I pushed an update to Quiblr. I added the instance detail to the Communities page. Additionally, the vertical 3 dot ellipses on each post has an option called Post Detail >> I added the original post url here

Let me know if you have any additional feedback!

sabreW4K3,
@sabreW4K3@lazysoci.al avatar

OMG, that’s so much better now. Thank you. It actually feels usable now.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • privacy@lemmy.ml
  • fightinggames
  • All magazines