Hey,
Today I want to touch on what I've been working on for the last little while. It is not done by any metric and will likely see the light in a while as it's a complex change with lots of considerations, both technical and product-wise. And that is content discovery.
The problem
Hive is a great place for decentralized social media. It has pretty much all the components of major social medias (think Twitter, YouTube, Facebook etc): follows, feeds, up/down votes and comments. Yet there's a major difference between them and us in terms of usability.
On web2 social medias, content is fed to you based on your tastes. On Hive, you have to dig for it. In theory, proof of brain naturally lets the best content surface and you can view it on trending. The reality doesn't exactly match that, but even if it did, it's a poor content discovery tool as it concentrates viewership towards the few who get upvoted by whales, aka incumbents, making it hard for new authors to get discovered.
Curators are here to help with that, but it's a lot of tedious manual work which simply doesn't scale.
You can follow people and then discover new authors via reblogs (for instance I enjoy seeing 's reblogs) but that is still a manual process.
What is the issue with all these approaches? None of them are tailored to you. You actively need to "search" for content you like. And searching for it is not easy. Go juggle between communities, curator feeds, reblogs, trending. This was fine in the Myspace era but it absolutely isn't in 2026.
What I want to see as a user is a single feed that pulls posts from multiple sources (trending, communities, tags, follows) and sorts them based on my own tastes. So if I start getting into gardening and comment on or vote on gardening posts, more of them should show up in my feed. Basically, a "for you" feed.
So how can we create this on Hive?
Step 1: Merge the feeds. We combine the communities you follow, trending posts, and the people you follow into one feed, with a ranking algorithm to decide the ordering and what makes the cut.
This would already be a step in the right direction and reduces user overhead. Instead of manually checking every community across multiple pages, you scroll one feed.
Step 2: Learn from your activity. This can be improved further by computing where the user is commenting. If a user is often commenting on a specific author or within a specific tag/community but isn't following it, surfacing posts from those sources as "discovery" would be interesting.
Step 3: Leverage mutual connections. Let's say two users follow each other. It's relatively safe to say they share a bigger bond than a one-way follow, which signals common interests. So we could also surface posts from that mutual follow list, things your close connections engage with.
Under the hood: how ranking works
Once we have all these candidate posts from different sources, we need to decide what shows up first. Every post gets a score based on several signals, and the highest scoring posts make it into your feed.
Author affinity. If you frequently comment on someone's posts, their new posts rank higher for you. This is the strongest signal. Someone you interact with daily will always surface above someone you followed once and forgot about.
Comment velocity. A post getting lots of comments relative to its age is a sign of genuine engagement (except when it's filled with spammers or automated bot comments but that's for later). We look at comments per hour and use a logarithmic scale so a post with 5 comments in an hour stands out, but a thread container with 1000 micro-posts doesn't dominate the feed (that was a big issue early on with ecency waves/peakd snaps).
Payout as a quality signal. Vote counts are unreliable due to automation, but the total payout (rshares) still carries some signal. A post earning $100 from 100 votes is more noteworthy than one with 3000 votes and $2. We use log-scaled payout so there are diminishing returns at the top. That prevents one whale from voting and immediately the post gets shoved to everyone's face.
Freshness decay. Posts lose score over time. A post starts with a freshness bonus that linearly decays to zero over about 4 days. This keeps the feed feeling current without completely burying older high-quality posts.
Social proof. If your mutual connections are commenting on a post from someone you don't follow, that's a strong discovery signal. The more mutuals engaged, the higher it scores.
Community and tag boosts. Posts from communities you subscribe to or actively comment in get a score bump. Same for posts matching tags you frequently engage with.
Diversity rules. To avoid the feed being dominated by a single prolific author, we cap the number of posts per author. The feed also interleaves followed and discovery content in a fixed ratio so you always see a mix.
All these signals are weighted and summed into a single score per post. The weights are tunable and will evolve as we test with real users.
A note on votes
Slight tangent, but it's a shame most votes are automated. They therefore carry very little signal and can't really be used for sorting. So we have to rely on signals like comments, which by definition take much longer to write. I know I lurk a lot and often vote on content without commenting.
Bonus: the return of promoted?
This is also where we could see the return of "promoted," an old feature that was scrubbed from Hivemind as nobody used it, and re-implemented by the PeakD team but still sees little use. A "for you" feed could bring an easy way for a post to get extra views and burn some HBD in the process, driving demand for our tokens.
Where we are
All of this already creates a more complex and interesting feed that both learns from a user's actions and surfaces new authors alongside the ones you already follow. Realistically though, we are far from the final product. It's computationally heavy, and because we want to be as decentralized as possible we can't just slap on more hardware and call it a day. Some of my early prototypes took over an hour to run. Obviously there's massive room for optimization, but it gives you an idea of the challenge. As I develop this feature I will build it up piece by piece, adding more signals over time and gathering feedback.
Sneak peek ?
If you want to see what your feed would look like, feel free to comment below and I'll run a query. I really would like to hear your feedback on what posts are irrelevant to you or not so I can tune the ranking algorithm.