I Regret Migrating to Codeberg
A brief comment on Codeberg’s new terms, and why a free-software host
deciding which projects are welcome worries me more than the bans themselves.

My primary reason for leaving GitHub was not about a single feature or a
single outage, but about the “enshittification” of the platform under
Microsoft’s ownership. The web interface got rewritten into a sluggish pile of
JavaScript that either broke things which used to just work, or
made them so horribly slow that using them became a PITA. Beyond the technical
decay GitHub had turned into de facto “public infrastructure” in much the
same way that WhatsApp has, hosting the source code of a very
large share of the world’s software and, through that, giving Microsoft a
degree of leverage and surveillance over everyone’s projects, and by extension
everyone’s digital lives, that no single company should hold. On top of that,
stories about legitimate developers losing their accounts due to arbitrary bans
by Microsoft only reinforced the feeling that it would be a good idea to at
least have a backup somewhere else.
Codeberg looked like a viable alternative. It offered free and open-source
projects a reputable home and, more importantly, an equally free one, run by a
non-profit association rather than a subsidiary of the largest software vendor
on the planet. Unfortunately, the latest update to its terms of service seems to
mark a first step in changing one part I moved there for, namely the “freedom”
part.
Human stupidity
Every project I’ve published so far was built with 100% human stupidity rather
than “artificial intelligence”, or, more accurately, LLMs. I don’t hold
particularly strong feelings about Codeberg banning projects that are
predominantly LLM-driven, at least not feelings as strong as the ones I hold
about the simultaneous ban of legitimate cryptocurrency projects, which reads as
though it got lumped in for no reason other than that most people still remember
the villain-du-jour that crypto was in the years before LLMs took that
title. The two clauses landed within days of each other, the LLM prohibition
on the 29th of June and the cryptocurrency prohibition on the 2nd of July, both
as Assembly 2026 proposals, and the terms now file the latter under,
of all things, “content that harms the reputation of Codeberg”, which sounds
like legalese for “we don’t have a solid reason or an actual number of bad
precedents to categorically ban it”.
The announcement blog post, however, reads very poorly, and the
section titled “The development team of none” is the worst of it. It states:
Using LLMs to work with your code gives you a kick of adrenaline. You can
develop at a rapid pace, build things as if you had a large team. Only that
you have none. In fact, you are (often) alone, working with a statistical
machine that turns energy into code.
And, a little further down, it says:
It seems like many ‘vibe coders’ don’t realize that they don’t actually have a
community around them.
This is out of touch with how most free software gets made. The majority of
FOSS developers are one-man-shows, and the only cOmMuNiTy they have around
them are the users requesting features or reporting bugs while most of the time
not contributing in any form whatsoever. I’ve been publishing silly little
tools for decades, predating this website and even GitHub itself
(remember when SourceForge was the hot sh.t?), and not one of them has ever
had an actual “community” around it, at least not in the romanticized sense
that Codeberg paints in that post. I’m a lone wolf who codes everything by
hand and spends an absurd amount of time doing exactly that, and the notion that
an LLM is the thing separating a real project with a real community from a
fake one does not hold up once you look at how the average useful little tool on
any forge comes to exist in the first place.
[silly little
tools](../projects/)
It’s frankly a bit snotty of Codeberg to make this argument at all,
considering that the platform effectively lives inside the Forgejo bubble, and
Forgejo mutinied inherited its community of active contributors from
Gitea, who had spent the better part of six years building that community
before Forgejo even existed. A project that acquired its own community by
hard-forking someone else’s, then turned around to lecture solo developers about
not having one, is a difficult position to argue from with a straight face.
In addition, Codeberg conflates “having a community” with “being legitimate
software worth hosting”, when the bar for a personal project has always been a
working build, ideally a license, and maybe a README, and not a channel full of
contributors. A good deal of what makes the small, single-author tool ecosystem
worth having is precisely that it doesn’t need a community to justify its
existence, and a forge whose entire selling point is hosting the code of
individuals is an odd place to argue the opposite.
Censorship
The part that bothers me isn’t the specific ban on LLM projects, or the
specific ban on cryptocurrency projects. It’s that a hub built around “free
software” is now telling its users which kinds of software are deemed good
and which are not, and that is closer to censorship than it might seem. Once a
platform writes into its terms that an entire category “harms its reputation”
and can be removed on that basis, the deciding factor stops being whether the
code is legal, or functional, or useful, and becomes whether it aligns with a
position the platform has taken. I would argue that a significant share of the
projects caught by a blanket ban of that kind are legitimate software rather
than vibe-coded slop or sh.tcoin implementations.
Every platform I can think of that took this approach became divisive the moment
it started enforcing an ideology on its users, whatever that ideology happened
to be, and however justified it looked at the time. The mechanism is always the
same, where a real problem shows up, an unpopular category becomes the obvious
culprit, the platform bans the category instead of addressing the problem, and
that ban then becomes the precedent for the next category, and the one after
that. The category that is uncontroversial to ban today is the reason the
mechanism exists tomorrow, and the users who applauded the first ban rarely get
asked about the second one.
I do acknowledge that both categories aren’t free of problems. LLM-driven
repositories do strain infrastructure, do generate unmanageable volumes of
low-quality issues and pull requests, and do carry real questions about
copyright and code provenance, all of which Codeberg names in its post. The
cryptocurrency space, in turn, might have produced more outright scams than
almost any other corner of software. However, a categoric ban on the
villain-du-jour is not a solution to any of that.
We now even have people like Linus Torvalds making the fairly reasonable
argument that an LLM is just a tool, and “clearly a useful one”,
with a legitimate place in Linux kernel development when it’s used carefully
and its output is held to the same standard as everything else. If the
maintainer of the largest and most consequential open-source project on the
planet can treat LLMs as a tool to be judged on its results rather than a
category to be banned on sight, a backyard code forge can manage the same.
I, too, am worried about the impact of LLMs on tech, and on society in
general, going forward, and I’d guess I’m about as worried as whoever wrote
Codeberg’s policy. I just don’t believe that banning content, which is very
much what this amounts to, is the way forward.
Reasonable solution
What I wish Codeberg had reached for is a solution that treats the actual
problem, which by their own account in that same post is resource consumption
and the infrastructure cost that comes with it, as an actual resource problem. A
change to the terms of service could have required authors to tick a checkbox
declaring that a repository contains LLM-generated code, or is
cryptocurrency-related, and those repositories could then be segmented onto a
separate tier of infrastructure that doesn’t get the same resources as everyone
else. A tier that carries specific quotas, and that might require the author to
pay for what they consume. Declaring the truth honestly would (at least at
first) cost nothing, and failing to declare it, then getting caught, could be
met with exactly the permanent, immediate ban that Codeberg is now applying to
entire categories from the outset.
Similarly, projects that carry the LLM or Crypto label could carry
automatically displayed disclaimers that explicitly state that Codeberg is in
no way responsible for the quality or correctness of this specific repository.
Heck, they might even go as far as to blatantly state that Codeberg does not
approve of the use of LLMs or Cryptocurrencies in those warnings, to make
extra-extra-extra sure that people get it and that there is no “reputational
risk” for Codeberg.
An approach like this puts the cost of resource-hungry projects onto the people
creating them, and it keeps the shared resources for the projects that were the
reason the platform exists. All of that without Codeberg having to decide
which categories of software are ideologically acceptable in the first place.
The “we ban everything upfront that we don’t agree with” approach is the wrong
signal to send, and it is a very slippery slope.
Despite not owning a single project that falls into either banned category, I’m
now going to look into setting up my own public Git host, and I’ll move off
Codeberg only a few months after moving there, because of this. Not
because of the bans themselves, but because I don’t want to depend on a platform
that rewrites its terms of service on a whim, without properly announcing that
the change was even under consideration, and without giving its users a way to
weigh in.
only a few months after moving there
The decisions did go through Codeberg’s own Assembly 2026, which is more
process than most platforms bother with, and yet as an ordinary user I found out
about it the way probably most people else did, through a dark blue banner at
the top of the site on the day it was already settled. While I appreciate the
info about the ToS change, I wish I’d gotten a banner back when the platform
was still deciding whether to go down this road, and I wish it had linked to a
discussion thread, or at the very least a poll, so that I could have voiced the
concern I have, which is about the freedom of the platform as a whole, rather
than about any single category that ended up banned.
Enjoyed this? Please consider supporting my work.