AO3's Filtration System

From Fanlore
Jump to navigation Jump to search
Title: AO3's Filtration system (title used here on Fanlore)
Creator: lierdumoa
Date(s): April 27 2021
Medium: Online
Topic: Filtering Tools, User Blocking, Race and Fandom
External Links: Tumblr post by lierdumoa, Archived version
Click here for related articles on Fanlore.

AO3's Filtration System is a meta essay by lierdumoa posted to Tumblr. As of November 2021, it had 4,947 notes.

A great deal of discussion occurred in the notes, in particular around the functionality or implementation of a blocking feature on AO3. The conversation continued through 2021 and into the summer.

Topics Discussed


There was a post I saw the other day. I can’t remember who’s blog I saw it on so I have no way of finding it. Basically the OP was complaining about ao3 not having a good blocking function, and someone else in the comments was laughing at the irony of being on tumblr and complaining about ao3’s filtration system.

Yes, tumblr’s filtration system is pretty shitty when it comes to curating *types of content* — AO3′s content filtering is obviously vastly superior.

But I’m pretty sure the OP was talking about blocking *people,* not content.

Tumblr is *excellent* when it comes to blocking people.

When I block someone on tumblr, they cease to exist for me. If I accidentally click on a mystery hyperlink to the blog of someone I blocked, I get a big warning asking if I’m sure I want to go there. If I click on a blog of someone who’s blocked me, the blog appears empty.

I’ve posted at length about this before, but as a POC in fandom, my biggest concern isn’t avoiding any particular genre or kink or pairing. My biggest concern is avoiding stories written by racist authors, who in most cases do not have any self-awareness of their racism, and therefore do not tag any of the racist tropes their stories are riddled with.

Author’s who, for example, write MCU fic in which Tony Stark becomes Wakanda’s white savior, or write “Alternate Universe - Human” fic where all the white characters are interns at a law firm, and all the POC characters are janitorial staff.

God, I’ll never forget this AU fic I read in Stargate: Atlantis fandom where the author made the white protagonists dog walkers and made the non-white protagonists … you guessed it … the dogs that they were walking.

That’s the kind of bullshit I want to avoid, and most effective way of filtering fic like that it is filtering the specific usernames of the authors who write it.

There are ways to do that. In fact my blog has an #AO3 hacks tag which lists 3 options.

Unfortunately implementing these require a considerably higher degree of tech savvy than the average AO3 user is comfortable with. Especially if you want to implement the same filtering across multiple browsers on multiple devices.

And while I don’t post a whole lot of fic to AO3 and this has never been an issue for me personally, I know that authors don’t have a lot of options when it comes dealing with harassment via fic comments. I think you can turn off commenting on a story, or moderate commenting, but as far as I know, there’s no way to ban specific people from leaving comments.

Each story published to AO3 is equipped with its own comment forum. AO3′s the only site I can think of that has comment forums yet doesn’t allow the moderator of the forum to ban specific users from commenting in it.

I know much of what I’m saying here is stuff I’ve said before.


I guess my point is that, AO3 is not a social media platform, but it is a media platform. And I think people assume, incorrectly, that because it has less “social” function than a social media platform, that there’s not enough user interaction to justify a block function.

But it’s actually a pretty major concern, especially if you’re a Person of Color in fandom.

Comments and Responses

The post stimulated a long conversation over the months aftewards and leading into summer 2021, with topics including:

  • The complexities of implementing a block tool that would work throughout AO3's various functionalities, such as:
    • Collections and Events
    • Bookmarks
    • Prompts
    • Kudos
    • Comments
    • Alternate accounts
    • Orphan works
  • Use of bookmarker comments and tags to provide critique or additional context to a fanwork outside of what an author may tag
  • The limitations of existing tools on AO3 for curating one's own experience
  • The length of time, effort, and funding it takes to execute a re-coding project
  • Other sites with blocking features
  • The limitations of Tumblr's block feature

Comments in support of a built-in blocking feature


BTW, for people who’ve yet again asked me why I don’t care about adding some mandatory racism warning to AO3, this is why. Robust blocking features would do far more to fix people’s actual experience, especially of the kind of hostile environment provided by the fics described above.

As lierdumoa has said many times before, we need a set it and forget it way to give people space for pleasure and relaxation. Asking them to do a bunch of work to punitively add tags to shitty content is the opposite of that even if one agrees that the content straightforwardly deserves the tag.


Added to that, I’d like a way to block tags, too …

People keep telling me that I can add stuff to the filters, but it isn’t the same when tagging is so varied and chaotic on the site. If you let people tag anyhow they want then you make it very hard for readers to find what they want.

In a specific case, let’s say you want to block trans stories (let’s not get into why, but just say that you do). You block say ‘Transgender Characters’, but then someone else has put ‘Trans Peter’ instead, and so you filter that, only to find someone else has tagged “FTM Characters” or “Trans Character” or “Trans*xual” or “Trans Content” ad infinitum.

You can add all of these to the filters, sure, but you’d have to bookmark that particular search to keep them all in place, and then you go to another fandom and have to type in every single one all over again and new fandom specific ones. Can’t remember them all? Tough. Haven’t time to type 15+ tags? Tough. Come across a new one? Tough, search from scratch.

I don’t think it’s just blocking authors, but blocking tags and content, too. Like, the OP’s example … “racism”, “racist characters”, “racial issues”, “race drama”, “white supremacists”, “KKK”, “Neo-Nazis”, etc. etc. - now, if you could block each tag as they came along (as well as authors), it would make life ten-times easier on the site. Like you can on Tumblr, yeah.

Comments on the logistics and programming of a blocking feature


There’s an interesting discussion going on in the notes between ryuutchi​ and elinimate​:

elinimate: it didn’t take them a decade. This is not an issue that’s been brought up as a major priority until pretty recently. Plus programming a block isn’t as easy as it sounds. A pure block means a blocked author doesn’t show up in any fandom or tag you browse fics for as long as you’re logged in. And everything else needs to keep working as designed.

ryuutchi: Blocking has been requested pretty much since the site’s inception. Maybe it’s closer to eight years, but I’ve been seeing “why can’t we block people” for nearly the whole of AO3’s existence

Before I say anything, a disclaimer: I volunteer with the OTW as a tag wrangler, but I am not speaking on the behalf of or for the organisation, ao3, its coders, or the tag wranglng committee.

That said:

Implementing a blocking feature takes a lot more work than even elinimate said; a user who blocks me would expect the following:

On their end:

  • not see my works
  • not see my comments on others’ works or on news posts
  • not be assigned to me during challenge matchups and not getting me assigned to them
  • not see my bookmarks
  • not seeing any of my prompts
  • not seeing any of my collection
  • not see any of the kudos I’ve left on any work

On my end:

  • not allow me to comment on any of their works
  • possibly not allow me to see any of their works
  • not be assigned to them during challenge matchups and not getting them assigned to me
  • not allowing me to see their bookmarks
  • not seeing any of their prompts
  • not allowing me to post a fill any of their prompts
  • possibly not seeing any of their collections
  • not let me see their kudos on any work
  • not allow me to kudos their work

If that doesn’t sound horrifically complicated enough, there’s also the issue of anonymous works, private works, orphaned works, and pseuds. Are blocks pseud-dependent? User dependent? Are works orphaned by a person who blocked me still invisible to me? Full orphaning (no name attached)? Orphaning with their username attached? Would we be able to see and interact with each other’s anonymous works? If no, then doesn’t it break anonymity, in a way? If yes, that could be harassment.

Add to that my concern as a tag wrangler: would I be able to see their tags in my bins so I can wrangle them? If a tag doesn’t make sense out of context, how can I check what it means by clicking on their work?

This isn’t an idle worry, by the way – I’m assuming that if I was blocked, it was likely because we were sharing a fandom space, possibly one of the fandoms I wrangle.

And that’s just me as a tag wrangler! What about a Support volunteer? A policy and Abuse volunteer? If the chairs of those committees are blocked by the user having trouble, and there’s a problem that requires their involvement – what happens then?

Basically, adding a block like what tumblr has requires touching the code of the entire infrastructure of ao3, on each and every level of the site. It takes a lot of planning and a lot of arguing and then a lot of coding. And after that? A fuckton of testing, because dependencies are a thing, and if you change one thing in how the works module works, you might end up breaking the tag wrangling module in fun and unexpected ways.

Nobody’s ever said that ao3 couldn’t use a blocking feature – on the contrary. Everybody in the otw I’ve talked to about it would love having it. The problem is that it’s a lot of work, done by volunteers in addition to their own full time jobs, schools, and families, and the plain fact is that keeping the site functioning as it does now is taking most of the volunteers’ focus. First, ao3 needs to work; then, it needs to do that core work well. Only after that can it work better.[1]

Reblog by OP

lierdumoa (reblogging with the initial commentary from doughtier):

I feel I should clarify, there are some blocking functions this post suggest that I absolutely do not think should ever be implemented on AO3 even if they could be.

I think AO3 authors should be able to ban people from commenting directly on their works. I do not think AO3 authors should ever have to be subjected to unwanted harassment, or be forced to interact directly with people they do not want to interact with.

That said,

I think readers have rights too.

I do not think that AO3 authors should ever be allowed to control reader behavior except when it involves direct interaction with authors. As a reader, I believe I am entitled to use the bookmarks feature to voice opinions of a work that the author does not necessarily want to hear, and to tag triggers and squicks, for my own benefit and for the benefit of other readers.

As a reader, I also think I should be able to write commentary in bookmarks for other readers to see, that is invisible to the author.

For example, as a POC, I believe I am entitled to warn fellow POC if a work contains untagged racist content, using the features that already exist on the archive.

I do not think AO3 authors should be able to ban fellow archive members from viewing or creating customized bookmarks of their works, or be allowed to delete bookmarks people have made of their works.

At least, not while still enjoying all the benefits of the archive provides them in terms of giving their work visibility and an audience. Of course if they choose to delete a work that is their prerogative.


I believe that people are entitled to write fanfiction and share it with fellow fans, provided they do not directly harass actors or writers with their fanfiction.

By this same logic, I believe that fanfiction readers are entitled to voice honest criticisms of fanworks, provided they do not directly harass fanfiction writers with those criticisms.

Just because I think authors should not be subjected to direct harassment does not mean I think authors should have total authoritarian control over how readers choose to discuss their work among fellow readers. As a POC I especially do not think racist fanfic authors should have the capability of suppressing the voices of POC readers with regard to their work.

. The author can of course choose to ignore the discussion readers have with each other about the author’s work. But they should not be able to stop readers from having that discussion in the first place.

Don’t like don’t read” needs to go both ways.

Authors don’t need to read bookmarks they don’t like.[2]

Additional reblog threads from doughtier

[samjohnssonvt replying to doughtier]

To add to the list (using programming names):

  • Are blocks retroactive? If Betty has been commenting on Alice’s works for the last ten years and gets blocked in 2022, what happens to the previous comments and kudos? Is the content hidden or destroyed?
  • Conversely, what happens when Alice unblocks Betty? If the content was destroyed, it’s gone. If it’s only hidden, can we guarantee it won’t leak?
  • Alice and Betty co-created a work in 2015. Alice blocks and mutes Betty in 2022.
    • Who’s listed on the work?
    • Where does the work appear?
    • Which creator can comment on the work?
  • Ibid Series
  • Ibid anything else that can have multiple creators.
  • Orphan works are truly a sticky spot, because we don’t keep any info on them. Even when you “leave your pseud on it,” that’s not your pseud - it’s a pseud of the same string of characters made on the orphan account. It’s in no way connected to the original account.
    • How do we respect orphaning anonymity and blocking? (Probably can’t.)
  • Alice blocks Betty’s works. Betty, for malice or incidence (name change due to co-worker nosiness, frex), transfers all her works to a new NotBetty account.
    • Is it possible to connect the accounts for the block but not out Betty’s new name? (Probably not - it’d have a different email, and IPs are not distinctive or identifying, and we don’t currently keep a creator chain on the works.)
  • Challenges. If I drank, this would kill my liver.
    • For a soupçon of the simple questions: Alice is the owner of a challenge, Betty’s a mod, Betty has Cindy blocked,
      • can Cindy sign up for a gift exchange?
      • Prompt meme?
      • Generic collection?
      • If yes, does that break through Betty’s block? (Hope not.)
      • If no, it becomes obvious one of the mods has Cindy blocked. (And lo, the darkening of the sky on the horizon is the incoming wankstorm.)
      • Does it matter if the blocker is an owner or mod?
    • Alice and Betty as mods are fine with Cindy, but Delilah as another participant is not, and has Cindy blocked:
      • Can Cindy sign up if Delilah’s already signed up?
      • Can Delilah sign up if Cindy already has?
      • Does Cindy get booted if Delilah signs up?
      • Does Delilah get a warning that Cindy’s signed up?
        • Does that warning trigger even when participants are still anon?
    • (For once in the lifetime of challenges, matching is easy: it won’t.)
    • Does it function differently in a small five-person exchange than it does in a large exchange like Yuletide or Kaleidoscope? (Side note: someone needs to resurrect Kaleidoscope once we have block-the-racist-assholes in place.)
    • How does blocking work in a completed exchange?
    • In an already-matched-but-not-fulfilled exchange?
    • Can a mod add a work of a person they blocked but not muted?
    • Can a mod add a bookmark of a person they blocked but not muted?
  • Alice blocks Betty. Alice creates a tag set.
    • Can Betty run a challenge using that tag set?
    • Can Cindy add Betty as a mod to a challenge using that tag set?
  • If you can decipher the direct link, can you download works as the
    • blockee?
    • Blocker?
  • Fuck caching. Just. If you know, you know. Fuck caching.
  • How against the ToS is evading a block? What about sharing that someone is blocked/muted?
  • How “silent” is the block?
    • Does it clearly let the person blocked know that someone applied the duck tape when they try to interact? (Wank.)
    • Does it throw an “error”? (More work for Support.)
  • Obligatory “when we get around to coding the (opt-in or I’m gone) PM system everyone seems to want for some wild reason” entry. Straightforward, but still.

Be advised that that is not comprehensive. That’s just off the top of my head.

I will note: Support has a staff account, and longer-term volunteers have dedicated admin accounts that will very likely be unblockable (read: I will fight people over this). None of the Support or PAC people do work on their fannish account, and many of them actually do their volunteer work under a different name than their fannish works.

It’s not that we don’t want blocking and muting. By all the gods, we do - most of us have a little of people who won’t be missed. But an actual working block/mute may possibly the most complicated thing we’ve coded on the Archive, and I troubleshoot challenge matching at least monthly.


Things I personally would find interesting:

Being able to have the block and mute list be exportable and importable.

Then you could have curated lists and we could all live in our bubles [sic].


Even if you take nothing else from this post, please, for the love of all the fanworks on ao3, take this: implementing user blocking is hard.

If you want to hide certain users’ works from showing up in both tags and their own user profile, it’s easier to make a skin and add this bit of code there:

.blurb.user-user_ID_number_here { display: none !important; }

You can find the user ID number in a user’s profile. This will hide works completely.

If you want to know that you’re blocking something and why, you can do it like this:

.blurb.user-user_ID_number_here :not(.summary) { display: none !important; } .blurb.user-user_ID_number_here .summary::after { content: "whatever reason you want to give"; }

[Screenshot of an image reading "Crimes Against CSS"]


I do the programming and this post gave me a headache.

Aside from the complexity, that list of stuff is the kind of work that would take a team probably a couple years at least to fully implement & test, and that’s after they’ve argued about how it’ll work.[3]


AO3 desperately needs:

  • This person cannot comment/leave kudos on my works
  • This person cannot reply to my comments
  • I do not see this person’s works
  • I do not see this person’s comments
Possibly all as a single package; possibly as separate functions.[4]

marithlizard (reblogging the thread ending at samjonssonvt's addition): A really interesting breakdown of (some of) the issues and difficulties involved. And we should keep in mind that no matter how well-coded and robust the future blocking system turns out to be, after all the inevitable bugs are found and patched, it will be a tool, not a cure-all.


macgyvertape (reblogging the thread ending at samjonssonvt's addition):

I do back end software development (primarily with sql databases) and something this complex would take a sizeable team of people months and months to do as a full time job. Not just the additional coding and testing because the database isn’t setup right now to handle this. But coding all these use cases, and the additional ones that would come to light during planning, then additional planning because take a look through the notes (or go on twitter), that blocking/muting can absolutely be used as a tool against people in ways beyond just block evasion.

So it’s not just the complicated coding, it’s also whomever decides a03 policy having a bunch of meeting for how the block feature works. Then having more meetings for when things come up in testing. Then doing user testing, and building info materials about how the block system works so that people aren’t wildly misinformed, because there are a lot of complicated cases here.[6]

malaloba (reblogging the thread ending at samjonssonvt's addition):

As much as I look forward to AO3 getting a block feature (and think they should’ve done more wrt moderation and blocking when they were designing user comments), this is a great example of why adding a new feature is never as simple as it seems.

You have to think through how the feature interacts with existing features and what edge cases exist and how you should handle them. Otherwise you get a feature that’s buggy or doesn’t work or worse, breaks the existing features. Someone’s gotta make a decision for each of those questions and then make sure everyone else on the team is on the same page.

Then you have to weigh the time/money/resources it will take to implement this feature against all the other features people want or bugs that need fixing or other development plans. And decide if this feature is what you want to be investing in and building right now.

people are absolutely right about the importance of a block feature and I think AO3 agrees which is why they’re promising it now. but being important doesnt make it take any less time/effort to create especially if they intend to do it well the first time[7]

runawaymarbles reblogging from lierdumoa's update:

This is discussed in the news post update about it, but when people say “blocking,” they really mean two totally different things: one is “I don’t want to see your stories” and the other is “don’t interact with me.” Those things don’t always go together (I might want to never see stories by someone who regularly writes my squicks, but I don’t mind if they comment on my work.

Not even the definition is straightforward[8]

On paying for the work to get done

beatrice-otter (reblogging the thread ending at samjonssonvt's addition):

From what I understand, once they have all of these questions figured out and have decided exactly how they want blocking (and possibly muting, if they decide to have that as an alternative to blocking) to work, they will then hire a professional full-time coder to get the coding done, because it’s a massive project and their current volunteer staff is sufficient to keep the place operating but not sufficient for daily operations + major coding overhaul.

However, as illustrated above, there are a metric shitton of decisions to be made about exactly how everything should work before they get to the coding stage, and when they do get to the coding stage, it’s a major project that will take time to implement even with a paid full-time coder doing it.

Wish they’d started on this project years ago, but they didn’t. I am glad they will be contracting out the actual coding to speed up the process (as much as it can be sped up). I like it being a volunteer project, but some things are worth paying the money to get them done sooner rather than later.[9]

ahkittycat (replying):

not to be good at coding on main but if ao3 can’t implement this, and given their site UI is already dog, they uhhhh need to like hire people with any skill at all in computing

ao3 stans will see someone be like “i wish to not be fed racist content when i search fics” and go. please let me write an essay explaining why you must be fed them

Comments about AO3 or Filtering broadly

alyssumflowers reblogging the thread from doughtier's followup

People also forget that Ao3 is still in Beta, exists on a shoestring budget, and is a completely free non profit.

You may not pay subscription or whatever for Tumblr, but you are exposed to ads. Which is how they pay for the site and their profits.

Ao3 survives off donations and volunteers

and my fucking god every single feature on Ao3 works. the amount of broken bullshit I just dealt with trying to type and reblog this fucking post, ffs[10]

wellpresseddaisy reblogging the thread from doughtier's followup: If you take away nothing else: for the moment, if you wish to block a user’s work on AO3, you must learn some CSS.

It’s what we had to do way back when if we wanted a website - we learned HTML and then CSS. The internet is still a place where you need to curate your own experience and you may have to expand your skillset to do that.

konkoa (replying)

If AO3 implements a block feature, they'd better anonymize lots of current features by default, otherwise people will be even less likely to interact with fics in ways that could get them arbitrarily blocked by other users. Leave a comment on a fic dealing with a heavy topic? Kudos a fic with a huge anti-fandom? Hell, write a fic a BNF thinks you ripped off from them? Any of these can suddenly make you lose access to a large chunk of fics, simply for engaging in fandom.

momijizukamori (reblogging the thread from doughtier's followup):

On one hand: yes, there’s a lot of factors at play. On the other: LJ had this shit locked down in the early 00s, DW has had multiple public discussions about why certain types of blocks (for ex, ‘user I blocked can’t se any of my posts’) don’t work, and most of these questions aren’t programming hurdles, they’re design hurdles. They require people to actually fucking make decisions about how things should work, which doesn’t happen in design-by-committee.

(this is also why the HTML parser is fucked and will probably remain fucked forever. Because it needs to be straight-up replaced but that requires someone to make decisions about the requirements for a replacement)[11]

Comparisons to Tumblr Filtration

jabberwockypie reblogging the thread containing doughtier's followup

OP, I block a LOT of people and I’m curious about how VASTLY your experiences blocking people on Tumblr differ from my own.

Because, if I block someone, they can’t reblog my posts if I’m the OP or send me asks. (Which is good!), BUT:

  • They can still see my posts and my blog.
  • I still see their posts on my dashboard.
  • I can reblog their posts unless they have me blocked, too. (Which is kind of an issue because this is a website where you can change your username REALLY easily.)
  • If someone messages me a link to one of their posts, I get a messages that says “This post is no longer available” instead of something more useful like “You’ve blocked the user who created this post”. (And, considering how badly Tumblr functions in other areas a lot of the time, one tends to assume a message like that is a glitch. Because sometimes it is!)
I just feel that you are, perhaps, giving Tumblr FAR more credit than they’re actually due.[12]

moonlightcrazyphoenix (replying) Ok but in what world does tumblr have a good blocking function. It constantly recs me posts made by people I've blocked because I either follow the tag or because its algorithm says it's in my circle.


Sorry but Tumblr’s block function still makes me see reblogs of a post by someone I’ve blocked, and it still allows them to view posts I’ve made if someone else reblogs them. The only site with a worse block than Tumblr is discord[13]


Not to mention that anyone on tumblr can block-evade easily and there’s literally nothing the site will ever do about it. Which is only going to become worse if the post+ shit goes through and people pay to become unblockable (which like… yikes, tumblr, who told you that would be a good idea to even have as a potential option).[14]