This is the third piece in a sequence. The first asked whether Sloan had flagged anyone else — it had. The second documented what I found out — Sloan is a person I know. This one is about what happened after.
I want to be precise about what I'm describing, because I can't prove what I think happened.
Here's what I can document.
The Sequence
I published two essays in June. Both generated real technical discussion — one had a five-exchange comment thread that became a production open-source repo. The founder of DEV.to liked one before it was flagged. Both got flagged by Sloan the same day.
I wrote about it. Two articles, 72 combined comments. The conversation prompted Francis to publish his own post opening the floor to community questions about moderation. Jess Lee and Ben Halpern both commented there — Jess saying DEV would be updating moderation guidelines soon, Ben calling it a big priority. Neither answered the specific question xulingfeng asked: how many Sloan warnings trigger account-level flagging, and do authors get notified when it happens?
While the Sloan articles were live, I published a sponsored piece on AI code review. It had full disclosure from the start. Sloan flagged it the same day anyway — the third flag on my account in one week.
Then I built something from it — Proof of Human, a reverse Turing Test submitted to the June Solstice Game Jam. In the first hour, people played it, dropped their scores in the comments, had real exchanges. Francis played it. Sylwia found a bug with gibberish inputs. The thread got 27 comments.
Then it stopped.
Not tapered. Stopped. The kind of stop where you go check the challenge submissions page and can't find your article. I messaged Jess. Her reply: "I'm confirming that I see your submission on my end :)"
I still don't know if it's in the judging pool.
The LLM Visibility Article
This one predates the Sloan series.
I published a piece on open source LLM visibility tracking before any of the flagging happened. Real tool, real finding, 0% citation score on one of my own domains. Named specific tools, specific costs, specific data from a Tom Capper webinar at SEJ. The AI disclosure was in it from the start. It was gaining traction.
Then the Sloan message arrived anyway. I deleted it.
After the two Sloan articles, I republished it. Same article, same content, same quality. It got neither the engagement it had been building the first time nor the outside traffic my work usually pulls when DEV.to doesn't surface it.
I'm not attributing that entirely to suppression. The article is more niche than my usual work and republished articles rarely perform like originals. But the gap between the first run and the second run is real. The first version was building. The second version went nowhere.
That's the before-and-after I can actually document: same article, two runs, one deleted after a moderation message, the other published after two articles about that moderation message. The variable that changed between the two runs is visible.
The Qodo Article
One day after the second Sloan article, I published a sponsored piece on AI code review — a real experiment, real bugs found, a Stripe webhook handler that Claude Code generated and Qodo reviewed. The disclosure was in the article from the start. The sponsorship was disclosed at the bottom.
Sloan flagged it the same day it published.
Francis resolved it the same day. But that's the third flag on my account, in the same week the Sloan articles were live. The article that had the clearest, most complete disclosure of any piece I've published here still got flagged — because the flag apparently doesn't read the article. It fires, then a human decides.
The flag landing on an article that had full disclosure from the start is the data point. Not the comment count — sponsored posts perform differently and that's a confounding variable. But a third flag in one week, on an article that did everything the policy asks, says something about how the flag mechanism works. It fires first. Disclosure is checked after.
What xulingfeng Documented
This isn't just me.
In the comments on my second Sloan article, xulingfeng ran a clean experiment: published identical content twice, once with AI disclosure and once without. Both versions got suppressed. Not the same — disappeared from feed, not showing in search, visible only to followers via direct link.
Francis confirmed that three Sloan warnings trigger account-level flagging. xulingfeng had three warnings. Francis unflagged the account after the thread.
Jess Lee also commented in that thread — on Francis's follow-up post — saying there are hundreds of mods with the ability to send Sloan messages. Francis had said in my thread he was essentially the only active one. Those two statements don't fully square. Which means the warning count on any given account could be coming from multiple people, and nobody's tracking it as a running total an author can see.
I had two warnings.
I don't know if two warnings triggered anything. I don't know if there's a threshold below three. I don't know if the Sloan articles themselves triggered something separate from the warning count. No one has told me. The guidelines don't say.
What I'm Not Saying
I'm not saying DEV.to is suppressing me deliberately. I'm not saying Francis made a bad call. He flagged what he thought needed flagging and said so publicly.
I'm not saying the algorithm is broken. I'm saying I can't read it, and when I try to read it from the outside, the pattern I see doesn't match the engagement signal.
27 comments and active game play in the first hour. Invisible in the challenge submissions list. Not surfaced.
An article with real first-hour traction that then flatlined in a way none of my previous work has.
That could be noise. That could be how the algorithm works now and I'm reading meaning into variance. I've been on this platform long enough to know that happens.
But I also know that xulingfeng documented the same pattern in the same week with direct evidence. And I know that Francis confirmed account-level flagging exists, has a threshold, and isn't communicated to authors when it triggers.
The Question I Actually Have
Not "was I suppressed" — I can't prove that.
Not "was the flagging fair" — I added the disclaimers, the policy is reasonable, I don't have a fight to pick there.
The question is simpler: if there's an account-level flag that affects distribution, should authors be told when it's active?
xulingfeng wasn't told. She documented the suppression herself through experimentation. xulingfeng had to run a controlled experiment to figure out why her articles disappeared. That's the answer to "should authors be told."
I might have the same flag on my account right now. I don't know. The challenge submission might be invisible to judges. I don't know.
I should be able to know.
One more instance, smaller but the same pattern: a tag moderator removed the #beginners tag from an earlier article because it was too advanced for the tag. I found out not through a notification but through a comment he left on a different article entirely — the first Sloan thread. Same pattern: distribution affected, author not told directly, discovered accidentally through a comment on a separate post.
One more data point, for context: a freeCodeCamp tutorial built on the same thinking, the same writing process, the same AI assistance in the workflow — published the same week. The freeCodeCamp editor's response: zero fixes needed. Same ideas. Same process. One platform flagged it. The other published it without a single editorial change. That's not a contradiction to resolve. It's just where we are.
This article was written with AI assistance for research and editing. All arguments, examples, and opinions are my own.
Top comments (29)
Hey @dannwaneri, I'm on the DEV team and deal with the challenge submissions directly. I just double checked and can confirm your Game Jam submission was in the pool we sent to the judges.
Thank you for checking and confirming directly . That's the answer I needed. Good to know it was in the pool...
@francistrdev @xulingfeng @jess @ben — third piece in the sequence. Documents what happened after the Sloan articles: the LLM visibility article deleted after the first flag, the Qodo article flagged despite full disclosure from the start, the Game Jam submission invisible in the submissions list after first-hour engagement. Can't prove suppression. Can document the pattern.
The closing question is for @jess and @ben specifically: if there's an account-level flag that affects distribution, should authors be told when it's active? @xulingfeng had to run a controlled experiment to find out. That's the thing worth answering.
@fm @sylwia-lask @bumbulik0 — you were all part of the earlier threads. This is where the story landed.
Seems like you are flagged, maybe @francistrdev can you check it?
I can confirm you were not flagged (at least on my end). Thanks for the reminder.
This happens to my article on "A Developer using AI, What could possibly go wrong" and it didn't appear on the tag "latest" list. After that post, everything went back to normal. To be fair, I would assume it was a bug due to the Rails upgrade I believe, but can't confirm.
Appreciate you checking and being direct about it. The Rails upgrade explanation for the submissions list is the first concrete alternative I've heard and if it happened to your article too, that's a bug worth DEV.to acknowledging publicly so authors know it's not them....
The broader pattern I documented - the engagement drop across multiple article types in the same two-week window still doesn't have an explanation. But ruling out account-level flagging on your end is useful data. That narrows it.
The question about notification still stands though. Whether it's a flag or a bug, authors finding out through a comment thread or not at all is the gap worth fixing...
Can you clarify on which articles specifically, so I can take a look at it? Thanks!
Sure. The articles where I noticed the pattern:
LLM visibility article (first run) — published before the Sloan articles, was gaining traction, deleted after the first Sloan flag. Republished June 23 as The LLM Visibility Tools Cost $79/Month. Mine is Open Source — underperformed compared to the first run.
Qodo article — Claude Code Wrote the PR. Here's What the Code Review Actually Caught — published June 17, flagged by Sloan the same day despite having full AI disclosure from the start.
Proof of Human — Proof of Human: I Built a Reverse Turing Test After Getting Flagged as AI — June Solstice Game Jam submission. First-hour engagement from tags, then flatlined. Wasn't visible in the challenge submissions list when I checked.
The submissions list issue you mentioned with the Rails upgrade might explain number 3. Numbers 1 and 2 are the ones I'm less sure about.
For the first one, it was an error on my end. I did mention the issue was resolve but was marked as low quality. The Flow I have is if the article needs a disclaimer, I send a Sloan message and mark as low quality. If the issue is resolved, the "low quality" is reversed. For some reason, it is still there even though I remember marking it off (I might be wrong, but then again that is usually how I do things). I went and unmarked it. My apologies!
For the second one, nothing on my end. No flag, no mark of low quality, etc.
Third one is what we went through. Not sure about that one.
Let me know and hope this helps! The first one was definitely my fault on that part and apologies for the confusion.
Appreciate you digging into this and being straight about it. The "low quality" mark not clearing when the issue resolved is exactly the kind of gap the piece was pointing at not bad intent just a process that doesn't close the loop back to the author. Now I know. That's all I needed.
The second and third articles still don't have a clean explanation but ruling out your end on those is useful. I'll watch whether the LLM visibility article picks up now that the mark is cleared.
Thanks Francis...🙏🏿
Appreciate it! Do let me know if anything else! Good work so far!
Given I still had the context in my foundry, I ran it through with the question of why people feel like they're shadow banned, here's the response: Forem determines post (article) visibility through a combination of publishing states, subforem scoping, spam filters, and—most importantly—score-based feed gating.
When users complain about "shadow banning" or their submissions to community challenges not showing up, it is usually caused by the platform's reputation gating or feed score thresholds.
Here is how Forem determines article visibility:
home_feed_minimum_score: Only articles with a score equal to or greater than this threshold appear on the home/discover feeds.
tag_feed_minimum_score: Applies a similar threshold to tag landing pages.
Why New Users Feel "Shadow Banned":
An article's score is computed dynamically inside the model (Article#update_score):
Established User Boost: If a creator is "established" (user reputation score > 100), their articles automatically receive a baseline boost (established_user_adjustment usually equal to the minimum feed score). Their posts show up in feeds immediately.
New User "Cold Start": Brand new users (reputation <= 100) receive no baseline boost. When they publish a post:
The post starts with a score of 0 (no reactions yet).
If the Forem instance has home_feed_minimum_score or tag_feed_minimum_score set above 0 (which most large communities do to prevent spam), the new user's post is filtered out of all feeds by default.
The post remains invisible in standard feeds until it receives engagement (likes/hearts) via direct links, or is manually featured/approved by a moderator.
To see these submissions, users must explicitly toggle the feed sort option from "Relevant/Hot" to "Latest", which bypasses the score gate and lists articles chronologically.
Published State: The record must have published: true and a published_at timestamp in the past. Scheduled posts are hidden until their release.
Subforem Routing: Forem scopes posts to specific subforems. If a user publishes an article under a specific subforem (e.g., a community challenge subforem), it is restricted to that subforem's feeds and won't appear on the root community index.
Articles::HandleSpamWorker: Runs automatically on new posts. If it detects copy-pasted blocks or blocklisted links, it applies an automod_label (e.g., clear_and_obvious_spam or likely_spam), which subtracts up to 10 points from the article score.
Vomits & Downvotes: Negative reactions on the user's profile subtract points directly from the user's reputation, dragging down the starting score of all their future posts.
SEO Shadow-banning: If a user's total reputation drops below 0, Forem automatically adds a tag to their profile page and articles, removing them from external search engine results.
Hope it helps identify what the root cause is. Might be worth looking into the OP's Reputation score in the db to see what's up there?
@xulingfeng I think this probably explains it for you too. New accounts = 0 trust score. Which in turn means that you get 0 visibility, unless the entire platform is starved for content. Now that you're established and unflagged, your content gets higher visibility, because you're not sitting at a Rep score of 0 anymore?
For Daniel, this is an interesting case. Someone whose been around for over a year, posts regularly, interacts regularly, I cant see why anyone would downvote someone? So definitely have a look at @dannwaneri 's rep score in the db. His should be through the roof, if it isnt (or maybe an overflow issue), it might be a bug. Otherwise it could be flagging high-engagement as spam incorrectly and lowering score due to that? Regardless of reason though, there's only 1 culprit and that is the rep score and @ben please have a look if you can. An active community member posting regularly and active in comment section shouldnt be dealing with this kind of issue. I'll dig a bit deeper and see if I cant find what could be causing it, but as I dont have db access, I cant validate the single source of truth: Are there any account flags and is their rep score inconsistent with what it should be.
Thanks in advance @ben for keeping this amazing platform up and running, while the job is never done, we're all enjoying the journey!
Appreciate you running the numbers. The 0→100 crawl explains a lot of those early months — nice to know there's actual logic behind the silence, not just bad luck.
There's actually a considerable amount behind it, I've also started digging into Sloan and how that plays a part. Apparently, when Sloan flags a post/account/comment, it immediately tanks your rep (artificially, not directly in db). Until a mod physically reviews it and rectifies it, it's worse than being flagged by a mod. So if anyone has any open flags yet reviewed, the result is a far worse penalty than it would be even if the mod flags the account. Think of it as Sloan setting your Rep to -1 until a mod decides how severe it was (precautionary, so if it's actually offensive, that it doesnt sour the community). Essentially shadow-banning you and all your content until it's cleared up by a human mod, with no cooldown period, so if mods are swamped dealing with the review process, it could be weeks till you get any traction again (which you saw, the second a mod removed your flag)
This is the most concrete explanation of what might be happening. The established user baseline boost degrading through reputation hits explains the pattern better than anything else in this thread . it's not article-level suppression, it's profile-level score affecting every article published after.
The question this raises: is there anywhere authors can see their own reputation score? If a negative reaction on your profile affects all future articles, that's information authors should have access to. Right now the only way to detect it is to notice that your articles stopped performing and reverse-engineer the cause through a comment thread.
@francistrdev is there a way to check reputation score from the mod side? That would answer whether this is what happened here.
The Sloan-to-rep-score pipeline is the piece that ties everything together. An unreviewed flag sets rep to -1 artificially, all content gets penalised until a mod clears it, and the author has no visibility into any of this while it's happening. Francis confirmed today that the LLM visibility article had a "low quality" mark that wasn't cleared when the disclaimer issue was resolved. That mark was sitting there across every article I published in the two weeks after — the Qodo piece, Proof of Human, the republished LLM visibility article. All of them publishing into a suppressed rep score with no notification.
That's not a moderation failure. That's a system design gap. The unreviewed flag state needs a timeout or an author notification. Right now it defaults to indefinite shadow suppression until someone manually fixes it.
@ben this is the specific thing worth looking at in the db.🙏🏿
No, moderators cannot see a user's actual computed reputation score in the Forem Admin Panel. It is treated primarily as an internal database metric (users.score).
Here is what is visible and editable to moderators in the admin interface:
User Status Role (Visible): Mods can see the user's status classification (e.g. Good standing, Trusted, Limited, Warned, Suspended, Spam).
Reputation Modifier (Editable): Forem allows admins to change a user's reputation_modifier (usually in a range from 0 to 5) to adjust how much weight their votes or posts carry, but it doesn't show the resulting total computed reputation score.
Max Score (Visible/Editable): If a max_score cap is applied to a user's account to limit how high their posts can score, the cap value is displayed (e.g., Max: 50), but the user's baseline reputation score is still hidden.
So moderators are operating blind on the metric that matters most. They can adjust a modifier and set a cap but can't see the actual computed score their actions are affecting. Francis couldn't have known the "low quality" mark was holding my rep at -1 . The dashboard doesn't show it. He cleared what he could see. The thing he couldn't see kept doing damage.
That's the system design gap in concrete terms: the metric that controls feed visibility is hidden from the people responsible for moderating content. The only person who can see it is whoever has direct db access.
@ben —
users.scorefor@dannwaneri. That's the specific thing worth checking. If it's inconsistent with a year of regular posting and active comment engagement, something upstream set it wrong and never corrected it.@ben If you notice it's wrong, please let me know and I'll look into patching it and creating a read-only addition to the Admin panel, so Mods can see what's actually happening to an account.
Please and thank you.
Appreciate the mention, Dann! Just a quick update from my end — after Francis unflagged my account, everything's been running normally. The articles I've published since then have been showing up in feeds, getting organic reach, no more unexplained suppression.
So the fix did work. The question you're raising is still valid though — how many people are walking around with active flags and no idea? That's the part worth fixing.
Solid third piece.
I would recommend reaching out to me since I have been mostly active and have been using moderation to the fullest and fair extent. It IS possible that someone out there are flagging accounts without warning, but as @jess mention, I am the most active currently on the platform and it is a good idea to reach out to me on the "Ask a DEV Mod" post about the issue just in case if it was me. If not, I usually direct them to contact the actual team to investigate.
Thanks for everything you do, Francis. You've genuinely been the most active and fastest-responding mod we've seen around here. Appreciate you keeping the door open — people know where to find you if something's up.
I appreciate it! also thanks for the comment you left on my recent post on thinking I am behind on things. I will get around to respond to everyone on there when I can. Feel free to @ me whenever you need me in an appropriate manner!
Excellent follow-up. I especially appreciate how you treat this like an engineering investigation: you document the sequence, identify confounding variables, compare repeated outcomes, and avoid claiming causation where the evidence only supports correlation.
From a systems perspective, this is fundamentally an observability problem. If multiple moderation warnings can produce an account-level state that changes feed, search, or challenge visibility, authors should be able to see when that state is active, what triggered it, and how it can be reviewed. Silent distribution changes make legitimate moderation indistinguishable from ranking variance or platform failure.
The controlled experiment described by xulingfeng makes the transparency gap even harder to dismiss. Moderation can be imperfect, but invisible moderation state leaves authors unable to debug, appeal, or even understand what is happening.
"Observability problem" is the right frame and it's more actionable than "suppression." Suppression implies intent.
Observability is a system property either the state is visible to authors or it isn't and right now it isn't. UnitBuilds just confirmed that moderators can't see the computed rep score either, which means neither authors nor mods have visibility into the metric that determines feed distribution.
Everyone is debugging blind. That's not a moderation policy problem . it's an instrumentation gap that makes the system untrustworthy even when the people running it are acting in good faith.
Well said—the distinction between suppression and observability is important because one assumes motive while the other identifies a concrete system property. If the computed reputation score influences feed distribution, it should be exposed through an explainability layer showing the score, contributing signals, recent changes, and the reason a post’s reach was limited. Moderators should also have access to the same diagnostic data, with appropriate privacy controls and audit logs. Without that instrumentation, support teams cannot distinguish a bug, a ranking penalty, stale data, or legitimate moderation behavior. The people operating the system may be acting entirely in good faith, but the architecture still produces an untrustworthy experience when every participant is debugging blind.
That's a feature spec not just a design principle. Score, contributing signals, recent changes, reason for reach limitation — author-facing with a moderator mirror and audit logs. If that existed, this entire thread wouldn't have needed to happen. xulingfeng wouldn't have needed to run a controlled experiment. Francis wouldn't have been operating on a dashboard that hides the metric his decisions affect. I wouldn't have spent two weeks wondering if the pattern I was seeing was real.
The instrumentation gap is fixable. What this thread has produced — UnitBuilds on the Forem internals, your spec, Francis confirming the low quality mark is actually enough to write a concrete proposal. That might be worth doing.