Skip to content
Black Friday: clips from $2.49 · 65% off OnlyFans for new subs → Ends Dec 1
Sly Panorama
Menu

X published its algorithm. The code says you need two accounts, not one.

X open-sourced its For You ranking, so I read it. Explicit posts get no cold reach, so the account that grows you and the one that sells can't be the same.

Sly Panorama

Creator-life notes

Updated 9 min read

X put its entire For You ranking system on GitHub — the actual code, not a blog-post summary — and I went and read the parts that decide who gets seen. I read it from the operator's seat, not for the engagement-weight trivia everyone's reposting this week. I read it for one question: what does this mean for those of us who post adult content? The answer was blunt enough that I'm rebuilding how I use the platform around it.

Straight with you up front, because I'd rather be honest than sound like a guru: I haven't flipped this switch yet. Right now I run X the way most of us do, on one account, and reading the code is what convinced me that's a mistake. So this isn't a victory lap over a system I've already nailed — it's the playbook I'm moving to next, written down while the code is still fresh, because the logic is strong enough that I'd rather hand it to you now than sit on it for six months to collect my own screenshots. One account cannot do the two jobs your business needs it to do. Here's what the code shows, and the setup it argues for.

What the code actually does to adult posts

Update, October 26, 2026: part of the rulebook I describe below as unpublished is now in X's code, including account-level NSFW labels (the thresholds still aren't) and the default engagement weights. I've updated the sections below to match, and the current version lives in my X playbook for adult creators. What changed is in what changed in X's algorithm in October 2026.

Discovery on X comes in two flavors. There's reach to people who already follow you (in-network), and reach to people who don't — the cold "For You" discovery that does most of the work of growing an account (out-of-network). The published code runs those two through two different safety checks: a lenient one for in-network, a stricter one for the recommendations that get pushed to strangers. That much is right there in the source.

Now the honest caveat, because it matters and nobody hyping this release mentions it: X open-sourced the machine, not the whole rulebook. The code shows the machinery — two safety tiers, and the switch that drops a post when it comes back with a "remove" verdict — but the actual list of which labels trip that switch lives in a piece X didn't publish. So I'm not going to tell you a single line of code says "adult equals banished." What I'll tell you is that the architecture is purpose-built to keep sensitive material out of strangers' feeds, the stricter gate is the one your cold reach has to clear, and the result creators in this lane commonly report is the same: an explicit post gets next to no cold discovery. The machine and the lived result point the same direction.

There's a second mechanism in there that's easy to misread. Every post gets a brand-safety verdict, and anything tagged sensitive — plus anything the system hasn't positively cleared — lands in the not-brand-safe bucket. In the published code that verdict mainly governs where ads are allowed to sit, not your organic reach directly. But two things follow from it anyway. "I just won't label it" is no loophole, because unreviewed content defaults into the same bucket as labeled content. And an account the platform reads as adult is an account it has every reason to keep walling off. That's a structural setup — which is the useful news, because a structural problem has a structural fix, and no caption rewrite has ever been it.

Why this means two accounts, not a better caption

I've written before that you're not one job, you're four — and the same split runs right through your accounts. The account that carries the adult label is the account that converts. It's where the explicit work lives and where buyers go. But the second it wears that label, the algorithm stops handing it to strangers. So if your one-and-only account is your adult account, your discovery is capped at whoever already found you. You're filling a bucket with the tap welded shut.

The fix isn't to make the adult account behave better. It can't — the label is the label. The fix is to put a second account in front of it whose only job is to get discovered: clean enough that X never gets a reason to label it, interesting enough that strangers follow it, and pointed at the account that sells. Discovery on one, conversion on the other. That's architecture, and architecture beats caption tricks every time the two of them fight.

1. Start the discovery account clean — and keep it that way

Fresh account, clean from post one. Never enroll it in the adult-content-creator program. Never flip the sensitive-media setting on. Nothing even borderline in the avatar or the banner, because those get read at the account level and can flag the whole thing in one move. The entire value of this account is that X is never handed a reason to label it. Turn on one sensitivity toggle and you haven't got a discovery account anymore — you've got a second conversion account that can't convert.

2. Make the bio a pointer, not a clickable adult link

The bio can absolutely reference the other account — that's the whole job — but it does it as a text pointer or a clean gateway, never a live adult link, no aggregator that lands on explicit, no paysite name spelled out. A clickable adult link is itself a label, and you just spent a clean account to plant one.

Swipe these and make them sound like you:

  • "The clean half of what I do. The rest of me's over at @your-main."
  • "This is the SFW side. Everything else I make lives at @your-main."

3. Pin one bridge post and let it do the pointing

One pinned post points for you so your live feed doesn't have to. The rule here is point, don't embed: do not quote-tweet or embed an actual post from your adult account. That account carries a sensitivity flag at the user level, so the quoted card renders behind a content screen for most people and the clickthrough quietly dies on the vine. A plain @mention survives. An embedded card doesn't.

Swipe this:

"New here? This is my keep-it-clean account — the day-to-day, the opinions, the stuff that doesn't need a warning label slapped on it. The rest of what I make is at @your-main. Go say hi over there."

4. The product on this account is you, not skin

For the first couple of weeks, load it with personality. Funny, opinionated, lifestyle, the soft-thirst stuff that's carried by words and confidence instead of by taking clothes off. Two filters before anything posts:

  • The read-it-aloud test. If the caption wouldn't survive being read out loud in a normal room, it belongs on the other account.
  • The gray-zone rule. Lingerie, towel shots, implied-nude framing — all of that lives on the adult account, full stop. Not because it's too racy for the internet, but because repeated sensitivity flags are exactly what trips account-level labeling, and an account flagged at that level is the whole game lost.

This is also where the engagement code happens to reward you. The ranker scores a post by adding up a stack of separate signals, each with its own weight. When I first wrote this, the weights weren't in the released code. Now the defaults are: a copy-link share scores 20, a reply or a quote 5, a follow 4, a repost 1 and a like 0.66, while a profile click scores nothing. (Production values can differ from the defaults, so treat them as the shape, not gospel.)

The part that matters most is quotes. In the published code, one filter drops out-of-network reposts and replies but not quotes, so a quote can carry you to a new audience, because it's the quoter's own post. Personality posts people want to add to are doing double duty: they read as clean, and they invite exactly that. I went through what changed since this post in what changed in X's algorithm in October 2026.

5. Ration the cross-promo like it costs you, because it does

Recommendation engines like this one run on association — they learn what's like what from who engages with whom. Straight about my evidence here: the published code shows the personalization machinery, not a line that says "this clean account got tied to that adult one." But association is the whole logic these systems are built on, and quote-tweeting your two accounts at each other or replying back and forth is exactly the kind of co-engagement that teaches the machine they belong in the same cluster. The downside is real and the upside is tiny, so I ration the active stuff hard:

  • Quote or repost of your adult account: once or twice a month, tops. Never is genuinely fine.
  • Soft text reference in a normal post: about once a week.
  • All cross-references combined: keep it under roughly one post in twenty.

Swipe the soft reference:

"For the new folks: this is the tame one. The other half's at @your-main. That's the last I'll say about it here."

One nuance worth holding onto: the standing bio mention and the pinned post are far gentler than active engagement, because they don't feed the who-engages-with-whom graph the same way a live quote-tweet does. They earn their permanent placement by being passive. It's the feed behavior — the back-and-forth — you ration hardest.

6. Build the bridge X never sees

The strongest bridge between the two accounts is the one that doesn't live on X at all. If your entire path from stranger to buyer runs through two handles, you're one suspension away from zero — and I've watched enough good creators lose an account overnight to treat that as a when, not an if. I keep saying it: the move that survives is the one X can't delete.

For me that layer is my own site — somewhere I control, that ranks on its own, that routes people onward on my terms instead of the platform's. That's why I run it instead of leaning on a Linktree. The clean account's bio points to an SFW landing you own; the landing is what captures the fan and sends them on. The handle pointer is the part everyone sees. The thing you own is the actual asset.

The layer under that is a list — email or DMs — the capture that survives even if both accounts die tomorrow. I haven't built that yet, and that's a deliberate later step rather than an afterthought — but the logic holds: own the relationship off the graph and no algorithm update can take it from you. The whole funnel, start to finish, is just this one idea — get discovered somewhere rented, convert somewhere owned.

7. Protect the pattern, not just the post

Account-level labeling comes from patterns, not a single slip. So the standing habits matter more than any one post:

  • Run the read-it-aloud test on everything, not just the posts you're unsure about.
  • Keep links out of the body of a post — first reply or bio only. A link in the body is widely read as a reach-killer; that one's not in the published ranking code, so call it lore that everyone's numbers agree on rather than gospel — but the fix costs you nothing, so just put the link in the first reply.
  • Stay comfortably inside "clean" instead of flirting with the line to see what you can get away with. The line is where the flags come from.
  • Be there right after you post. Since September 30 the code's defaults give a fresh original from an account with 50,000 followers or fewer a boost, but only while it's 2 hours old or less with under 200 views, and it favors the posts whose first viewers liked them most. Those first two hours are when early likes count most, so I'd post when I can be around.

That's the whole setup, and you can stand it up in an afternoon — which is what I'm planning to do. The order is the thing that trips people up. People pour weeks of content into a single account and wonder why strangers never show up, when the account was walled off from strangers the entire time. Architecture first. Then content. The machine X published points hard in that direction — and it's sitting right there on GitHub if you want to read it yourself, which is exactly what I'd tell you to do. I'll report back once I've run it on my own accounts; for now, the code is the receipt.

— Sly

Ends December 1

Black Friday deals

Shop clips on ManyVids Get 65% off on OnlyFans On another platform? All my links All the deals