The
Multiverse
School

Report · Federated recommendation research

Prior art: decentralized and user-controlled recommendations (video focus) and the "follow + match / shared history" idea

A survey of shipped products and protocols that come close to consented taste-matching for video, from Spotify Blend and Plex to Tribler, PeerTube, Nostr, Bluesky, Farcaster and Odysee. It finds the pieces exist separately but no open system lets chosen peers exchange private watch history to drive recommendations.

Date
Sources checked
Shelf
AI & society
By
Liz Howard, The Multiverse School

Scope note: research done 2026-10-19 with about 17 search/fetch calls, then a verification pass the same day (see the revision log at the end). Items marked [verified] were checked against a fetched page, source code, or search results. Items marked [background, not re-verified] come from general knowledge. Their URLs are canonical project pages, but the specific claims were not re-checked, so the report writer should hedge them. Items marked [unresolved] were checked but could not be settled; the reason is given.

Has anyone built this exact thing? Follow creators, plus a "match" relationship where chosen peers exchange watch/like history to drive video recommendations, on an open or decentralized substrate

Takeaway

I found no shipped product or protocol that combines all three parts: (a) following creators, (b) an explicit, consented peer "match" link through which two or more users exchange private watch/like history, and (c) recommendations computed from that shared history on a decentralized or user-controlled substrate. Each part exists on its own. Centralized, closed services pair (b) and (c): Spotify Blend, YouTube Music Taste Match, Plex Discover Together, and historically Last.fm neighbours. The only working decentralized version of (b)+(c) is Tribler's BuddyCast "taste buddies" from 2006–2008, which was P2P collaborative filtering over download histories, used gossip with similar peers, and was not opt-in per peer. By 2012 Tribler described Dispersy as BuddyCast's successor. On the open protocols (Nostr, ATproto, ActivityPub), recommendation work centers on public social-graph trust (follows) and public engagement. None of them has a standard way to share private watch history with chosen peers. ATproto's permissioned-data work ("Atproto Spaces", proposal 0016) opened an alpha in Aug 2026, but it provides access control, not end-to-end encryption. The nearest server-side analogues of "taste matching" are a few co-like feeds: Graze's open-source personalization engine (random walks over the Bluesky like graph) and Funkwhale's pod-local "similar" radio, which mines other users' listening history on the same server, limited to users whose privacy setting allows it.

Cited Findings

Closest analogues: consented taste-sharing between chosen people (centralized)

  • Spotify Blend [verified]. One user invites another, and Spotify generates a shared playlist from both users' tastes that refreshes daily. A "taste match score" is shown as a percentage, along with the song that brings the two together. Blend launched officially in 2021. — TechCrunch; RouteNote
  • Spotify later expanded Blend to up to 10 people and to some artists. — Engadget
  • Spotify does not publish how the match score is calculated. Search results describing Blend did not explain the computation (gap).
  • YouTube Music "Taste Match" [verified, thin]. You send an invite link to a friend and get a combined playlist. This is the closest video-company analogue, but it covers music only. — Android Central
  • Plex Discover Together [verified]. It went public in Nov 2023 as a social layer: watch history, watchlist and ratings can each be set to Private or Friends Only. Friends' activity shows in an Activity feed, and title pages show which friends watched or rated a title. — TechCrunch; Plex forum
    • What it got wrong: the privacy setting applies to a whole category of content at once, and a weekly friends'-activity email was on by default. This caused a backlash, and Plex added an opt-out. — Cord Cutters News; The Register
    • It covers only activity on Plex. It does not import history from other streaming services. — Cord Cutters News
  • Last.fm neighbours [verified for existence]. Last.fm's 2008 blog post "Musical Soulmates" introduced neighbours as a way to meet other users "who have lots in common with you", computed from public scrobble (listening) history. A "taste-o-meter" compared two users. — Last.fm blog 2008
    • Current status [unresolved]. What I found on 2026-10-19:
      • The /user/<name>/neighbours route still exists. Search engines index such pages, and the snippets show a "does not have any neighbours" message rather than a list.
      • The API documentation page for user.getNeighbours returns HTTP 404 (last.fm/api/show/user.getNeighbours), so the method appears to be gone from the public API.
      • Direct fetches of last.fm user pages hit a bot challenge, so I could not see a populated neighbours page.
      • I found no announcement of removal. The earlier secondary source (bubbles.town/entry/17742987) now returns HTTP 410 Gone and has been dropped.
      • Best reading: the page shell survives, but the feature appears empty or dormant. Hedge any claim either way.
  • Consumer movie "match" apps [verified, listings only]. Minu ("Movie Match" connects people with shared taste) and Matched (couples swipe on titles and get recommendations). Both are closed apps. — Minu App Store; Matched Google Play
  • Trakt, Letterboxd, Goodreads. These are social logging services where you follow people and see their watch/read activity (social features: background, not re-verified).
    • Trakt API [verified]. Trakt says it makes its data "available for anyone to mash up and use on their own apps". Any user can create an API application in their Trakt settings. Clients read a user's full watch history through the OAuth-protected /sync/history endpoint, for example the Obsidian "sync-trakt" plugin. — trakt/trakt-api README; developer.trakt.tv; Obsidian plugin
    • Letterboxd API [verified via the official page's search snippet; direct fetch returned 403]. Access is by request only. Letterboxd says it is not currently granting access for "data analysis, visualization, or recommendation projects", LLM uses, or private/personal projects. That rules Letterboxd out as a data source for this idea. — Letterboxd API access
    • Third-party apps that import Trakt history include JustWatched (per its App Store listing). — JustWatched listing

Closest decentralized analogue: Tribler BuddyCast (P2P "taste buddies")

  • Tribler (TU Delft) ran a decentralized recommender that compared download histories to find "taste buddies" and recommended files they had that you lacked. Tribler describes it as decentralized user-based collaborative filtering. — Tribler: DecentralizedRecommendation
  • How it worked: each peer keeps a list of its most similar peers and a list of random peers. It periodically gossips with a taste buddy (exploitation) or a random peer (exploration). BuddyCast3 added ratings and comments. — Tribler: Buddycast3; Tribler paper, TU/e
  • The approach was applied to P2P TV, predicting interest from zapping (channel-switching) behaviour. — CWI
  • Status [verified in part]:
    • A 2012 ACM SIGMM open-source column on Tribler says: "Dispersy is the successor of BuddyCast, and it is focused on NAT-traversal." In 2012 BuddyCast still connected "to a new peer every 15s" to exchange preference lists. — SIGMM Records, 19 Jul 2012
    • The current Tribler README describes "P2P content discovery" and does not mention BuddyCast. — Tribler/tribler
    • The earlier citation, a Tribler forum reply saying "Taste-Buddies algorithms" were removed about a decade ago, could not be re-checked. forum.tribler.org now redirects (HTTP 301) to GitHub Discussions, and the Wayback Machine was rate-limited from this session. I kept the old URL only as a historical pointer: forum.tribler.org/t/clarification-needed-regarding-cooperative-downloading/7064. Context: Pouwelse et al., "fifteen year struggle"
  • Lessons: the design is technically close (history-sharing with similar peers, gossip). But history was shared with algorithmically chosen peers rather than consented "matches", which raises privacy issues, and the feature did not survive.

Academic P2P collaborative filtering (no shipping products found)

  • P2PCF (2021): each peer sees only its friends' interactions, and recommendations are computed locally. The design aims at privacy and cold start. This is the closest academic match to "share with chosen peers". — SAGE / JHS
  • TU Darmstadt (2009): a P2P recommender that restricts information exchange to friends and avoids super-peers. — PDF
  • PipeCF and DHT-based distributed CF: distributed CF scales comparably to centralized CF. — ScienceDirect; ResearchGate
  • An extended search for an open-protocol app that shares watch history with friends found no such open-source product. — search conducted 2026-10-19 (no URL; negative result)

Inferences

  • The "match" concept is validated as a consumer feature in centralized form (Spotify Blend, Taste Match, Plex) and was technically demonstrated P2P (Tribler). The new part would be consented, pairwise, private history exchange plus local CF on an open protocol, applied to video.
  • What went wrong in the analogues: Plex's all-or-nothing visibility and default-on emails, and Tribler's non-consensual similarity gossip. Both suggest per-item or per-peer controls and explicit opt-in.
  • Blend's visible match percentage and "the song that brings you together" are the parts users share socially. That makes them a likely good UX pattern to borrow.

Gaps

  • Last.fm neighbours: the page route survives but appears empty, and the API method is gone. Whether the feature is formally retired is [unresolved] (see above).
  • Spotify Blend's algorithm is undisclosed.
  • I did not check whether any Nostr or ATproto hobby project implements "shared watch history with chosen follows". GitHub code search was out of scope for this pass.

Fediverse (ActivityPub): PeerTube, Sepia Search, PeerTube Picks, Loops, Owncast, Funkwhale, Mastodon discovery

Takeaway

PeerTube itself has no personalized recommendation engine. Its built-in "recommended/next videos" list comes from the current PeerTube client code. It shows up to 5 videos from the instance's own search (searchTarget: 'local') that share at least one tag with the current video, newest first. Logged-in users' already-watched videos are excluded. If that search finds one video or fewer, it falls back to the instance's newest videos. It is tag- and recency-based, not random, although an undated fairkom issue described it as random (see below). Personalization exists only in third-party, client-side experiments that keep history local and share nothing (PeerTube Picks). Loops (fediverse TikTok-style) has a For You feed using engagement, hashtags and social-graph signals. Fediverse discovery is mostly server-side trending plus search indexes. The one federated-media exception is Funkwhale's "similar" radio, which does collaborative filtering over the pod's own listening history.

Cited Findings

  • PeerTube Picks [verified]. A Firefox add-on that recommends PeerTube videos using cosine similarity over the videos you watched and liked. Watch history stays in the browser, with export/import/delete in its Options page. It contacts servers only to fetch video metadata. — PieFed post
    • Source and license (resolved): the Mozilla Add-ons API lists the add-on under author "solidheron", version 1.0, MIT License, homepage github.com/solidheron/peertube_recomendation_algorythm. It was created 2025-05-08, last updated 2025-05-11, and had about 4 average daily users on 2026-10-19. It is therefore the Firefox build of the Chromium extension below. — AMO listing; AMO API
  • PeerTube recommendation algorithm (alpha) [verified]. A Chromium extension by the same author, with repo solidheron/peertube_recomendation_algorythm. It pulls videos from several instances and ranks by "like similarity" and "time engagement similarity" (cosine similarity over English title/description/tag words). It halves the scores of already-seen videos and caps results at 5 per channel. Data is stored in IndexedDB, for a single user only, with "no data sharing yet". — PieFed post; GitHub
    • Relevance: this is the closest open-source video project to the idea. It already has the local profile; what it lacks is peer exchange.
  • PeerTube-Browser [verified, thin]. A third-party site whose recommendations use embedding vectors, approximate-nearest-neighbour (ANN) search, and user likes. — PieFed
  • Recommender issue (displ.eu/fairkom) [verified, thin]. Proposes a PeerTube plugin to build a sorted recommendation list from local and federated content. It wants episodes ordered alphanumerically rather than "randomly (as currently implemented in PeerTube)". — fairkom GitLab
    • Reconciled with the code: PeerTube's recommender is not literally random. VideoRecommendationService asks for 5 videos. It runs an empty-query local search filtered by tagsOneOf (the current video's tags), sorted -publishedAt (newest first), with excludeAlreadyWatched for logged-in users. It falls back to the newest-videos list when the search returns ≤1 result, or when the instance turns off local search in favour of a remote search index. From a viewer's side, "newest video that shares any tag" can look arbitrary, which probably explains the fairkom wording. The point that matters is unchanged: there is no series/episode ordering and no personalization. — video-recommendation.service.ts (develop)
  • Loops [verified]. Open-source short-video app by Daniel Supernault (Pixelfed). It added ActivityPub federation on 14 Oct 2025. It has a chronological Following feed and a For You feed that, per the project, draws on engagement, hashtags and social-graph signals (self-description). Wikipedia notes human-led "trust scores" for moderation. The iOS app launch date was reported as 30 Jan 2026. — joinloops.org features; Wikipedia; roadmap
  • Sepia Search [verified]. sepiasearch.org describes itself as "A search engine of PeerTube videos, channels and playlists, developed by Framasoft". Its code (the search-index repo, "Application behind search.joinpeertube.org") is TypeScript/Node with Express, a Vue 3 client and Meilisearch. It is global keyword search, not personalized recommendations. — sepiasearch.org; framagit search-index README
  • Owncast [verified]. Self-hosted livestreaming with fediverse integration. Discovery is an optional, opt-in directory: a server "registers by pinging the directory every 4 minutes, and only while you are live". The docs note anyone can build their own directory from the live status Owncast servers broadcast over ActivityPub. I found no personalized recommendation feature. — Owncast docs: The Directory
  • Funkwhale [verified; corrects the earlier "no recommendation features"]. Federated audio. Its "radios" include a registered similar radio, a pod-local collaborative filter. For a seed track (the session's last 3 tracks, then the start track), it queries history_listening with SQL to find which track listeners most often played next. It counts only listeners whose privacy_level is instance or everyone, plus the current user, and picks randomly among the matches. Funkwhale also has a troi radio that calls ListenBrainz's Troi recommender using the user's ListenBrainz credentials. The user docs list only Favorites, Random, Recently Added, Less listened and "Your content" as built-in radios, so similar is mainly reached from track/artist pages. This is the closest existing federated-media precedent for "recommend from other people's listening history, gated by their privacy setting", but it is server-side and instance-wide, not consented per peer. — radios.py (develop); Funkwhale user docs: radios
  • Mastodon [verified].
    • Home feed: joinmastodon.org says "No algorithms or ads to waste your time" and that you "receive their posts in chronological order". — joinmastodon.org
    • Trends: public endpoints GET /api/v1/trends/tags (3.0.0), /trends/statuses and /trends/links (3.5.0) return items ranked by "an internal trending score". — Mastodon API: trends
    • The trend scores in the code are simple anomaly scores. For a status: observed = reblogs + favourites, expected = 1, score = (observed − expected)²/expected when observed ≥ 5, with a 1-hour half-life decay. For a tag: observed = distinct accounts using it today, expected = yesterday's count, with a 4-hour half-life on the max score. Items above a review threshold that are not yet approved generate staff review notifications. — statuses.rb; tags.rb
    • Follow suggestions: GET /api/v2/suggestions (3.4.0) returns "Accounts that are promoted by staff, or that the user has had past positive interactions with, but is not yet following". — Mastodon API: suggestions
    • The earlier citation (docs.joinmastodon.org/admin/settings/#discovery) now returns 404 and has been replaced. The "relays share public posts" point remains [background, not re-verified].

Inferences

  • PeerTube has the greatest unmet need and the least prior work. Its built-in "same tag, newest first" list is a low bar. A browser-side or client-side recommender that exchanges profiles with consented peers would extend PeerTube Picks directly.
  • Funkwhale's similar radio shows that an ActivityPub server can already do item-to-item CF from co-listening history while respecting per-user privacy levels. A peer-matched design would move that computation to the device and replace "everyone on my instance" with "peers I chose".
  • ActivityPub has no private, consented data-sharing primitive beyond direct/followers-only posts. History exchange would need an out-of-band or encrypted channel.

Gaps

  • Resolved: PeerTube Picks is MIT-licensed, and its source is the solidheron repo (AMO listing).
  • Usage numbers: the only figure found is about 4 average daily users for PeerTube Picks (AMO API, 2026-10-19). There are none for other PeerTube recommenders.

Nostr: video clients, DVMs (NIP-90), Web-of-Trust scoring

Takeaway

Nostr has the most developed "algorithm marketplace". NIP-90 Data Vending Machines (DVMs) let users request discovery feeds from competing providers, but the upstream NIPs repo now marks NIP-90 unrecommended ("this got totally out of control, prefer use-case-specific microstandards"). Trust services such as Vertex compute personalized PageRank over the follow graph. These systems rank by public follows and engagement, not by private watch history shared between peers. diVine (the Vine reboot, Nov 2025) is the most prominent Nostr video app. Its public issue tracker shows that recommendations come from a server-side Gorse recommender behind its "Funnelcake" REST API, and that swipe "feed tuning" signals are deliberately sent privately to that backend rather than published as Nostr events.

Cited Findings

  • NIP-90 DVMs [verified upstream]. A job marketplace: requests use kinds 5000–5999, results 6000–6999 (always request kind + 1000), and job feedback kind 7000. Providers compete on output and price. The upstream file is tagged draft unrecommended optional. — NIP-90 (upstream)
  • Content discovery is a headline DVM use case. The NostrDVM framework lists discovery algorithms first, and its author expects the best algorithms to emerge from an open market. — nostr.at note
  • Client support: Amethyst v0.87.2 added DVM discovery feeds. noStrudel and Coracle can use them via Vendata. — No BS Bitcoin; Uncensored Tech "Bring Your Own Algo"
  • What went wrong: discoverability of DVMs is poor. One operator saw zero jobs in 8 hours because most clients don't surface NIP-89 handler announcements. — Stacker News
  • NIP-90 status [verified]. The upstream NIPs README lists it struck through: "NIP-90: Data Vending Machines --- unrecommended: this got totally out of control, prefer use-case-specific microstandards". The 90.md file carries the same warning banner. This confirms the D-Central guide's claim. New work should not build on NIP-90 as a long-term standard. — nips README; D-Central
  • Vertex [verified]. "Web of Trust as a service" for Nostr. It continuously crawls follow lists and computes Monte Carlo Personalized PageRank. It is exposed as DVMs (Verify Reputation, Recommend Follows, Sort Authors), launched Feb 2025, and is MIT-licensed. — No BS Bitcoin
  • Related trust work: Relatr computes per-perspective trust. NIP-85 "trusted assertions" (kind 30382) let scoring services publish results to clients. OpenSats funds Web-of-Trust work. — OpenSats WoT topic
  • diVine [verified]. A Vine reboot on Nostr, led by Evan "Rabble" Henshaw-Plath and funded by Jack Dorsey's nonprofit "and Other Stuff". It launched in Nov 2025 with a restored Vine archive (TechCrunch says more than 100,000 videos; other outlets say about 10,000, a conflict). It blocks suspected generative-AI uploads. — TechCrunch; Cassius; werd.io
    • Feed ranking [verified from diVine's own repos; formula not public]:
      • The divine-web README lists Home (following), Discovery, Trending/Popular, Hashtag, Categories and Profile feeds. "Funnelcake is the Divine REST API (api.divine.video)", used "alongside the relay for feeds and video metadata". Search uses NIP-50 relay-side sort modes sort:hot, sort:top, sort:rising and sort:controversial. — divine-web README
      • Epic #9415 (opened 22 Sep 2026, open) says the recommendation engine is Gorse, refitting hourly (fit_period = "60m"). The planned change makes left/right swipes demote or promote a creator or topic per request in Funnelcake. The swipe signal is "Recommendation input only" and must never feed moderation or reputation. — divine-mobile #9415
      • Issue #9419 replaces a public kind-4242 Nostr "feed tuning" event with a private NIP-98-authenticated POST to Funnelcake, because public swipe events would be "publicly attributable". The acceptance criterion is "Nothing is published to any relay". — divine-mobile #9419
      • Funnelcake's source is not public as far as I can tell. The epic links divinevideo/divine-funnelcake, but that repo is absent from the ecosyste.ms listing of the divinevideo org's 38 public repos. Gorse itself is open source (gorse-io/gorse, Go, Apache-2.0).
  • Other Nostr video and media clients:
    • Olas [verified]. An Instagram-style Nostr client by pablof7z covering photos (kind:20 picture events) and short videos. — No BS Bitcoin: Olas v0.1.4; f7z.io
    • zap.stream (live), Nostube and Tunestr (music) [background, not re-verified]. These are generally follow-based or DVM-fed feeds. — zap.stream; olas.app
  • NIP-51 lists [verified; corrects the earlier claim]. Private list items are NIP-44-encrypted with a shared key "computed using the author's public and private key", meaning to the author's own key. They are private to the author, not shareable with chosen peers. NIP-51 can hold a user's own "liked/watched" list across devices. Sharing it with matched peers needs a different mechanism, such as NIP-44/NIP-59 gift-wrapped events addressed to each peer, or an MLS group via Marmot. — NIP-51

Inferences

  • Nostr is the most natural fit for this idea. Signed events, NIP-44 encryption and gift-wraps for private peer-to-peer data, pluggable ranking (DVMs, though NIP-90 is now "unrecommended" upstream), and WoT for spam resistance already exist.
  • diVine's choice to keep swipe signals off public relays (#9419) is direct prior art for the privacy argument: even a large Nostr video app treats engagement signals as too sensitive to publish. The missing pieces are a convention for "watch/like history" events and a consented "match" relationship.
  • Personalized PageRank over follows (Vertex) is a trust or popularity signal, not taste similarity. A "match" layer would add collaborative-filtering signal on top of it.

Gaps

  • I found no current usage figures for DVM feeds or diVine.
  • Resolved: NIP-90 is marked unrecommended upstream.
  • diVine's Trending/Popular formula and Funnelcake source are [unresolved] (backend appears private).

AT Protocol / Bluesky: custom feeds, Graze, Skylight, Flashes, permissioned data

Takeaway

ATproto has shipped the clearest working version of "algorithmic choice". Anyone can run a feed generator, and users subscribe to it. Graze turned this into a business. Video apps on ATproto (Skylight, Flashes) lean on human curators and custom feeds rather than a single For You algorithm. All ATproto repo data, including likes, is public. Permissioned data ("Atproto Spaces", proposal 0016) entered alpha in Aug 2026. It provides access control, not end-to-end encryption: the PDS and authorized apps can read the data. Graze has open-sourced a like-graph personalization engine (LinkLonk-style random walks), which is the closest public ATproto code to "people who like what you like".

Cited Findings

  • Graze [verified]. A no-code custom feed builder for Bluesky. It raised a $1M pre-seed led by Betaworks and Salesforce Ventures. The company said 2.3M people had seen Graze-powered feeds (early 2025). TechCrunch reported about 4,500 feeds by about 3,000 creators. A later Graze newsletter claims 5M readers (self-reported and cumulative). — GeekWire; TechCrunch; Graze newsletter
    • Public source [verified; corrects the earlier "no public source"]. The graze-social GitHub org has public repos. grazer ("Graze Core Algorithm Engine", Python, LGPL-2.1). personalization (Rust, Apache-2.0, last push 2026-08-29): "real-time personalized feed ranking using the LinkLonk algorithm… based on their like history and the likes of similar users. It uses a 3-step random walk algorithm on the like graph". aip (ATproto auth proxy) and jetstream-turbo are also there. — graze-social/personalization; graze-social/grazer
  • Skylight [verified]. A TikTok-style video app on ATproto. In Aug 2025 it added community curators who post, repost and build custom feeds users can subscribe to (swipe left to reach them) instead of relying only on an algorithmic main feed. It planned to integrate Graze for in-app feed building. Community reports said it tweaked its algorithm because of heavy US-politics content. — TechCrunch Aug 2025; Bluesky Report #110; Influencer Marketing Hub
    • Ranking method [unresolved]. Coverage describes a main feed seeded with users' Bluesky follows, plus curator feeds and Graze-built feeds. It gives no description of how the main feed is ordered. — TechCrunch Apr 2025; Fast Company
    • Source: the only public repo under the skylight-social GitHub org is oatproxy, an ATproto OAuth proxy whose README installs from github.com/streamplace/oatproxy. No app or ranking code is public (ecosyste.ms owner listing, 2026-10-19).
  • Bluesky also rolled out custom video feeds positioned against TikTok. — EM360
  • Permissioned data [verified, updated]. The Spring 2026 ATproto roadmap (24 Mar 2026) describes "permissioned data" as in design. Blacksky, Northsky and Habitat are experimenting with extensions, and it "will probably be a major focus… through the summer". Critics, such as Puppet founder Luke Kanies, argue the design splits the system into separate public and private parts. — atproto.com roadmap; minifeed summary of Proposal 0016; zeli.app
    • Status after spring 2026: the proposal is now "0016 Atproto Spaces" and still says "This is a proposal, not the final specification". It covers personal data, gated content, socially shared posts and groups, with one space repo per (user, space) and access "gated by space credential". It states: "Atproto spaces provide access control, not confidentiality. They are not end-to-end encrypted." The reference implementation is atproto PR #5187. Normal Science reported on 20 Aug 2026 that "The alpha is now officially open." — proposals/0016 README; Normal Science
  • Flashes [verified]. An Instagram-style photo/video client for Bluesky by Sebastian Vogelsang (beta Feb 2025). It filters the network to media posts: up to 4 images, videos up to 1 minute. — TechCrunch Feb 2025; flashes.blue
  • SkyFeed, Blacksky, labelers/Ozone [background, not re-verified]. SkyFeed was an early visual feed builder. Labelers (Ozone) provide stackable moderation. — Bluesky blog: algorithmic choice; Bluesky: Ozone

Inferences

  • ATproto has proven that users will choose third-party feeds at scale (millions of feed viewers). That is a demand signal for pluggable recommendation.
  • Because likes are public on ATproto, a public "match" (CF over public likes of chosen accounts) is buildable today as a feed generator. Graze's open-source LinkLonk engine is a working starting point. Private history matching needs Atproto Spaces, and because Spaces are not E2EE, a design that hides history from servers would still need app-layer encryption on top.

Gaps

  • Skylight's and Flashes' main-feed ranking remains [unresolved]. No docs or public code.
  • Resolved: proposal 0016 became "Atproto Spaces", with an alpha opened Aug 2026. A stable release date is not announced.

Farcaster, Lens and web3 reputation: OpenRank / Karma3 Labs

Takeaway

OpenRank (Karma3 Labs) provided EigenTrust-based global and personalized rankings of people and casts for Farcaster and Lens. Like Nostr WoT, it is graph-trust ranking, not shared-history matching. Karma3 Labs announced its wind-down in June 2026 (secondary reports). Both protocols also changed hands in Jan 2026: Neynar acquired Farcaster, and Aave handed Lens stewardship to Mask Network.

Cited Findings

  • Karma3 Labs raised a $4.5M seed in Mar 2024 (Galaxy, IDEO CoLab) to build OpenRank, a "decentralized reputation protocol". Its early use cases were ranking and recommendation APIs for Lens and Farcaster (press release). — Decrypt
  • The OpenRank APIs offered global and personalized profile and frame rankings over following or engagement graphs. The Eigencaster demo shows casts from people you don't follow, chosen by EigenTrust. — ETHGlobal; GitHub Eigencaster
  • Activity 2025–2026 [verified via ecosyste.ms; replaces "last updated early 2024"]:
    • The openrankprotocol GitHub org had pushes through 2026-03-31 (trank, xrank, on-chain-scores), plus openrank-tee (Rust, 2026-01-06) and openrank-avs (2025-07-30).
    • The Karma3Labs org had pushes through 2026-03-18: farcaster-graph (2025-11-27) and go-eigentrust (2025-08-31).
    • Sources: ecosyste.ms: openrankprotocol; ecosyste.ms: Karma3Labs
    • The old citation (awesome.ecosyste.ms/projects/758181) now returns HTTP 402 and was dropped.
  • Shutdown [secondary sources only]. CryptoFox (16 Jun 2026) and an AICoin brief report that founder Sahil Dewan announced Karma3 Labs is ceasing operations after about 3.5 years. Remaining capital goes back to investors, the IP moves to a permanently open-source model, and the repos will be archived but stay public. Reported scale is 10M+ on-chain users scored and 50+ integrations; the incentives figure conflicts ($1M+ vs $50M+). The primary source cited by CryptoFox is an X post (x.com/SahilDewan/status/2066587393529098534), which I could not fetch. — CryptoFox; AICoin
  • Farcaster ownership [verified via multiple outlets]. Neynar announced on 21 Jan 2026 that it acquired Farcaster from Merkle Manufactory. The founders stepped back, and Merkle is returning about $180M to investors. — Neynar blog; The Block
  • Lens stewardship [verified via multiple outlets]. In Jan 2026 Aave transferred stewardship of Lens to Mask Network, with Aave staying on as technical adviser. — Cointelegraph; The Block
  • Lens ranking APIs [verified, possibly dated]. Lens docs describe Karma3 scoring and ranking all Lens profiles hourly via APIs based on 4 scoring strategies. I found no source using the exact name "Lens Open Algorithms", so that label is dropped. Farcaster channels remain [background, not re-verified]. — Lens docs: Third Party APIs and Recommendation Algorithms; docs.farcaster.xyz

Inferences

  • EigenTrust/PageRank seeded from "my follows" is the dominant decentralized-recommendation primitive across Nostr, Farcaster and Lens. It could serve as the trust and spam layer under a taste-matching layer.

Gaps

  • Resolved in part: repo activity continued into Mar 2026, and a wind-down was reported in Jun 2026. The shutdown rests on secondary crypto-news sources plus an X post I could not fetch.

Other decentralized/alt video and P2P platforms (LBRY/Odysee, DTube/3Speak, BitChute, Rumble, SSB, Freenet, Holochain, Gun, Ceramic, Matrix, Diaspora)

Takeaway

None of these offered peer-shared-history recommendations. The blockchain video platforms recommend centrally (Odysee, via a server-side "recsys" service) or by stake-weighted votes (Hive's on-chain "trending"). LBRY Inc. shut down after losing to the SEC.

Cited Findings

  • LBRY [verified]. A judge ruled for the SEC (Nov 2022) that LBC sales were unregistered securities. LBRY announced its wind-down in 2023 (July and later October announcements) and dropped its appeal. The court did not enjoin Odysee, which continues. The LBRY blockchain and about 30M content items were said to persist. — Baker McKenzie; Cointelegraph; Forklog
  • Odysee recommendations [verified from the open-source web client; backend closed]. The odysee-frontend repo (MIT):
    • Related videos (doFetchRecommendedContent): the client searches using the current video's title as the query, with related_to=<claim_id>, video-only, free-only, 20 results (50 if YouTube mirrors are hidden), and optionally the user's language. Because related_to is set, the request goes to SEARCH_SERVER_API_ALT=https://recsys.odysee.tv/search rather than the plain Lighthouse search server (lighthouse.odysee.tv).
    • "For You": the client calls RECSYS_FYP_ENDPOINT=https://recsys.odysee.tv/v1/u/<userId>/fyp, with endpoints to mark a recommendation batch as seen and to ignore a claim or an entire channel.
    • The ranking happens server-side. I found no public recsys repo among the OdyseeTeam org's 43 public GitHub repos (ecosyste.ms).
    • Sources: search actions; util/search.ts; .env.defaults
    • An unverified third-party claim that creators who stake more LBC get priority placement was not confirmed and is excluded.
  • 3Speak (Hive) [verified that it is active; ranking partly verified].
    • The new frontend repo Mantequilla-Soft/new-3speak-tv ("New 3Speak Frontend") was pushed 2026-10-18. Open issues cover podcast-feed "podping" integration. 3Speak's Hive account posted encoder-network reports through Jun 2026. A Feb 2026 review describes "Community-first discovery rather than pure algorithmic feed dependence" and gives no user numbers.
    • Hive's own "trending" sort (Hivemind) is log10(max(|vote_rshares|/1e7, 1)) (signed) plus created_at_seconds / 240000. That is a Reddit-style formula over stake-weighted vote shares (rshares), so the "plutocratic signal" description holds for Hive-native trending. Whether 3Speak's own frontend uses Hivemind trending was not confirmed.
    • Sources: new-3speak-tv issue #221; @threespeak on Ecency; CryptoAdventure review, 20 Feb 2026; hivemind hot_and_trends.sql; 3speak.tv
  • DTube [partly verified]. Wikipedia says DTube was "Initially built on the Steem blockchain" and relaunched in Dec 2025 as an ad-supported platform (that claim is tagged "citation needed"). Its current chain and ranking were not confirmed. — Wikipedia: DTube
  • BitChute, Rumble [background]. These are centralized "alt" platforms, not decentralized. They are relevant only as non-YouTube competitors.
  • Secure Scuttlebutt [verified]. Offline-first gossip. "Users only download messages from peers that they follow (and optionally friends of friends)", and "new peers who join the network aren't visible until someone follows them". Dominic Tarr's scalable-SSB paper says peers by default replicate "their friends, and the friends of their friends". That is social-graph-scoped replication, a close architectural analogue for exchanging data only with chosen peers. It has no recommender.
  • Freenet/Hyphanet, Holochain, Gun, Ceramic, Matrix, Diaspora: I found no recommendation-sharing features in this session. — freenet.org; holochain.org

Inferences

  • SSB's "replicate only your follows" model is the best architectural precedent for exchanging watch history only with matched peers.

Gaps

  • Odysee's server-side recsys ranking logic is closed. Only the client contract (title + related_to query, per-user FYP) is known.
  • 3Speak and DTube user numbers remain [unresolved]. 3Speak's frontend ranking was not tied to Hivemind trending.

Middleware / "algorithmic choice" policy lineage (Fukuyama, Masnick, Free Our Feeds, Project Liberty/DSNP, Bluesky)

Takeaway

There is a strong intellectual case, and some institutional backing, for separating recommendation from hosting ("middleware"). It has so far been realized mainly as ATproto custom feeds and Nostr DVMs. None of the proposals specifically envisions peer-to-peer taste sharing.

Cited Findings

  • Fukuyama argues that middleware, meaning third-party layers that curate or rank on top of platforms, is "the only solution to platform power" (2023). — Carnegie Endowment
  • Stanford Working Group on Platform Scale [verified bibliographic details]. "Report of the Working Group on Platform Scale" by Francis Fukuyama, Barak Richman, Ashish Goel, Marietje Schaake, Roberta R. Katz and Douglas Melamed, 17 Nov 2020. The landing page does not itself mention middleware; the middleware recommendation is in the full PDF, which I did not re-read. — Stanford Cyber Policy Center
  • Masnick [verified]. Mike Masnick, "Protocols, Not Platforms: A Technological Approach to Free Speech", Knight First Amendment Institute at Columbia University, Free Speech Futures essay series, 21 Aug 2019 (cited as 19-05 Knight First Amend. Inst.). — Knight Institute
  • Project Liberty / DSNP [verified]. Frank McCourt launched it in 2021 with $100M. DSNP is an open-source social-graph protocol "owned by the public". Project Liberty announced a partnership with Free Our Feeds, the effort to protect ATproto's independence. — Project Liberty launch; TechCrunch Mar 2025
  • Bluesky's own "algorithmic choice" framing (2023). — Bluesky blog
  • Free Our Feeds [verified, self-description only]. "A campaign to support open, people-powered social media", an initiative of the Modal Foundation. Its three aims are open infrastructure, protection against capture through nonprofit governance, and real choice. The site gives no dated 2025–2026 status updates. — freeourfeeds.com

Inferences

  • A "match"-based recommender fits the middleware vision. It is user-chosen ranking whose inputs (peer histories) are controlled by the users themselves. It can be framed as the user-to-user form of middleware.

Gaps

  • I did not check the current activity of DSNP (Frequency chain) or Free Our Feeds' 2026 status.

Revision log (2026-10-19)

Verification pass using WebSearch/WebFetch plus direct reads of source files (raw.githubusercontent.com, framagit, dev.funkwhale.audio, gitlab.syncad.com), the ecosyste.ms API, the npm and AMO APIs, and Least Authority PDFs. No GitHub MCP tools were used.

  • PeerTube next-video (contradiction fixed): replaced "random" with the actual client logic. Up to 5 videos from a local search sharing any tag, newest first, excluding already-watched videos for logged-in users, with a newest-videos fallback. Kept the fairkom issue but reconciled its wording.
  • PeerTube Picks: resolved source and license. The AMO listing gives MIT, the solidheron GitHub repo and about 4 daily users. It is the Firefox build of the solidheron extension.
  • Funkwhale: corrected "no recommendation features". There is a pod-local co-listening similar radio gated by user privacy level, plus a ListenBrainz troi radio.
  • Owncast, Sepia Search, Mastodon: upgraded from background to verified. Added the Mastodon trend-score formulas from code. Replaced the dead Mastodon docs URL (404).
  • Last.fm neighbours: removed the dead bubbles.town source (410). Added evidence that the page route survives but shows "no neighbours" and that the API doc page is 404. Still unresolved.
  • Trakt / Letterboxd: verified Trakt's open API and /sync/history. Added that Letterboxd's API is request-only and excludes recommendation projects.
  • Tribler BuddyCast: added the 2012 SIGMM source ("Dispersy is the successor of BuddyCast"). The forum source now redirects to GitHub Discussions and could not be re-read.
  • Nostr: confirmed NIP-90 is "unrecommended" upstream and replaced the fork-mirror link with upstream. Corrected NIP-51: private items are encrypted to the author's own key, so they cannot be shared with peers. Added diVine's ranking architecture (server-side Gorse via the Funnelcake API; private swipe signals) from issues #9415 and #9419. Verified Olas.
  • ATproto: Graze has public source (grazer, personalization with LinkLonk like-graph random walks). Skylight has no public app or ranking code. Proposal 0016 became "Atproto Spaces", in alpha since Aug 2026, providing access control rather than E2EE. Verified Flashes.
  • OpenRank: repo activity continued into Mar 2026, and a Karma3 Labs wind-down was reported 16 Jun 2026 (secondary sources). Added Farcaster's acquisition by Neynar and the Lens handover to Mask (Jan 2026). Dropped the dead awesome.ecosyste.ms link (402) and the unsourced "Lens Open Algorithms" label.
  • Odysee: added the recommendation method from the open-source client (title + related_to search to recsys.odysee.tv; per-user FYP endpoint). The backend is closed.
  • 3Speak / DTube / Hive: 3Speak is active (frontend pushed 2026-10-18). Added the Hivemind trending formula, confirming stake-weighted ranking. DTube is only partly verified.
  • SSB: verified the follow-scoped replication and documented the decline (Staltz's Apr 2024 exit, Manyverse moving to PZP).
  • Middleware lineage: verified the Masnick citation (Knight Institute, Free Speech Futures, 21 Aug 2019), the Stanford report's authors and date, and Free Our Feeds' self-description.
  • Still unresolved: whether Last.fm neighbours is formally retired; Spotify Blend's algorithm; Skylight, Flashes and diVine ranking formulas; Funnelcake and Odysee recsys source; first-party confirmation of the Karma3 shutdown; 3Speak and DTube user numbers; DSNP/Frequency activity; whether SkyFeed and Mastodon relay claims are current.