Let’s talk about a sexy topic (French porn) in the least sexy way imaginable (case law for European platform regulation). The Court of Justice of the European Union recently delivered a ruling in two joined cases, one about pornographic websites that did too little to keep minors out, the other about a French app called Coyote that warns drivers about upcoming police checks. Not exactly the stuff you’d expect a blog about open social networking protocols to care about. But the ruling contains a line that got people’s attention: a service that uses an algorithm to control how content gets disseminated can lose its hosting safe harbour — the legal protection that makes it possible to host user content at all without being liable for every single post.
The alarmed reading of this, which you might have already seen if you follow this space, goes something like: any platform with a recommendation algorithm just lost its safe harbour protection. That reading is not necessarily wrong, the ruling does look highly consequential for European platform regulation. But the ruling is written around a very specific idea of what a social platform is, and that turns out to matter a whole lot for networks like the fediverse and the atmosphere.
The usual disclaimers apply, perhaps even more than usual: I am very much not a lawyer. This analysis benefited a lot from an exchange with a lawyer specialised in European platform regulation, who corrected several of my early misreadings, and the remaining errors are firmly mine. Also, court rulings do not apply themselvet, and this judgment imposes nothing on anyone by itself; it is now part of a body of jurisprudence that national courts and regulators will operationalise, and every point of operationalisation is a place where the reading can get narrower or wider.
To make it all a bit more concrete, throughout this article I’ll use the following example:
Somebody posts on a large social platform that you personally run a scam. The accusation is false, but it has your name and your photo attached, and is highly inflammatory. The platform’s recommendation feed does what recommendation algorithms do best when it encounters content that makes people angry, and amplifies the defamation, so that a hundred thousand people see it, some of them your clients.
You call a lawyer, and your lawyer asks: who can we hold responsible, and for what? The obvious answer is the person who posted it, but they are pseudonymous, probably unreachable and there’s a good chance they don’t have any money. So your lawyer looks at the platform. The platform stored the post, and the platform’s own algorithm is the reason a hundred thousand people saw it instead of forty. Surely the platform is responsible for something?
For the past twenty-five years, the answer has been no, because of the principle of the hosting safe harbour. Under European law, Article 6 of the Digital Services Act, a hosting service that stores content provided by its users is not liable for that content, as long as it doesn’t know the content is illegal, and removes it once it finds out. So the platform tells your lawyer: we just store what people post, we didn’t know, and now that you’ve told us, we’ve taken it down, thanks for your notification. That is where the case ends. You can get the post removed, but you cannot get damages for the hundred thousand views.
This is not some loophole, to be clear, it is the deliberate foundation of the entire user-generated internet. Without it, every Mastodon admin would be personally liable for every post that federates onto their server, and nobody in their right mind would run one. This safe harbour hosting clause is fairly similar to the American Section 230 regulation, and it is widely understood that the internet as it currently works could not exist without these safe harbour protections.
Your lawyer has one more idea. Fine, the platform isn’t liable for this post, but can we at least demand that it makes sure this never happens again? Scan everything before it goes up, filter for defamation about my client? And here the second protection kicks in: Article 8 of the DSA says that no state and no court can impose a general obligation on these services to monitor everything they store in search of illegal material. This is the rule that killed mandatory upload filters in a series of earlier cases, where courts struck down orders that would have required providers to screen all their traffic. A court can order a platform to take down a specific post, and even to keep identical copies of it down, but it cannot order the platform to surveil everything.
The important detail for this article is that these two protections for digital platforms come as a package. The no-monitoring rule is not a general right for any digital service. It protects providers when they are providing hosting services, which means that if a service stops counting as a hosting service, it does not just become liable for content, it also loses the protection against being ordered to monitor everything, and the new judgment says this in so many words.
The safe harbour clause was always conditional on the provider’s role staying neutral, which the law describes as technical, automatic, passive. Earlier case law established that a provider which plays an “active role” with respect to content, such as optimising or promoting particular listings, loses the protection for that content. What the new ruling had to decide is what happens when the active behaviour is fully automated, where no human at the company ever touches a specific post, but selection and amplification are entirely algorithmic.
The Court’s answer is that automation is not a sufficient defence for the platform. The ruling establishes what lawyers call tests, which are essentially questions a court asks to determine whether a legal category applies.
One of the main outcomes of the ruling is that knowledge and control are separate tests, and control does not require awareness. If the operator has set up an algorithm that determines, “in the interest of the operator or that of its service, under what conditions, how and in which order of priority” user content is or is not disseminated, then the operator controls that content. And a service whose operator controls the content is not a hosting service anymore. You can be entirely ignorant of every individual post on your platform and still lose safe harbour status, because you wrote the rules under which posts circulate.
Now, control here cannot simply mean “any influence over what gets shown”, because that would create new problems. For example, moderation is influence over what gets shown. Earlier case law and the DSA’s own Good Samaritan clause establish that voluntarily moderating content does not cost you the safe harbour. The Court also draws a line on the other side in the ruling, saying that categorising and indexing content to make it easier to find is explicitly fine. So the test sits somewhere between a chronological timeline and a search function, which are on the safe side. Engagement-optimised feeds that are ranked to serve the operator’s interest, are on the unsafe side. Where exactly in between the line falls is the thing nobody knows yet.
So to come back to the hypothetical defamation case, but with the new ruling in effect, and the platform makes the same argument: we just store what users post. Now, the laywer’s answer is no, your algorithm selected my client’s defamation, decided it would perform well, and pushed it to a hundred thousand people, in your own commercial interest. Because you controlled its dissemination, you are not a host for this content, which means that your safe harbour is gone, and we want damages for the amplification itself. And by the way, since the no-monitoring rule only protects hosts, our follow-up demand that you filter for this going forward is no longer automatically off the table either.
Against a platform like Meta, this is coherent. The ruling puts meaningfully more responsibility on the platform for algorithmic amplification. Whether you think that is good or bad, it at least makes sense, as the company that stores the post is the same as the company whose algorithm amplified it.
One more detail about the ruling that matters is that the Court did not actually decide the fate of Coyote, the driving app in the case. What the Grand Chamber did is write down a question, and send the case back to the French courts to answer it. That question, does an algorithm determine, in the operator’s interest, how and in what order of priority content gets disseminated, is now the question that every European court will reach for when somebody sues over algorithmic amplification.
So the most useful way to understand this ruling is not as a verdict but as a test, sitting in the caselaw, waiting for future cases to be run against it. Which means the interesting exercise is not interpreting the ruling further, it is doing what those future courts will do: take a defendant, and run the test.
For a company like Meta, we just did that, and it works. So now let’s run the test again, with the same defamatory post, that gets amplified via algorithms to 100k view, except this time it happened on the atmosphere, the network built on atproto.
Atproto, the protocol underneath Bluesky, splits the social networking platform up into separate components. A PDS, a personal data server, stores your repository, which contains all your posts and follows and likes, and does nothing else; it does not decide who sees anything. A relay aggregates everything from all the PDSes into one big firehose. An appview reads from that firehose, builds an index, effectively the back-end of an app on the network. And then there are independent feed generators, companies like Graze or independently run feeds like the For You Feed, whose entire product is a ranking: they store none of the content and broadcast nothing themselves, the client applies their feed, and users can swap between competing feeds whenever they like. All of these components can be, and increasingly are, run by different entities.
So the post about you went up on the atmosphere: it gets stored on a PDS, then it gets broadcast by relays. This broadcast gets picked up by appview indexes that store it, as well as by a feed generator who ranks it. Then you open an atproto app on your phone, which gets the ranking from a feed generator, picks up the actual post data from an appview, and displays it. Your lawyer looks at this network diagram and asks the same question as before: who controlled the dissemination? And this is where the test starts to break, in three different ways.
Break one: to whom applies the test?
Run the Court’s test against each component in turn.
The PDS stored the post, at your harasser’s request, and did absolutely nothing with its circulation. It has delegated ranking away entirely, which means it keeps the neutral, technical, passive posture that the law was written for. The test does not touch it, and the PDS keeps its safe harbour and its protection against monitoring orders.
The feed generator looks the most like what the test in the ruling is aiming it. It ranked the post, in its own commercial interest, and its ranking is why the post got so many views. But the test’s only consequence is stripping a service of its hosting safe harbour, and the feed generator was never in it to begin with because it does not store anybody’s content, and storage is what makes you a host in the first place. So whether or not a feed generator matches the definition of the test here does not matter.
Then the appview. It builds an index from the firehose, and it holds a copy of nearly everything. But building an index is exactly the activity the Court explicitly left on the protected side of its test: “mere categorisation and indexation of information for the purpose of improving accessibility” does not exercise control. The appview is doing the thing the ruling says a host is allowed to do. And there is a second problem on top of that: the DSA defines hosting as storing information “provided by, and at the request of, a recipient of the service,” and the appview does not store anything at anyone’s request. It crawls the network on its own initiative and builds its index without anyone explicitly asking it to. So even if a court were to look past the indexing protection, the appview is arguably not a host in the first place, because its storage was never requested by anyone.
And note that the appview is still not the thing that showed you the post. That is the client, the app on your phone, which is yet another separate component. The client queries the appview for content, based on whichever feed you have selected, and renders the result on your screen. The client stores nothing and ranks nothing, it displays what other components produced, according to choices you made. If any component’s role is genuinely technical, automatic and passive, it is this one, and it is also the only component the user ever actually touches.
So the ruling creates a test to determine if an algorithm disseminated content in the operator’s interest, but if you run the test in a decomposed network, it reaches almost nothing. The component that stores is neutral, but the component that ranks is not a host anyway, the component that indexes stores at nobody’s request, and the component that displays does neither storing nor ranking at all. The one question European courts now have for algorithmic amplification turns out to be a question that does not have an answer in a network like the atmosphere.
Break two: outside the test is outside everything
The safe harbour is a shield, and specifically it is the shield against exactly the kind of lawsuit our scenario describes. The feed generator falls outside the test because it is not a host, and not being a host means never having had the shield. It does not get to make the speech that ended the case in the first section, the one about we-just-store-what-people-post, thanks for your notification. There is no notification defence, because notice-and-takedown belongs to the hosting framework which it is not a part of. This means there is no protection against monitoring orders either, for the same reason. When our lawyer turns to the feed generator, she finds a company that commercially amplified a defamation, without legal protection, facing whatever national tort law has to say about it.
And what national tort law has to say about that is “it depends”. The hosting framework gave Europe one harmonised answer for one kind of defendant, and everything that falls outside it falls back on the tort law of individual member states, which is where things get unpredictable. The closest historical parallel is probably search engines, which were also left outside the safe harbours. The result was twenty years of divergent outcomes in Europe, with some countries extending protection by national statute and others improvising case by case. There are pieces of case law a plaintiff could reach for. For example, the CJEU has held the operators of The Pirate Bay, which stored nothing and only indexed and ranked, directly liable for the copyright infringements they surfaced. As best I can tell is that a commercial feed generator being sued over the amplification of a defamation, is a new type of configuration that those precedents were not built for.
So the one thing our lawyer does get from the Coyote ruling is that the feed generator’s most natural defence is now gone. The obvious first move for a company like this is to say: we are neutral infrastructure, we run math over a public firehose, we do not do anything to the content itself. That story no longer works, because Europe’s highest court has now looked at exactly this activity, an algorithm deciding in which order of priority content reaches people, in its operator’s own interest, and characterised it as an exercise of control over that content.
But this means that the lawyer of our example case would have to build something from scratch. The safe harbour provides a defense for operators, but it also provides an entire framework for the legal system, with its notice regime, standards of care, and established remedies. So that means constructing a claim under ordinary national tort law, with a different case in every country where the feed operates. It also means there is no notice regime that tells the feed generator at what point it should have known, and no prior verdict that tells either side what a claim like this is worth. Both sides would be improvising, and whatever the first few national courts decide becomes the new template for everyone.
Break three: winning changes nothing
Suppose the lawyer pushes through anyway. She picks a feed generator, constructs a theory under national tort law, spends two years on a court case and wins, damages or injunctions or whatever. But the obvious problem is that the post is still being amplified and available on the network.
The whole thing about the atmosphere is that there was never just one algorithm. If you read the Court’s test again, and look at the grammar: “the algorithm determines under what conditions, how and in which order of priority information is or is not disseminated.”
THE algorithm, THE operator, ITS service, THE order of priority. Every noun in that sentence is singular, and so is every remedy: THE service loses its safe harbour, THE provider is ordered to comply, and THE operator pays. The entire grammar of the ruling assumes that for any given piece of content there is one algorithm doing the disseminating, that is run by one operator, on one single service. On Coyote’s network that was simply true, with one company’s algorithm mediating everything.
But on the atmosphere it is very much not true. The defamatory post does not get picked up by a feed generator, it gets picked up by the Bluesky Discover feed, and by several Graze-built feeds, the For You feed, Eurosky’s fu Feed (??), and an unknown number of other feeds as well. There is no singular “the algorithm”, there is a plurality of algorithms, with nobody having control over all of them, and together they collectively produced the hundred thousand views on the defamation post.
Which means that any case would be hard, since any single feed generator can truthfully say the post would have travelled anyway through all the others, and courts are not set up particularly well to deal with an unknown-large-number of independent causes of one harm. And it also means that any victory is hollow, as an injunction binds only that specific feed operator. The other feed operators can keep ranking and distributing that post, because they are not part of a case. And because feed operators are distributed globally, jurisdiction for legal complications quickly become highly complicated.
Every remedy the law has is a sentence with a singular subject, and on this network those sentences have no referent. The only actor that could actually stop the post from spreading is the PDS, because the PDS is where the post exists, and the PDS is precisely the component the liability analysis just exonerated, correctly, as a neutral host. The components that caused the amplification cannot stop it, and the component that can stop it did not cause it. The law’s remedies and the law’s responsibilities have come apart, because the architecture distributed the thing they both assumed was in one place.
What’s fun about this is that even this analysis is a simplification, because everything above quietly assumed a network where each component is its own separate company, where there is one company that operates a PDS, another one that runs a feed generator, and another who operates a client, etc. But the actual atmosphere is much messier than that: Some companies, like Bluesky PBC run every infrastructure part. Other organisations, like Eurosky run a portal and PDS, but as yet, not its own appview. Somebody will eventually run an appview serving only user-chosen feeds over PDSes it does not operate. The network is not made of components, it is made of entities that each bundle some arbitrary subset of components. So for each entity, the question of what “the service” even is has to be answered before any test can run. So the framework I just used for three sections, describing the network as separate components, is a simplification that does not match the actual network either.
Further articles will deal with that complication, and with the questions this piece left aside: whether reverse-chronological feeds keep an server safe (mostly yes), whether “users choose their own feeds” is a strong defence (maybe?), and what a hybrid service that runs its own feed next to third-party ones should expect (no idea, and the judgment can be read two incompatible ways on it).
And if you noticed that I opened with French porn sites, the other half of this case, and then never mentioned it again: congratulations on getting edged by case law for European platform regulation. That part of the ruling does have impact on how social platforms, including operators on open social networks, handle age verification, and I’ll come back to that in a later article.
For the social platforms that exist today, the integrated ones that both store and rank data, the Coyote ruling is probably the most consequential statement on algorithmic amplification that a European court has produced, and the fights it enables against those platforms are coherent fights. The latest ruling further enshrines the assumption that is one algorithm, with one responsible actor. European courts now have their test on for the platform era, which comes at the perfect time: just when the platform era is getting to and end and a new generation of social networks is emerging. That same test against the architecture the next generation of networks is actually built on, produces incoherent answers. The test reaches nobody, because storage and ranking are separated, and the entities that are doing the amplification turn out to sit outside the entire protective framework. And even a plaintiff who wins finds that winning changes nothing, because the amplification was never one actor’s act. Incoherence means the outcome of any given case depends on where a judge happens to draw the circle around “the service”, and different judges will draw it differently, because nothing in the law tells them where it goes.
For now, the practical outcome of this ruling that this is a soft precedent, where the Grand Chamber sent the case back to the national courts, and the first national rulings will draw the lines that everyone else follows. Whether a court sees a decomposed network as a set of components or as one integrated service is going to be decided, in practice, by whoever explains the architecture to the court first, and a court left to improvise will improvise from the platform default, because the platform is the only shape that it knows. The people building open networks have a window to write their own architecture down, clearly, in the places lawyers actually read, before somebody else’s account of it hardens into doctrine. On current evidence, the lawyers are not going to figure out the difference between a PDS and an appview on their own.