spacecowboy
@spacecowboy17.bsky.social
590 followers 50 following 1.6K posts
Interests in ML and social aspects of tech. Building For You feed: https://bsky.app/profile/spacecowboy17.bsky.social/feed/for-you Hobby project: linklonk.com
Posts Media Videos Starter Packs
spacecowboy17.bsky.social
2. The items and the dividers are ordered by the user. I'm thinking of how to attach the notion of "priority" to them for the purposes of making recommendations to the user. Should we have a "rating" attached to each item and/or divider. Or should we use the order in the collection as the priority?
spacecowboy17.bsky.social
Yes, the initial step is the single-player experience where you can create collections.

The real goal is a collaborative discovery.
spacecowboy17.bsky.social
Share our thoughts on the lexicon draft: rankthat.net/about

Maybe we could build a lexicon that is useful across apps.
RankThat - Collections
rankthat.net
spacecowboy17.bsky.social
I asked Claude to fake the PDS calls with localStorage. So the UI works with it as if it's an async PDS API. Hopefully, it should be easy to switch to the real PDS backed implementation.
spacecowboy17.bsky.social
Open questions:

1. How to represent seen and disliked items? Store them as a divider that has "seen items"/"disliked items" type? Or should they not be stored in PDS at all and be private on the app server? Or maybe give that choice to the user? Or encrypt them in PDS so only the user can read?
spacecowboy17.bsky.social
Once I'm happy with the UI (which I think is pretty close) I'm planning:
1. Create the lexicon
2. Replace faked PDS calls on the client with the real PDS calls
3. Build a recommendation "app server" that would have similar logic to For You
spacecowboy17.bsky.social
I'm starting with a client only UI prototype and I'm faking the PDS calls with localStorage: bsky.app/profile/spac...
spacecowboy17.bsky.social
I want to make an atproto app for creating collections of anything - create book shelves, rate movies, collect science papers, fictional character tier list, etc.

Before committing to a lexicon I want to understand what a good user experience would look like and then build the corresponding lexicon
spacecowboy17.bsky.social
I changed that to two levels: collections that hold items and dividers (like a book divider) as a flat list. You can drag either items or dividers, you can delete dividers and add new ones.

Give a try to the demo and let me know what you think. I'll pass it to Claude :)
spacecowboy17.bsky.social
It’s been super useful to do the prototype. At first I wanted to use a 3 level hierarchy: collection -> shelf -> item. But that turned out to be too heavyweight. As a user you need to think about the shelf structure and then dragging items within and between shelves was awkward.
spacecowboy17.bsky.social
So I’ve spent some time with Claude Code to build a demo website: rankthat.net

This is just a UI prototype - all data is stored in local storage, no PDS integration. The recommendations are hard-coded. More details and the current lexicon draft here rankthat.net/about
RankThat - Collections
rankthat.net
spacecowboy17.bsky.social
I want to make an atproto app for creating collections of anything - create book shelves, rate movies, collect science papers, fictional character tier list, etc.

Before committing to a lexicon I want to understand what a good user experience would look like and then build the corresponding lexicon
spacecowboy17.bsky.social
Let me know what works and what doesn't in For You so we can make it better.

It already demotes generally popular content (often politics) but we can further tweak it.
spacecowboy17.bsky.social
For You stores all likes over the last ~60 days and then generates the personalized feed on user request.
spacecowboy17.bsky.social
Can you elaborate? Are you talking about the Bluesky app UI?

I was thinking creating a "Customized For You" - a version of "For You" that people could configure the parameters like how much to penalize popular content (popularity_penalty=0.2).

Are you thinking along those lines?
spacecowboy17.bsky.social
You can peek at anyone's For You feed here: linklonk.com/bluesky?user...

I find it interesting to see how different the perspectives/interests can be.

Note, this playground mode only uses your public likes - not your private "show less"/"show more".
Bluesky "For You" feed playground
linklonk.com
spacecowboy17.bsky.social
Does "show less like this" not work well for you?

Regarding trusting dislikes of others I am thinking of this as part of a solution for sorting the reply section: bsky.app/profile/spac...
spacecowboy17.bsky.social
Then when sorting the replies we sum the "like trust scores" of people who liked that reply.

There is another set of "trust scores" - how much you trust the dislikes of other people.
spacecowboy17.bsky.social
Yes, it only affects your feed. Here is how it works:
spacecowboy17.bsky.social
When you press "show less like this" we make likes of people who liked that post have less importance for you.

Specifically, we disregard one like that you have in common with them.

As a result you would see less content from them.
spacecowboy17.bsky.social
Glad you liked it! Here is the link:
spacecowboy17.bsky.social
Thanks! I guess you need to rebuild it if the follow graph changes? Is it an incremental update or from scratch?

Also can you please share the QPS for Following vs Discover? I want to get a sense of the worst case scenario for serving For You.
spacecowboy17.bsky.social
Is it literally fetching post ids of all your follows from a SQL db? Or does it have custom logic?
spacecowboy17.bsky.social
Whoever you are paying - it is working!
quilling.dev
Im being extorted Im paying £70 a month to show up in the For You feed this is criminal
spacecowboy17.bsky.social
Try For You - it finds people who liked the same posts as you, and shows you what else they've liked recently.

Right now it is mostly BB27 content for you.
spacecowboy17.bsky.social
One thing I want to explore in the future is to give more weight to "show less".