Two Feeds, Not One Algorithm
An opinion piece.
I don't use social media hoping one algorithm finally "gets me." I use it as a set of rooms I can arrange. X.com and Facebook.com are the best platforms for that because they let me build those rooms at scale. Other apps guess what I'll watch next. These two let me separate people from topics, news from family, discovery from loyalty, and a bad political week from the rest of my attention.
The oracle frame says the goal is a machine that understands me. The house frame says the goal is a set of rooms I control. I'll never get a god that knows me, but I can build a home with doors. Most of what follows is an argument for the house — and for the two platforms that currently let me build the most doors.
Before I make that argument, I have to name the cost of admission. The rooms are free. The ability to use them well is not. Customization is a practice — a set of skills, habits, and small labors — and practices are unevenly distributed. A single parent working two jobs doesn't have an hour to build Lists. A teenager on a free tier doesn't know that "Why am I seeing this?" is a lever. Someone with executive-function challenges may find the weeding insurmountable. I'm writing this as someone who has the time, the inclination, and the years of accumulated fluency to treat a feed as a thing to arrange. That fluency is not a universal possession. It's a privilege, and it's the privilege on which everything else in this essay depends. I'll return to it. I don't want it to be a footnote.
When I say "rooms," I mean bounded surfaces with different social contracts. A filter shows a subset of the same content under the same rules. A room changes the rules: who's allowed in, what counts as a good contribution, how long an idea lasts, whether strangers are welcome, whether the pace is a live argument or a slow thread. The difference between muting a keyword and building a room is the difference between subtraction and architecture. Most platforms sell architecture as a promise and deliver subtraction as a feature. They say they'll "curate my experience," which means they remove things I didn't ask them to remove, keep things I didn't ask them to keep, and blur the boundary so I can't tell which is which. That's not a room. That's a hallway with the lights on a motion sensor.
The distinction that organizes everything
Every feed product is now called "personalized," and the word has become useless because it collapses two opposite relationships.
In the first, a model studies my behavior and adjusts what it shows me. I do nothing except behave. My clicks, pauses, scroll velocity, and failure to swipe away become the inputs. I am a data source. The system personalizes me. Call this personalization.
In the second, I take explicit actions that reconfigure the system's structure: follow, unfollow, build a List, join a Group, pin a tab, mute a topic, say "less of this," reorder my home screen. My behavior matters too, but the primary input is my stated intent, not my observed reflexes. Call this customization.
These aren't two points on a spectrum. They're different kinds of control. In personalization, control is inferred and held by the platform. In customization, control is declared and held by me. The platform is still the machine. The question is who sets the dials.
The distinction that matters most is between structural control and parametric control. Parametric control is a dial: more of this, less of that, mute this word, boost this person. Every platform offers some version of it. Structural control is the ability to change the shape of the surface itself: to add a tab, build a List, join a Group, pin a feed beside another feed, decide that this screen has a different job than that screen. Parametric control adjusts the output of a ranker. Structural control changes what the ranker is even for.
Most platforms give you parametric control and call it customization. A "show less" button is a dial. A List is a room. The reason the binary matters isn't that real systems don't blend the two — of course they do; Following is customized in membership and personalized in order, and every Group has a ranking function inside it. The reason it matters is that below a certain threshold of structural control, the tool stops being usable for the job I need it to do. If I can only adjust parameters inside one surface, I can't separate the jobs I need separated. I can only bend the river. I can't build a second channel.
Almost every "which app has the best algorithm" conversation is actually a personalization conversation — a comparison of inference quality. I can win that comparison and still lose what I care about, because a system that infers brilliantly can also refuse to let me specify anything directly. A mind-reading concierge with no front desk still decides who gets in.
Personalization is a service; customization is a tool. A service anticipates my need so I don't have to. A tool waits for me to decide. Services are often delightful. Tools are often boring and sometimes exactly right in a way the service never would be, because the tool reflects information the service doesn't have — that I'm not in the mood, that it's a work day, that I've already read three takes on the same story and want the primary source, that I love this person's judgment but not their hobby. The deepest reason I need tools is that my needs are inconsistent over time in ways no model can predict, because the inconsistency is mine to declare, not theirs to discover.
Customization is a workflow, not a hidden setting
The decisive moment isn't a toggle buried in Settings. It's repeated, slightly boring labor. Mute this. Pin that. Favorite three people. Leave a Group that went feral. Snooze a topic during a week I can't afford it. Open Following instead of For You because I have twenty minutes and no desire to be educated by strangers.
That labor is the custom feed. X and Facebook reward it. Newer apps punish it by resetting me to one recommendation surface every time I reopen them.
Customization isn't a state you purchase; it's a practice you keep. A home screen with pinned tabs decays. Lists rot. Groups go quiet or feral. Topics that mattered in March bore me by June. A custom feed is a garden, and gardens need weeding. The platforms that win at customization are the ones where weeding is cheap and the weeds are visible.
The weeding cost is the real metric. If muting a topic takes four taps and a modal, I won't do it, and the feed drifts away from me within a week. If it takes one tap and the screen immediately shows the consequence, I'll do it reflexively. Customization quality isn't "how many settings exist." It's how many settings exist at the point of friction. A control you have to go find is worth a fraction of a control sitting next to the thing it fixes.
But here is the part I want to sit with rather than skate past: the labor is the customization. There is no version of this where the rooms build themselves. The features are free, but the fluency — knowing which lever does what, knowing that a List is different from a topic tab, knowing that "Why am I seeing this?" is an invitation to act rather than a curiosity — is accumulated, not granted. And accumulation takes time, attention, and a certain tolerance for fiddling that not everyone has or wants.
That means the practice I'm describing is, in practice, available first to people who already have the bandwidth to learn it. The essay you're reading is a description of a skill. Skills are unevenly distributed. I can't pretend otherwise without lying to you about what I'm recommending.
What follows from that isn't "so don't customize." It's "so notice who gets to." And it's "so demand that the platforms make the fluency cheaper." Not the features — the features exist. The legibility. Onboarding that teaches the difference between Following and For You. "Why am I seeing this?" surfaced as a standard part of the interface rather than a menu item a power user discovers in year three. A first-List-building experience that feels like a natural extension of following rather than a hack for people who read tech journalism. None of that costs money. All of it costs incentive alignment, because the platforms have no interest in teaching you to leave the surface where the engagement lives. That's the gap I'll keep returning to.
The fluency arc
Customization has a learning curve, and the curve has stages. The stages matter because they're where the privilege gap actually lives.
Stage one: I didn't know I could do this. The feed is weather. It happens to you. You scroll, you react, you close the app. You have never once thought of the surface as something you could change the shape of. Most users live here permanently, and it's not because they're lazy. It's because nobody told them the house had doors.
Stage two: I know, but it takes four taps and I don't bother. You've heard of Lists. You've seen the mute button. But the friction is higher than the payoff, so you don't act. The lever exists and you don't pull it. This is where the platform's design choices do their quiet work: a control that costs four taps is a control that costs nothing to provide and everything to use.
Stage three: it's one tap and I do it reflexively. The mute button sits next to the post. "Show less" is one gesture. You act without thinking, because the cost has dropped below the threshold of deliberation. This is where customization becomes a habit rather than a decision.
Stage four: I build Lists for fun. You maintain a roster of twelve people on biotech. You pin a Markets tab and reorder it. You treat the home screen as a dashboard you tune rather than a feed you receive. This is where I live, and I want to be honest that it took years to get here and that nothing about the platforms taught me — I learned from other power users, from tech journalism, from my own curiosity.
The gap that matters isn't between stage three and stage four. It's between stage one and stage two. Getting from "I didn't know" to "I know but it's annoying" is the hardest transition, because it requires a teacher. The platforms have no incentive to be that teacher, and the users who would benefit most have the least time to seek one out.
I taught a friend to use Lists once. It took twenty minutes. She'd been on the platform for eight years and had never heard of them. The feature was free the whole time. The gap wasn't access. It was that nobody had ever told her the feed was a thing she could arrange rather than a thing that happened to her. Twenty minutes, eight years, one conversation. That's the whole privilege gap in miniature.
The platform's incentive to keep you in stage one
Why don't the platforms teach? They could. Onboarding that walks a new user through Following, Lists, and "Why am I seeing this?" would cost almost nothing. They don't, and the reason is structural.
The platforms benefit from users who customize lightly — enough to generate signal, not enough to leave the engagement surface. The ideal user is someone who mutes a word occasionally and never builds a List. That user produces behavioral data, stays in the river, and remains monetizable. A user who lives in Lists and Following tabs is a user who is harder to advertise to, because they're spending their session in surfaces they built rather than surfaces the platform optimized.
So the platforms have a structural reason to keep fluency low. Not a conspiracy — an incentive. The base experience is the product. The customization layer is a concession that exists because power users demanded it and because it produces useful data. But the platforms have no interest in making the customization layer the default experience, because the default experience is where the engagement, the ad inventory, and the session time live.
This is the sharpest version of the harm-reduction problem. Individual customization genuinely reduces what the platforms extract from me. But it doesn't reduce what they extract from the world, and it doesn't change the fact that they'd prefer most users never learn to do it. I can hold the lever and still notice that the machine would rather I didn't know it was there.
Why scale still beats a cleaner app
I like smaller networks. I don't build my information life on them. Customization without inventory is interior decorating.
The objection runs like this: smaller, calmer networks are nicer — less harassment, less engagement-bait, better norms, saner incentives. Why build a customized life on two of the most extractive, chaotic, ad-saturated platforms in existence just because they're big?
Because a custom feed isn't a place. It's a current. Its value is proportional to the number and freshness of relevant posts flowing into it. A well-designed room with nobody in it is worse than a chaotic room with the right people, because the thing I came for — the live, argumentative, current state of a subject — only exists where the crowd is. I can tolerate chaos. I can't tolerate an empty room, because chaos is a property of the content and emptiness is a property of the architecture. One I can filter. The other I can't fix.
The scale argument needs a second move, though, because scale alone proves too much. TikTok has more scale than either X or Facebook, and its personalization is so good that for many users it functions as a customized feed. If scale were the whole argument, TikTok would win. It doesn't, because the question isn't "which platform has the best default experience most of the time." It's "which platform gives me recourse when the default is wrong."
Here's where I want to resolve something I left muddy in an earlier version. I've called customization "insurance, not everyday use," but I've also described it as daily labor. Those can't both be primary. The honest answer is that customization starts as insurance and becomes a default as fluency accumulates.
The first List is a rescue operation. You build it because the river failed you — you missed something you needed, or you got flooded by something you didn't want, and you finally did the work. That's insurance. The tenth List is a habit. You build it because building Lists is what you do now, and the home screen is a thing you tune the way you tune a playlist. That's a default.
The arc matters because it's where the privilege gap compounds. If customization grows from insurance into default, then the people who never get the first exposure never get the default either. The gap isn't a one-time cost. It's a compounding advantage. A user who learned to build Lists in year two has eight years of accumulated fluency by year ten. A user who never learned has eight years of accumulated drift. Same platform, same features, same price. Different lives.
Customization is insurance in the sense that matters most: not the thing I use every day, but the thing that's there when I need it, and whose absence I only notice when I need it most. But it's also a practice that, once learned, reshapes what "every day" looks like. The river is fine until it isn't. The house is where you go when the river fails, and eventually it's where you live.
I want to separate four scale questions, because people conflate them and then argue past each other:
-
Volume — are there enough posts in this category to fill a feed right now?
-
Velocity — do those posts arrive fast enough that a feed opened at 9 a.m. differs from the same feed at 9 p.m.?
-
Identity persistence — do accounts last long enough that "following" someone still means something in two years, or do they churn until a follow is a dead slot?
-
Community durability — can a group sustain a shared space, or do they scatter because the platform has no room to hold them?
X wins 1 and 2 on public conversation: the live public record is its native territory. Facebook wins 3 and 4 on private and semi-private life: the social graph is durable and Groups are rooms with floors. Neither wins all four. That asymmetry is why I run both.
The two graphs I actually need
Every feed company talks about interests. Fewer run a dense social graph and a dense interest graph at the same time.
-
The interest graph maps me to subjects, creators, and topics. Edges are "cares about." It's learned largely from behavior and can be built even with no friends on the platform.
-
The social graph maps me to people I actually know. Edges are "has a relationship with." It's imported from contact lists, built from mutual follows, or inherited from a prior network, and it's hard to fake because it encodes real-world ties.
Most platforms run one well. Pure interest-graph apps are great at subjects and terrible at people. Pure social-graph apps are great at people and terrible at discovery outside your circle. Running both densely is rare, because the two graphs want different ranking philosophies. Interest ranking rewards novelty, surprise, broad appeal. Social ranking rewards intimacy, recency of interaction, narrow relevance. A single ranker that tries to optimize both tends to optimize the louder one — historically interest, because watch time and ad inventory scale with novelty.
X's center of gravity is the interest graph with a public identity layer. I can follow someone for what they post about, not only for who they were in 2009. That makes topic customization native. A stranger can enter my customized world because they're good on a subject. That's what a public interest graph buys: the ability to customize around merit rather than acquaintance. The cost is that merit-based feeds reward the performance of expertise, not expertise. The articulate stranger who sounds like an expert often outcompetes the quiet expert who's actually right.
Facebook's center of gravity is the social graph with communities bolted on — "bolted on" as description, not sneer. The interest layer lives mostly in particular surfaces (Groups, Reels, Recommendations) rather than rewiring the main Feed. But the irreplaceable asset is that the system knows which faces belong to my actual life. A customized Facebook feed can privilege the people I can't afford to miss without making them compete against every pundit on earth.
I keep both because I need both graphs, and because they fail in opposite directions. A social-graph-only feed fails toward insularity — it shows me what people like me already believe, and over time becomes a hall of mirrors. A pure interest-graph feed fails toward unanchoredness — it shows me the most engaging version of everything, with no tether to people who can tell me I'm wrong from a position of relationship.
That opposition is not just a metaphor. It's the mechanism by which each graph corrects the other. Interest graphs fail by optimizing for engagement, which converges on outrage, novelty, and the most performative version of every subject. Social graphs fail by optimizing for familiarity, which converges on insularity, repetition, and the assumption that everyone I know agrees with me. The only correction for the first is people who know me well enough to puncture my grandiosity. The only correction for the second is strangers who can puncture my bubble. Neither graph contains its own antidote. Each contains the other's.
Which means the real requirement isn't "run both graphs on one platform." It's "run both graphs somewhere in your life." A person could in principle get their interest graph on Reddit and their social graph on WhatsApp and achieve the same self-correction. The reason I run both on X and Facebook is that each platform already has enough of the other graph to make the tension productive on a single surface — X has a social layer, Facebook has interest surfaces — and the switching cost between them is low enough that I actually do switch. Tethering without exposure is a bubble. Exposure without tethering is a casino. What I want is the tension between the two, and I want it cheap enough to maintain that I maintain it.
X.com: Following, Lists, and a model that reads the post
X is still a public square that never fully committed to becoming television. That helps. A customized feed is easier to build when the native unit is a post in a live conversation, not only a clip optimized for completion rate. X has absolutely pushed video and chased engagement, but its native primitive remains the text post in a reply-slash-quote ecosystem, and that shapes everything. Text is cheap to produce, cheap to skim, easy to quote, easy to argue with, easy to label by topic. Video is expensive to produce, hard to skim, hard to quote precisely, hard to label except by sensory inference. A customization architecture is far easier to build on the first primitive.
The first customization feature is the split between For You and Following. Following is the feed of accounts I chose. For You mixes those with recommended posts, using signals like who I follow, Topics I follow, what I engage with, and what my network likes.
Following is the least glamorous feature here and possibly the most important. It's the only surface where I'm not ranked against the global competition for attention. It's closer to an inbox than a feed. That's why platforms quietly demote it: an inbox doesn't produce the same session length as a slot machine. When I open Following, I'm doing a bounded task — "what did the people I chose post?" — and I can finish. Finishing is bad for engagement. So Following gets starved, renamed, tucked into a swipe, or "enhanced" with recommended posts until it's a discovery feed wearing a chronological costume. Every time a platform degrades Following, it's silently converting a tool back into a service.
Lists are the handmade version of the same idea. A List is a feed I built out of accounts: reporters, founders, one city's civic accounts, a small roster that posts signal instead of residue. Lists require work, which is why they still matter. An AI topic tab can find posts about biotech. It can't decide I only want these twelve people on biotech.
Two points on Lists. First, a List is a judgment artifact, not a filter. Building "these twelve people on biotech" encodes a belief — that these twelve, taken together, give me a better view than any model's notion of the biotech topic. The belief may be wrong, but it's mine, and it's revisable in thirty seconds by swapping one person out. A model's topic feed can't be corrected except by the model changing. Second, Lists age honestly. A model's topic feed hides its seams, so you can't see it degrading. A List ages in plain sight: one person stopped posting, another drifted off-topic, a third got noisy. Visible decay is fixable decay. Customization that is legible is customization that survives.
The feature that changed the argument for me is AI-labeled topic feeds — timelines I can pin beside For You and Following, across Business & Finance, Sports, Technology, Politics, Science, Movies & TV, Food, Gaming, and finer niches. This isn't a hashtag column. The model reads posts, assigns topic labels, then personalizes the ranking with the same engagement patterns that shape the rest of the app. I pin several and reorder them. The home tab stops being one compromised average of every appetite I have.
Bluesky and Threads had custom feeds earlier. X arrived late. Late can be an advantage when the latecomer has a larger live corpus and an AI stack on top of it. A custom feed has two halves: the inventory (the corpus of posts) and the index (the system that files each post into a category). Bluesky built excellent custom feeds on a smaller corpus, which is a real achievement — its user-built feed architecture is a first-class design decision. But its doors open onto smaller rooms. X built its custom feeds on top of an inventory it already had — years of public specialist conversation — using a model that reads posts rather than trusting tags. For breaking news, live sports, market chatter, and niche fandom in public text, I believe X's inventory is denser. For polite long-form and lower-harassment discourse, it may not be. That's the trade, stated honestly.
Older Twitter customization was account-centric, and that model breaks predictably. People are inconsistent. A great policy account also posts restaurant photos and intra-elite feuds. Account-following assumes people are topics, so I take the noise to get the signal. A model that reads the post changes the unit of customization from who to what, while keeping who available in Following and Lists. Post-based customization lets me have the policy analyst's policy posts without the restaurant photos, and surface useful policy posts from people I don't follow. The model performs the unbundling account-following couldn't. That's a genuine advance if the model labels well — and the whole failure mode is that it labels confidently but wrong.
The failure modes change with it. Hashtag feeds fail by being dumb and gameable: posts miss the feed because they lacked the right string, or flood it because spammers appended it. The failure is opaque and adversarial, and the exploit is a coordinate anyone can use. Semantic feeds fail by being confidently wrong — filing a joke as news, flattening factions into one bucket called Politics. But that failure is correctable. When the model mislabels, I can often see that it mislabeled, and I can act: hide, snooze, switch tabs, engage the correct posts to shift the ranking. I'd rather argue with a semantic feed than babysit a hashtag feed, because the choice is between a feed that fails randomly and un-fixably and one that fails in ways I can fix.
Topic tabs also change the neighborhood in which a post competes. Ranking is relative, so changing the pool changes the winner. A decent markets post loses to a punchy joke in a general feed and wins its neighborhood in a markets tab. Same post, same model, different room. Filtering understates what a topic tab does — it re-ranks by re-contextualizing.
The ability to temporarily down-rank a topic is, in some ways, the more adult feature. Most feeds model stable preferences: you like politics, so here's politics. But my relationship to politics is spiky and context-dependent. A stable-preference model keeps serving me the thing I explicitly, temporarily don't want, and reads my eventual disgusted disengagement as a signal about the topic rather than the timing. Saying "less of this for now, without permanently telling you I've changed" treats me as someone with moods and deadlines rather than a fixed preference bundle.
X's ranking direction matters even when I distrust the company. The system has moved toward predicting a spread of actions — replies, reposts, dwell, hides, blocks — and X has published more of that machinery than most consumer platforms ever will. Transparency here isn't virtue; it's part of customization. Functional transparency is about operability: can I form an accurate mental model so I can steer? If I know replies and dwell are heavily weighted, I know that saying something steers more than liking something. If I know hides and blocks are negative signals, I know a well-placed "not interested" does real work. I can disapprove of a company and still benefit from reading its machine.
The catches are real. The richest custom-timeline tools have been gated to Premium and rolled out unevenly by device. Ads show up inside topic streams. The official topic catalog is broad rather than infinitely user-authored. But no other huge public conversation platform currently lets me keep Following, build Lists, pin AI-labeled topic tabs, and temporarily down-rank a subject in the main algorithmic view. That combination is why X is the best public customized-feed system I have.
Facebook.com: people, Groups, and a feed that admits its reasons
Facebook is easy to sneer at. The interface has been through a decade of clutter. The brand carries family arguments, Marketplace haggling, and a reputation for having peaked. None of that changes the feed-engineering fact: Facebook still has one of the densest everyday social graphs at global scale, and it still lets that graph organize information in ways cooler apps abandoned.
The richness isn't just size. It's density and duration. Facebook ties together people who know each other offline, across long spans, with stable identities, and it carries the mundane texture — births, deaths, moves, jobs, the kid's soccer schedule — that no interest graph captures because it isn't interesting in any algorithmic sense. It's just true and shared. That kind of graph is extremely hard to rebuild, because it isn't a feature; it's an accumulation. A new app can clone a feature overnight. It can't clone fifteen years of "here's who knows whom."
A customized Facebook feed begins with relationship. The main Feed ranks posts by predicted value using who posted, how I've interacted with them, the format, and how my friends engaged. That sounds generic until I compare it with networks that barely know my siblings from a creator I tapped once. Facebook's bet — sometimes smothered by video recommendations, never fully abandoned — is that "people I actually know" is a customization axis. That bet is still correct.
Taste is social. The personalization discourse treats taste as a subject vector: you like cooking, hiking, Formula 1, so here's content in those subjects. But much of what I enjoy is socially indexed. I don't want to see "a photo of a child" — I want my nephew. I don't want "a mountain" — I want the mountain my friend just climbed, described by her. The object is identical; the value is in the relationship. Subject-based ranking can't tell the difference, because "child" and "mountain" are the same feature vector either way. Social ranking can, because the edge to the person is the feature. That's why a purely topical ranker, however brilliant, always feels slightly wrong about my private life.
Groups are the feature I refuse to undercount. A custom feed control is a rule the platform lets me write. A Group is a rule the members enforce together. That's a fundamentally different mechanism. When I set "Show less politics" on X, I've written a private rule. When a Group's moderators decide "no self-promotion," they've written a collective rule that affects everyone in the room, and enforcement is ongoing and social. The result is a surface with norms, and norms are a kind of ranking no model replicates, because a model predicts engagement while a norm predicts appropriateness.
Appropriateness is often what I actually want. On parenting, or a neighborhood's safety, or a trade's practical questions, the "most engaging" post is frequently the worst post — a scare story, a dramatic anecdote, a rage-bait. What I want is the most useful and norm-appropriate post, and the only reliable producer of that is a room of people with shared context and lightly enforced rules. Recommendation systems are trained on engagement, a proxy for interest, which scales with broad appeal. But utility is often the opposite of broad appeal. "Which plumber did you use and did they show up on time" is useless to the world and priceless to a neighborhood. A system optimizing for broad appeal systematically undervalues exactly the content a small community needs. Only a bounded membership makes low-broad-appeal, high-local-utility content the most valuable thing on screen.
Facebook also stopped pretending it has one feed. The main Feed is still the connected graph. Feed Recommendations pull unconnected Pages and Groups. Reels run on discovery logic closer to watch behavior than to my friend list. A platform that uses the same model to rank a cousin's baby photos and a stranger's cooking clip will ruin both, because the two items are ranked well by opposite criteria. The baby photo is valuable because of the relationship; a cold ranker will bury it under the cooking clip, which is valuable because of engagement. No single ranker serves both. The only solution is different rooms with different rankers.
Then there are the steering tools that make Facebook more legible than its reputation. Favorites and See First are blunt and effective: they tell the ranker which people and Pages are not optional. Unfollow-without-unfriend is social realism, and it's genuinely good design, because in real life relationships and attention are decoupled. I'm still friends with my cousin; I don't need to see every meme he posts. Without the decoupling, my only options are to keep seeing everything or to sever the tie — a cruel choice between attention and affection. "Unfollow without unfriend" preserves both.
"Why am I seeing this post?" is the feature I wish every platform copied. It explains, in ordinary language, that I'm looking at something because of interaction history, format habits, or popularity among people I follow — and it puts shortcuts next to the explanation. An explanation isn't a confession; it's a handle. The value of "you're seeing this because you interact with this Page" isn't that it reveals a secret. It's that it hands me a lever-shaped piece of information: now I know that unfollowing the Page will change things. The explanation converts a mysterious outcome into an actionable cause. That's the whole game of customization — turn a black box into a box I can reach into.
Meta has also been explicit, on paper, that Reels ranking should move beyond raw implicit engagement and toward stated preference. That project is incomplete and self-serving — a company that wants session time will dress surveillance as alignment. But a system that asks what I want and updates is at least in principle steerable by my explicit input, whereas a system that only measures my failure to leave is steerable only by my reflexes. I'd rather be asked than inferred-from. Even a cynical ask is a handle. I'm not asking platforms to be good; I'm asking them to be grippable.
The main Feed then becomes a merger layer: friends, family, a few Pages, spillover from Groups, and whatever Recommendations the company wants to sell. That merger can be ugly. My move isn't to demand it become perfect. It's to keep Favorites and Groups strong enough that the merger can't erase them. I can't control the merger, so I fortify the rooms it draws from. The custom feed doesn't have to be pure; it has to be mine at the margins. That's a lower bar than perfection and a much more achievable one.
Facebook's failures mirror X's. The company keeps flirting with a video-first home that would make the app a worse TikTok. Recommended units can crowd friends. The Feed can still reward engagement bait. I don't need Facebook to be charming. I need it to keep the social graph, Groups, Favorites, and explicit feedback intact. As long as those exist, it's the best relational customized-feed system available to me.
The switching-cost test
A practical test: how expensive is it to change the job of the app for ten minutes?
Every platform has a dominant mode — the mode its business model rewards — and the switching-cost test measures how hard the platform makes it to leave that mode. A low switching cost means the platform accepts the app has many jobs. A high switching cost means the platform is trying to hold the session in its most monetizable mode and treats other modes as on-ramps back to it.
So the test isn't really about my convenience. It's a diagnostic of intent. I can read a platform's true priorities off the switching cost, regardless of its marketing.
On X, cheap. Following, For You, a pinned topic, a List — the cost is a swipe. On Facebook, mostly cheap. Feed, a Group, Reels if I allow it, search when I want to override the model. On TikTok, expensive. The product wants the job to remain "watch." I can search, follow, tap Not Interested. I can't inhabit a stable, named, side-by-side set of feeds corresponding to roles in my day. On Instagram, medium-expensive. Following exists, Close Friends exists, but the pull toward Reels keeps collapsing modes together.
Visible modes create habits. Habits create a customized life rather than a customized session. Customization has a cost — the labor of weeding — and labor is only sustainable if it's habitual, and habits form only around visible, repeatable, low-friction triggers. A tab is a trigger. A buried menu isn't. A "customized session" is what you get when you do the labor once and never again. A "customized life" is what you get when the trigger is always there and the labor compounds. The difference between the two is a tab.
But the tab has to be seen as a tab. And seeing it as a tab is a skill. This is where the switching-cost test meets the fluency arc I described earlier. The test measures the platform's friction. It doesn't measure the user's fluency. A platform can have a low switching cost and a user can still never switch, because the user doesn't know the switch exists. That's the gap the platforms have no incentive to close, and it's the gap that determines who gets to live in the house and who keeps floating the river.
Why the usual alternatives lose
TikTok goes first because it's the strongest objection. Its interest model is extraordinary at discovering that I'll watch a certain kind of face talking in a certain kind of kitchen. That's personalization at gunpoint. I don't get durable people-columns, serious group infrastructure, or a pinned topic newspaper. Negative feedback exists, but the product wants one hypnotic river. TikTok is a beautiful obstacle: an obstacle is something between me and a goal, and a beautiful obstacle is one whose friction I mistake for delight. TikTok's single stream is beautiful because it's perfectly tuned; I never feel blocked because there's never visible resistance. And that's the problem. Customization requires visible structure, and TikTok is so smooth that structure disappears. I can't arrange a river; I can only float it. The very perfection of the stream forecloses customization.
Instagram is taste with a weaker public square. It's excellent at aesthetic clustering and creator follow graphs, and worse at topic isolation, civic conversation, and "show me this subject as a feed I can pin and leave." Stories and Reels keep yanking it toward performance. It's a place to look, not a place to arrange — it lacks the long-lived room you can pin and return to as an information surface.
Threads and Bluesky made custom feeds a first-class object earlier than X. The right criticism isn't "Bluesky is worse." It's that Bluesky's custom feeds solve a different problem. They're excellent at the protocol layer — composable, user-authored, letting communities build surfaces no central team would. But my problem isn't "I want to author my own feed logic." It's "I want enough fresh relevant posts to fill the feeds I author." You can build a perfect custom feed on a corpus too thin for your subjects, and it stays a beautiful empty room. The constraint isn't design; it's inventory.
YouTube is the best long-form topic engine I know and still not a social feed in this sense. Subscriptions plus recommend is a powerful pair, but it doesn't give me a home screen of people, groups, and live conversation tabs. LinkedIn customizes a profession and almost nothing else.
Two more, to make the survey honest. Discord is a genuinely strong room system — servers, channels, roles, memberships with real norms — arguably better at the community primitive than Facebook's Groups. But it has almost no discovery and no cross-community public conversation. It's all rooms, no square, so it fails the interest-graph half entirely. Reddit is the closest structural rival and deserves more than a sentence: topic rooms, membership, moderation, ranking that differs by room. Its weakness for my purposes is that it's organized almost entirely around interest, with a thin, pseudonymous social layer. It's the mirror image of Facebook — all interest graph, little durable social graph. It has rooms but not people-columns.
I should concede the obvious here: Bluesky and Reddit both have first-class custom feeds, and X's topic-pinning has been Premium-first. The uniqueness claim isn't that no one else has custom feeds. It's that no one else has custom feeds on top of an inventory dense enough to fill them for the subjects I care about, alongside a durable social layer. That's the combination the inventory argument covers, and it's why the alternatives don't beat the thesis even though several of them have better feed-authoring tools.
Naming Reddit sharpens the thesis. Every major alternative gives me one graph. Facebook gives me social; Reddit and TikTok give me interest; Discord gives me community-without-discovery; Bluesky gives me protocol-without-density; YouTube gives me long-form-topic-without-social. X is the closest to a public interest graph with a social layer. Facebook is the closest to a dense social graph with community rooms. None of the alternatives run both graphs at scale. That's the gap, and it's why I keep landing on the same two.
How this looks on my home screens
On X, Following is the default when I'm responsible. Custom timelines catch the subjects I don't want mixed into friendship: technology, one sport, markets, occasionally film. Lists sit behind those for people whose judgment I trust more than a topic model. I snooze politics when For You starts performing outrage as a genre. I mute freely. I treat block as a ranking instruction, not a moral event — because framing it that way lowers the emotional cost. I don't have to have a justification or a verdict. I can simply decide a node doesn't belong in my customized graph and remove it. That's not a moral judgment about the person; it's a boundary about my attention. The result isn't a pure information diet. It's a set of labeled rooms. I can walk into Sports without walking into a press conference about everything else.
On Facebook, Favorites hold the people whose posts I'd be sorry to miss. A handful of Groups function as the real feed: one local, one professional, a couple of hobby rooms that still have human texture. I open Reels only when I'm willing to be advertised to by my own curiosity. I use Show less the way I use mute on X. When the Feed drifts, I tap "Why am I seeing this" and decide whether the reason is acceptable. "You interact with this person" is a good reason. "A page you forgot is going viral among weak ties" is a reason to unfollow.
I'm not hunting for one perfect algorithm. That fantasy is how I'd end up angry at every platform. If the goal is a perfect algorithm, every miss is a betrayal — the machine was supposed to know me and it didn't. That stance guarantees a lifetime of grievance, because no model predicts a person perfectly. But if the goal is a dashboard I build, misses are just maintenance: the tab drifted, the List rotted, the Group went feral. Maintenance is something I do, not something I resent. The customization frame converts anger into chores, and chores into a better feed.
Creators and the split brief
If I get more doors, creators lose the fantasy of one audience. That's not a reason to oppose customized feeds. It's a reason to stop thinking as if there's a single algorithm to beat.
A world of doors is good for me and hard for creators, because creators used to optimize for one ranker and now must optimize for many. On X, a post may need to survive as a reply-worthy object in For You, a relevant object inside a topic timeline, and a trusted object in someone's List. Those are different tests. A quote-tweet that detonates in For You may be too performative for a Markets tab. A dry primary-source post may never move For You and still be perfect for a List of reporters. On Facebook, a post may need to live as a conversation among friends, a useful item in a Group, or a Reel that travels beyond the graph. The Group version can be homely and win. The Reel version usually can't.
It's worth being honest that "optimize for one ranker" was always partly a myth. A YouTuber already makes a thumbnail for browse, a hook for suggested, a title for search, and a Short for the Shorts feed. A TikToker already optimizes for the FYP, for sounds, for trends, for duets. The single-pipe era was real for text-based platforms, but it was never as monolithic as the nostalgia suggests. What's new is that the multiple briefs are now visible to the user — I can see the Markets tab and the For You tab side by side and understand that they reward different things. The split isn't new. The visibility is.
That visibility has winners and losers. The clearest winners are niche creators who were never going to win a global engagement competition but can win a room. A markets analyst with 4,000 followers who posts dry, primary-source threads may never trend in For You and can still become essential inside a Markets tab or a List of finance people. A local journalist who can't compete with national outlets in the main Feed can become the most valuable voice in a neighborhood Group. A hobbyist with deep, narrow expertise can build a List following that would be invisible to any general ranker. Customization rewards specificity in a way that one-rank-fits-all never did.
The losers are creators who built careers on a single register — usually the performative, engagement-optimized one — and now find that register is wrong for most rooms. A quote-tweet that detonates in For You may be too performative for a Markets tab. A thread that wins a general feed may be too shallow for a List of specialists. The skill that mattered — reading one pipe — stops transferring. That's genuinely painful, and it's not just "grief over a lost monopoly." It's economic precarity for people who invested years in a shape that's changing.
I want to be careful here, because it's easy to romanticize the old single-pipe world as a lost golden age. It wasn't. Most creators were precarious then too. The single pipe was a lottery, not a career. But a lottery has one thing going for it: you only have to learn one game. A world of doors requires learning many games at once, and the people who can afford to learn many games at once are, again, the people with bandwidth. The split brief isn't just a creative challenge. It's a filter that rewards the already-fluent. The economic point is sharper than any aesthetic one: what's being selected for isn't a better creative register, it's the capacity to afford learning several registers at once.
People who hate the split often benefited from one opaque distribution pipe. The anger at algorithm changes is often voiced as "the algorithm is broken," which is partly true — but it's also partly the grief of a lost monopoly on a single audience. When there's one pipe, you learn its shape and can win consistently. When there are many, no one shape wins everywhere. That's a real loss for people who mastered the old shape. It's also a real gain for people who were never going to master it. And it's a new filter that favors people who can afford to learn the new shapes. All three things are true at once.
The objections that don't move me
X and Facebook are engagement machines. Yes. So is every successful feed. Customization is my counterweight, not proof that either company became a public library. I prefer the machines that hand me levers.
Isn't "I'll just customize harder" a coping mechanism that lets platforms off the hook? To some extent, yes, and I'll own that. My position doesn't claim X and Facebook are good. It claims that given they are what they are, they offer the most control, and control is what I value. That's a deliberate lowering of expectations that buys me something real: it lets me operate. Refusing to engage until the platforms become virtuous leaves me with no tool at all. I'd rather hold a lever attached to a machine that wants my attention than hold nothing and call it purity.
This is harm reduction, not resistance. I'm not claiming that building Lists and muting topics reduces the total amount of attention X and Facebook extract from the world. I'm claiming it reduces what they extract from me, and that it does so by shifting my time from the engagement-optimized surfaces to the ones I structured. That's a real, if partial, mitigation. It's the same logic as driving less rather than not driving. It doesn't fix the problem. It changes my relationship to it.
But I want to be honest about the limits of this frame in a way I wasn't at the start of this essay. Individual levers can coexist with platforms repricing those levers. Harm reduction at the individual level can coexist with harm production at the systemic level. If enough users become skilled customizers, the platforms may simply adjust — making customization harder, paywalling it further, or designing around it. The control I celebrate is being "repriced as a premium feature" already. A harm-reduction strategy that depends on the harmer's continued cooperation is fragile. I can hold the lever and still notice that the lever is attached to a machine that would prefer I didn't use it, and that the machine has more power over the lever's future than I do. That's the uncomfortable truth, and it doesn't resolve. It just sits there, next to the practice, as a condition of using it.
The best tools are increasingly paywalled. X's topic-pinning has been Premium-first. Meta is bundling customization and AI features into subscription tiers. That's ugly, and it's fair to say plainly: they're monetizing control. Control used to be a subsidy — platforms gave it away because it increased engagement. Now it's being repriced as a premium feature, which reveals the base experience is meant to be maximal inference and the "arrange your own rooms" experience is meant to cost money. But this doesn't refute the thesis; it confirms it. A rational monopoly only paywalls things people want. The price is an argument for the product's worth, even as it's an argument against the company's generosity.
And the accessibility problem isn't just about money. It's about fluency. A single parent working two jobs doesn't have an hour to build Lists. A teenager on a free tier doesn't get the topic tabs. Someone with executive-function challenges may find the labor of weeding insurmountable. For those users, personalization isn't a trap — it's a lifeline. The river is better than nothing. My argument assumes the capacity to use the lever, and that capacity isn't evenly distributed. The right response isn't to pretend otherwise; it's to demand that platforms make customization cheaper and more legible, because a tool that only the comfortable can use isn't a tool. It's a perk. The wish list at the end of this piece is partly a wish that the tool becomes a tool for more people.
Custom feeds can become bunkers. I'd rather live in a bunker I locked than in a mall I can't map. Chosen isolation is different from imposed isolation, and both platforms keep a discovery lane, so the bunker has a window. The risk is real. It isn't solved by returning me to one unexplained river.
TikTok "just knows." Sometimes it does. Knowing isn't the same as letting me specify the job of the screen. A model that predicts my next twelve seconds isn't a customized-feed system. It's a gifted attendant who won't give me the remote. The attendant isn't a villain; competence isn't the problem. The problem is role: an attendant decides, a remote controls. I want the remote. I can appreciate the attendant and still insist on it, because at 2 a.m. when I want the Sports tab and the attendant is sure I want a cooking clip, only the remote helps me.
Ads poison the metaphor. Custom timelines on X introduced more inventory; Facebook has always sold proximity to attention. Ads degrade custom feeds. They don't define them. The practical response is to lean harder on Following, Lists, Groups, and Favorites, where commercial interruption happens inside a structure I chose.
Grok and Meta's models are biased. Of course. Every ranking function encodes a theory of value. The comparison isn't biased versus neutral. It's biased and switchable versus biased and sealed. If bias is unavoidable, the only lever I have is switchability. A sealed biased machine is one I can only leave or endure. A switchable biased machine is one I can argue with, reweight, and route around. Customization isn't a lifestyle preference; it's the only realistic response to the fact that ranking is never neutral. I'm not choosing X and Facebook because they're impartial — they aren't — but because they're steerable, and steerability is the only honest thing to want from a machine that must judge.
Failures I accept
X can make topic tabs addictive in the way For You is addictive, just with better labels. A Sports tab that's "for me" inside sports can still be junk sports — customization narrows the scope, not the standard. The only fix for standard is a List of trusted people (manual quality) or a Group with norms (social quality), which is why I run both on top of the topic tabs. Premium gating means the best dashboard isn't equally available. Ads in the second slot of a tab I built to escape slop are a betrayal of the newspaper-section idea. The labeling model will smuggle worldview into categories that pretend to be neutral. Public conversation can be smarter than Facebook and also crueler.
Facebook can drown the social graph in short video until Favorites feel like a protest setting. Groups can become spam factories. Recommendations can launder stranger content into a space that used to mean "people I know" — and that's worse than an annoyance, because it's a semantic corruption. The Feed meant relationship. Injecting Recommendations dilutes the meaning of the surface; the word "Feed" used to carry a promise, and Recommendations break it silently. You notice only in retrospect, when you realize you've been looking at strangers in a room you thought was family. Family graph plus weak moderation is its own nightmare.
I accept those failures because the alternatives fail differently and, for my purposes, worse. I can mitigate X with Following, Lists, and snooze. I can mitigate Facebook with Favorites, Group discipline, and refusing to live in Reels. I can't mitigate a single-river app except by leaving it.
Best doesn't mean good. Best means most controllable at scale.
I can hold both thoughts at once: these companies extract too much attention and data, and among available consumer products they still offer the strongest customization stack. I'm not loyal to logos. I'm loyal to the dashboard. If a smaller network reaches X's public density or Facebook's relational density without the same extractive model, I'll change this opinion. That's the falsifiability clause, and it matters because a position that can't be wrong is just a mood. It also tells you what to watch: not a nicer interface — many exist — but density plus a better model of extraction.
What I still want
On X: custom timelines I can describe in natural language, not only choose from a fixed catalog. Following kept privileged rather than quietly starved. Snooze durations and topic weights as first-class features, not Easter eggs. Ads out of the second slot in a tab I built on purpose. And onboarding that teaches a new user what Following is for, what a List is for, why "Show less" does real work — because a lever that only the already-fluent can find isn't a lever. It's a class distinction. Customization tools available on the free tier matters too, but legibility matters more, because the tools are already free and most people don't know they exist.
On Facebook: a default home that remains a feed of people and communities, not a full-screen video product. The ability to pin Groups the way X lets me pin topics. "Why am I seeing this?" kept specific and usable. Show less that remembers my judgment longer than a mood. Customization tools that don't assume I have an hour a week to garden — and an onboarding that treats "arrange your feed" as a normal thing to do, not a power-user hobby.
Those wishes assume the current architectures are worth improving. That's the tell. I don't have an equivalent list for apps that never built the rooms. The strongest evidence for a thesis is often what you want to improve, not what you've proved. You don't write renovation plans for buildings you don't live in.
Conclusion
X.com is the best public, topic-addressable customized-feed system I can use now that models can label posts and personalize entire timelines I pin beside Following. Facebook.com is the best relational and communal customized-feed system because Groups, Favorites, ranked relationships, and explicit feedback still map onto ordinary life.
I customize X so the public internet doesn't arrive as one argument. I customize Facebook so private life doesn't have to compete with a video factory. Other platforms can imitate a control here or a model there. They haven't put the whole kit in one place, on a corpus big enough that the kit is worth using every day.
The oracle frame says the goal is a machine that understands me. The house frame says the goal is a set of rooms I control. I'll never get a god that knows me, but I can build a home with doors. And the deepest comfort isn't more content; it's the reversible boundary — being fully present in one room and fully absent from another, on my schedule, without justifying it to anyone. That's not a feature list. It's a way of living with machines that are smarter than me and hungrier than me, and it works because I stopped asking them to be wise and started asking them to be arrangeable.
But the house has a door I didn't build, and that door is the one I want to end on. The ability to arrange the rooms is not a universal possession. It's a skill, a habit, a fluency — and fluency is distributed the way everything else is, along lines of time, money, attention, and training. The fluency arc has four stages, and most people never leave the first. Getting from "I didn't know" to "I know but it's annoying" is the hardest transition, because it requires a teacher. The platforms have no incentive to be that teacher, because a user who lives in Lists is a user who's harder to monetize. That's not a conspiracy. It's an incentive, and it's the quiet engine underneath everything I've described. The house is real. The doors are real. Not everyone has been handed the key, and the platforms have no incentive to hand it out. That's not a reason to stop building. It's a reason to keep asking who gets to.
- Two_Feeds
- Not_One_Algorithm
- personalization
- customization
- structural_control
- parametric_control
- social_media
- algorithms
- X.com
- Facebook.com
- feed_design
- interest_graph
- social_graph
- Lists
- Following_tab
- For_You
- Ομάδες
- Favorites
- See_First
- custom_feeds
- topic_tabs
- engagement
- attention
- platform_design
- tech_criticism
- digital_literacy
- fluency_gap
- privilege
- harm_reduction
- switching_cost
- recommendation_systems
- TikTok
- Bluesky
- Νήματα
- Discord
- YouTube
- creators
- audience
- algorithm_bias
- transparency
- monetization
- premium_features
- ad_inventory
- community_norms
- moderation
- filter_bubble
- insularity
- unanchoredness
- social_contracts
- online_rooms
- dashboard
- oracle_frame
- house_frame
- opinion_piece
- media_criticism
- platform_incentives