Concepts
How things are found
There are six ways somebody comes across a post or a profile on Anahita: their home page, a custom feed, search, suggestions of whom to follow, and what is trending. This page is how they fit together, and what each one orders by. The pages it links to have the numbers.
Six ways in
| Way | What it shows | In what order | Page |
|---|---|---|---|
| The home page | What the people, groups and events somebody follows posted | Newest first, always | Custom feeds |
| A custom feed | What a person chose: sources, hashtags, words, locations, languages, a distance | Newest first | Custom feeds |
| Search | People, groups, events, posts and shared feeds that match the words | Most relevant, or most recent | Search |
| A hashtag's or a location's posts | The posts that carry it | Most relevant, without the words | Hashtags and locations |
| Suggestions | People, groups and events to follow | By the reasons for each, scored | Recommendations |
| Trending | The hashtags and locations the most profiles used lately | By how many profiles, each once | Trending |
The home page and custom feeds are by date and nothing else. Only search, a tag's posts and suggestions rank, and every one of them says why.
What they share
Every way in walks the same graph, over the same edges, and reads only what the viewer may see.
| Sign | The edges and columns | Used by |
|---|---|---|
| Who somebody follows | edge.actor.follow.v1 |
Every one: the home page is made of it; search puts what you follow higher; suggestions look at whom your follows follow |
| What people found useful | Likes (edge.base.voteup.v1), saves (edge.base.bookmark.v1, private: never shown to anybody), replies, reposts and quotes |
Search's standing; you_engaged in suggestions |
| What people cite | edge.medium.citation.v1, counted once for each person who cites |
Search's standing; cited and cited_by_leaders in suggestions |
| Who is in a photo or a video together | edge.tag.person.v1, approved tags only |
pictured_with_followed in search; pictured_with_you and pictured_with_leaders in suggestions |
| What a post is about | edge.tag.hashtag.v1, edge.tag.location.v1 |
Custom feeds' filters; search; shared_interest in suggestions; trending |
| How lately a profile was active | When it last posted, or was visited | Suggestions put the quiet last, and leave out those quiet longer than the reader chose |
A sign is never more than one of several. A logarithm keeps one post liked a thousand times from burying everything else in search, and every reason for a suggestion has a most it can add.
What is never used
What somebody looked at, for how long, what they scrolled past, what they clicked on, where they were when they did: none of it is recorded, so none of it can rank anything. Each sign above is something a person chose to do and could see themselves doing: follow, like, save, reply, cite, tag. There are no hidden signals, and no profile of interests is built from behaviour to rank by (Why Anahita).
Interest fades; usefulness does not
A guide a library wrote years ago is as useful as one from this week. So
nothing is pushed down for being old. What may fade is interest: each
like, save, reply or follow is counted by when it happened, halved every
half_life_days, a year by default. A guide that people saved this month
stands as high as a new post saved as often.
A citation does not fade. Citing takes effort and is lasting, and what is cited stays useful. See Old and useful counts as much as new.
Each person's own weights
Each person who is signed in can change how much each sign counts, for them alone, and nobody else's results change:
- In search, six weights: likes, saves, replies, followers, citations, and what they follow (Their own weights), and two choices, Profiles I follow first and Newer results first.
- In suggestions, a weight for each reason, from 0, not used, to 10;
whether what they liked and wrote may be used at all (
use_activity); and how lately somebody must have been active to be suggested (Each person's own weights). - Custom feeds are the rest: a person who wants a different feed makes one, and calls it what they like.
The operator's numbers
Every default is the installation's to change:
| What | Where |
|---|---|
Search: the points for a match, the weights of each sign, half_life_days |
graph-grpc-defaults/search_ranking.json, read again when it changes (Tuning it) |
| Suggestions: the score of each reason and its most | recommendation-service/constants, in the code: a change is a new build |
| Trending: the window | TRENDING_WINDOW (Configuration) |
A newsroom may want interest to fade in a month; a library, a school or a research group in a year or more, or never.
From anahitasocial/anahita-services, 2026-10-27.
Written by Claude, reviewed by Rastin Mehr · About this