311 Lines That Changed How I See Social Media Forever
Inside the architecture of X's algorithm and what it means for anyone building an audience
Yesterday I spent 2 hours going full conspiracy theorist on X’s algorithm.
Not the surface-level “post at 9am for max engagement” bullshit everyone repeats.
I mean the actual architecture.
The components.
The signals.
The whole damn thing.
311 lines of Claude Code analysis later, I realized something that completely changed how I think about building in public.
Most people are playing a game they don’t understand.
They’re posting into the void, hoping something sticks, blaming the algorithm when nothing does.
Meanwhile, the algorithm is sitting there with a handbook, screaming the rules at anyone willing to listen.
I found the handbook.
Let me walk you through it.
Message me on X @LucasSynnott and I will send you my full deep dive 2026 X Algorithm Playbook for FREE
The Machine Behind The Feed
X’s recommendation system runs on four main components.
They call them:
Phoenix
Thunder
Home Mixer
Candidate Pipeline
Think of them like a production line.
Your tweet enters at one end, gets passed through multiple quality checks, and either makes it to someone’s feed or gets tossed in the reject pile.
Most tweets get tossed.
Understanding why is the difference between shouting into the void and actually building an audience.
Thunder
Let’s start with Thunder because it’s the simplest and it’s your unfair advantage with followers.
Thunder is an in-memory post store that handles content from accounts people follow.
When you hit send on a tweet, it goes into Thunder immediately via real-time Kafka streaming.
For every single person who follows you, your post becomes a guaranteed candidate in their feed.
Not “maybe they’ll see it.”
Guaranteed candidacy.
Sub-millisecond lookup times.
No competing against millions of other posts just to be considered.
This is why followers actually matter.
When someone follows you, your content bypasses the brutal competition of the discovery algorithm entirely - at least for that person.
It still needs to score well to rank high in their feed, but it will be considered.
Compare that to reaching people who don’t follow you.
Your post has to go through Phoenix, compete against millions of other tweets, and score exceptionally well just to be shown to them.
Every real follower you gain is one less person you have to fight the algorithm to reach.
Thunder also sorts by recency.
So when people say “post when your audience is online,” this is why it matters.
If you post when your followers are asleep, newer posts from other people they follow will push yours down before they ever open the app.
Phoenix
Phoenix is where things get sophisticated.
It’s the ML brain behind everything, and it has two jobs.
Job one: Retrieval.
Phoenix uses something called a two-tower model to find out-of-network content - tweets from people you don’t follow that you might find interesting.
One tower encodes everything about a user - their last 128 interactions, what they liked, retweeted, replied to, even where they engaged (feed vs. search vs. profile).
The other tower encodes every tweet and its author into an embedding.
Then it does a similarity match.
Your user embedding gets compared against millions of tweet embeddings using dot product similarity.
The closer the match, the more likely that tweet gets pulled as a candidate for your feed.
This is why niche content can blow up so fast while generic content dies in obscurity.
If you consistently post about a specific topic, your author embedding becomes strongly associated with that topic.
When someone’s user embedding shows interest in that topic, Phoenix retrieves your content.
But if your content is all over the place - marketing on Monday, politics on Tuesday, random memes on Wednesday - your author embedding becomes confused.
It doesn’t align strongly with any user segment.
Phoenix can’t figure out who to show your stuff to.
So it doesn’t show it to anyone.
Job two: Ranking.
Once Phoenix has retrieved thousands of candidates, it needs to rank them.
This is where the Grok-based transformer comes in.
And this is the part that blew my mind.
The algorithm doesn’t predict a single “engagement score.”
It predicts 19 different actions simultaneously.
For every tweet, Phoenix calculates the probability that you’ll:
Like it
Reply to it
Retweet it
Quote tweet it
Follow the author
Click their profile
Bookmark it
Watch 50% of the video (if it’s video)
Spend 15+ seconds reading it
Click the link
Share it via DM
But here’s where it gets interesting.
It also predicts the probability that you’ll:
Block the author
Mute the author
Report the tweet
Click “Not Interested”
Unfollow after seeing it
And the negative signals aren’t weighted equally with the positive ones.
They’re weighted catastrophically higher.
Based on the code analysis, here’s roughly how the math works:
Positive signals:
Like: 1x
Reply: 3-5x
Retweet: 2-4x
Follow: 3-5x
Negative signals:
Report: -100x
Block: -50x
Mute: -30x
“Not Interested”: -20x
One predicted report can outweigh 100 predicted likes.
One “Not Interested” prediction can tank your reach before anyone even sees the tweet.
The algorithm isn’t just looking for content people will engage with.
It’s aggressively filtering out content people might react negatively to.
This changes the entire game.
The Candidate Isolation Principle
When Phoenix scores your tweet, it scores it in isolation.
Your tweet’s score depends on the user viewing it and their history.
It does NOT depend on what other tweets are in the batch.
Traditional ranking systems score posts relative to each other.
Tour tweet might rank higher when competing against weak content and lower when competing against a viral banger.
X doesn’t do that anymore.
They use something called candidate isolation masking in the transformer.
Each tweet can see the user’s context and history, but it cannot see the other candidate tweets.
Your score is your score.
Period.
This has huge implications.
It means X can compute your score once and cache it.
It means your ranking is consistent regardless of what else is in someone’s feed.
And it means you’re not trying to “beat” other tweets.
You’re trying to match user preferences.
Stop thinking about outcompeting other creators.
Start thinking about deeply understanding what your specific audience wants.
Home Mixer
Home Mixer is where everything comes together.
It’s the orchestration layer.
The conductor that coordinates Thunder and Phoenix and assembles the final feed.
Thunder says: “Here are posts from accounts this person follows.”
Phoenix says: “Here are out-of-network posts this person might like, ranked by predicted engagement.”
Home Mixer combines them, applies final business logic (diversity requirements, recency balance, content type mix), and serves the feed.
The split between in-network and out-of-network content is dynamic.
High-engagement users who interact with lots of content see more discovery posts.
Low-engagement users who mostly scroll see more from accounts they follow.
This is why some people complain about seeing “too many posts from people I don’t follow” while others see mostly their timeline.
The algorithm is personalizing the ratio based on behavior.
The Candidate Pipeline
The Candidate Pipeline is the framework that processes everything.
It runs in seven stages:
Query Hydration: Enriches the request with user context (language, location, what they’ve already seen)
Source: Fetches candidates from Thunder and Phoenix in parallel
Hydration: Adds metadata to each candidate (author info, engagement counts, content signals)
Filter: Removes candidates that don’t meet criteria (blocked accounts, already seen, policy violations)
Scorer: Phoenix transformer scores each surviving candidate
Selector: Picks the final posts based on scores and diversity requirements
Side Effects: Logs everything for model training
Every stage is an opportunity for your content to either advance or get filtered out.
The filter stage is particularly important.
If your content triggers safety filters, it gets removed entirely.
If it matches spam patterns (too many hashtags, too many @mentions, all caps), it gets flagged.
If it’s been shown before, it gets deduplicated.
And if your posts frequently get filtered, the algorithm learns that pattern.
Your author embedding starts carrying that signal.
Future posts get scrutinized more heavily.
One bad post can poison dozens of future ones.
The Identity System
Your identity in the algorithm isn’t just your user ID.
It’s represented by multiple hash values that map to learned embeddings.
Same with every post you create.
Same with your author profile.
These embeddings are learned over time based on engagement patterns.
There’s no explicit “credibility score” like the old TwEEPCred system.
Instead, your credibility is encoded implicitly in your author embedding.
If your posts historically get high engagement, your embedding carries that signal.
If your posts historically get reports and blocks, your embedding carries that signal too.
And here’s what trips people up:
Deleting and reposting doesn’t reset anything.
The new post has a new ID with new hash values, but your author embedding - which carries your historical reputation - stays attached.
You can’t outrun your track record.
You can only improve it over time with consistently good content.
Testing The Theory
I tested this yesterday.
Crafted five tweets based on what I learned about the algorithm.
Made them specific enough that Phoenix would know exactly which user embeddings to match them against.
Front-loaded the value so dwell time predictions would be high.
Made them easy to reply to without being controversial.
I wanted high reply predictions without triggering block or “not interested” predictions.
Avoided anything that might make even one person click “Not Interested”.
Early results look promising, but I’ll have more data next week.
The bigger takeaway though isn’t about gaming the algorithm.
It’s about understanding what the algorithm is trying to do.
X is trying to solve a problem.
How do we show people stuff they’ll actually find valuable without showing them stuff that makes them want to leave the platform?
The 19-signal prediction system is optimized for user satisfaction, not creator satisfaction.
If you align your content creation with that goal, if you genuinely try to create things your specific audience will find valuable while avoiding anything that might trigger negative reactions, the algorithm becomes your friend instead of your enemy.
The people complaining about reach going down?
Usually they’re posting one of two things.
Generic content that doesn’t create a strong embedding match with anyone specifically.
Or content that might get some likes but also triggers “Not Interested” clicks from people outside their niche.
And those negative signals outweigh the positive ones.
The algorithm has gotten terrifyingly good at predicting both outcomes.
And it’s only going to get better.
The Product Mindset
I’ve started treating every post like a product.
Who is this for? (What user embeddings should Phoenix match this against?)
What specific value does it provide them? (Why would Phoenix predict high dwell time, likes, or replies?)
Why would they want to share it? (Retweets and quote tweets are weighted 2-4x)
Why would they want to follow me after seeing this? (Follow predictions are weighted 3-5x)
And critically: Is there any segment of people who might see this and react negatively? (Because those signals are weighted 20-100x against me)
If I can’t answer those questions clearly, I don’t post it.
Stop trying to appeal to everyone.
Find your niche.
Provide genuine value.
Avoid pissing anyone off.
Let the systems - whether that’s the X algorithm or word of mouth or any other distribution channel - do the heavy lifting.
The Math That Changed Everything
Here’s the mental model that rewired my brain:
Old thinking: “I need to create content that gets engagement.”
New thinking: “I need to create content where the predicted positive signals massively outweigh the predicted negative signals.”
That’s not the same thing.
A tweet that gets 100 likes but triggers 5 “Not Interested” clicks might score worse than a tweet that gets 50 likes and zero negative reactions.
The math:
100 likes × 1 = 100
5 “Not Interested” × -20 = -100
Net score: 0
vs.
50 likes × 1 = 50
0 negative signals = 0
Net score: 50
The second tweet wins even though it got half the engagement.
This is why controversial content is so dangerous now.
In the old algorithm, controversy was a cheat code.
Engagement was engagement.
Angry clicks counted the same as happy clicks.
Not anymore.
The algorithm can tell the difference.
And it punishes controversy that generates negative reactions far more than it rewards the positive engagement that comes with it.
The game isn’t to avoid being provocative.
The game is to be provocative in a way that makes people want to agree with you and share you, not argue with you and block you.
Massive difference.
The Bigger Picture
Here’s what those 311 lines of notes really taught me.
The game has changed.
The era of posting random shit and hoping it works is over.
The algorithms are too sophisticated now.
They’re running 19 simultaneous predictions on every piece of content.
They’re matching user embeddings against author embeddings in real-time.
They’re learning your reputation and encoding it into vectors that follow you everywhere.
Most people are still playing the old game.
Posting whatever.
Hoping for luck.
Blaming the algorithm when luck doesn’t come.
Meanwhile, the people who understand how these systems work are building audiences faster than ever.
Because they’re not fighting the algorithm.
They’re working with it.
They know Thunder guarantees their content reaches followers, so they focus on building real followers who actually engage.
They know Phoenix matches embeddings, so they stay niche and build strong topic associations.
They know the transformer predicts 19 actions, so they optimize for the high-weight positives (replies, retweets, follows) while ruthlessly avoiding anything that might trigger negatives.
They know candidate isolation means they’re not competing against other posts, so they focus on matching user preferences instead of “beating” competitors.
They know their author embedding carries their reputation, so they protect it by never posting anything that might generate reports or blocks.
They’ve read the handbook.
And they’re winning because of it.
The tools are there.
The systems are documented.
X literally open-sourced parts of their algorithm.
The information isn’t hidden.
Most people just don’t want to do the work to understand it.
They want a hack.
A shortcut.
Three weird tricks to go viral.
There are no shortcuts.
But there is a system.
And once you understand the system, everything gets easier.
You stop guessing.
You start knowing.
You stop hoping the algorithm will pick you.
You start creating content the algorithm has no choice but to distribute.
That’s the difference between building in public and building an audience.
One is hoping.
The other is engineering.
I know which one I’m doing.





Brilliant. If Thunder is strictly for followers, how does the initial discovery of *new* accounts happne within the Candidate Pipeline stage?