Community post
Content discovery, feeds and decentralized social media

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 @acidyo'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 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.
Best,
@howo
Replies (16)
Oh, I would like to see that!
Here you go ! It's a 50/50 mix of posts from people you follow (ranked by how much you interact with them) and discovery posts from authors you don't follow yet.
From your follows
Discovery — posts you might like
The "why it's here" column shows what signals triggered each discovery: mutual connections who follow the author, tags matching your interests, communities you're active in, social proof (mutuals commented on it), or authors you've commented on before but don't follow.
Still very much a work in progress, lots of tuning to do, but the bones are there!
This is great!! The selection really feels like something I’d naturally read, so it truly delivers on that “for you” experience.
Quick question on the timeframe: was it intentional to include posts older than 7 days?
Also, not sure how feasible this is, but it would be awesome to occasionally surface some undiscovered or under-rewarded hidden gems, especially from newer authors. It could be a great way to engage with fresh voices and spark more meaningful conversations. Maybe this could be guided by signals like authors who’ve been upvoted by curation guilds before or who consistently leave thoughtful comments on other posts.
That said, as you mentioned, this is already a really strong step forward 👍
Hey, glad to find this post (I was tagged below actually) and I love the idea
Would you like to run a test for my account?
Let me know if you need any extra assistant with testing :)
Seems interesting. Any way for me to test this?
This is fantastic! I think it's one of the great things that Hive is missing: an algorithm that helps us find posts that are truly worthwhile, that have a high degree of affinity with us. That's really interesting.
If possible, I'd like to test it with my account as well. Best regards.
Here's yours, please tell me what you think :)
Followed
Discovery
Sadly not really, I am running queries manually on a hivemind server's database, it's not an actual endpoint you can query because it's nowhere near production ready
Omg I'm sorry I didn't account for the fact that I'd tag a bunch of people when I posted his feed 😅
Here's yours, please tell me what you think:
Followed
Discovery
Awesome ! Is there any posts that you feel are out of place ?
Yes, I've decided to include them so that people don't miss out on them, but you raise a valid point, curation-wise it's a bit useless because they are past their payout window.
This is kind of the goal of the algorithm. But underdiscovered gems are, well, by definition underdiscovered so it's hard to find signal for them. That being said I could see a future where you can specify a list of accounts you really like (eg: curation guilds) and whatever they comment/vote on has a strong score for the algorithm.
Omg yes. This would be awesome!
That's awesome! These posts and their topics make perfect sense—you really need to roll out this new way of searching for posts on a large scale, haha
Defiantly interesting to see some people are thinking about evolving the platform and what can be done to make it more mainstream. I think this would be an amazing for future scaling up of users, most people don't want to spend time searching for content to read. Big pain point that could be solve. Could the algorithm be implemented by all frontend, would it be shared infrastructure or like a service you can subscribe to in order to make your frontend more attractive?
This is GREAT!
Looking for good curation tools.
@Gibic gave a link to a tool he has, build, uses. That already gives some form of curation.
I wonder: Can the algo be configured so that each user can decide whether a parameter is included in the algo?
For instance, I don't like the post value as a parameter. The same users get the same high-value votes, most of the time.
I certainly don't like trending like parameters! Same users showing up all the time.
On number of votes: I disagree this isn't a parameter. Undervalued posts get upvotes from curator teams such as Curie, OCD, Curangel, Ecency and many others. These have long vote trails. The number of votes on a post can easily by 500, and still the post is undervalued. Simply because the big value voters don't include these authors in their auto-votes, or don't (manually) slap their votes on posts that aren't already hot/trending.
Quality is key, I believe. Though quality is somehow subjective, I would think we should include 'quality' into the mix. Perhaps we need AI for this. Perhaps this part of the algo is per user: the user connects an AI of their choice, paid by the user; either connected by the user or through a subscription offer from a HIVE service. Preferably, both, but could start with the user configuring it themselves to keep it simple.
As a curator, I am mostly interested in high-quality posts and engagements, as well as undiscovered quality posters. Undiscovered means, undiscovered by the HIVE community (almost no to no votes), but also discovered users by the HIVE community, but not by me.
Am interested in the resault for my username.
🙏👍
Is this not something front ends could do?