There was an article about moving to Codeberg on the orange website yesterday, and out of interest to get an impression of what average programmers think of the idea of moving, I took at look at the comments. (Yeah, I know …)

I’m going to write here my thoughts on a general impression of the comment thread as a whole. (Rather than respond to individuals.)

(This thread reflects only my own views and not those of the remainder of the Codeberg presidium, board – nor (most importantly) does it reflect the views of the members of Codeberg as a whole, who ultimately make the decisions.)

To begin by addressing what seemed to be a misconception underlying a lot of the comments:

Codeberg, the website, does not aim to replace GitHub. We poke fun at their recent foibles in our PR sometimes, but we do not want to become them.

We do not want to replace one single point of failure with another! (Admittedly, I think Codeberg.org, run by a non-profit, as SPOF would be better than GitHub.com, run by Microsoft, as an SPOF, but that’s not the goal!)

We are much more excited by the idea of creating an ecosystem of forges (and different forge software) than in becoming the new one place where absolutely everything is hosted.

I am, for example, very pleased that even while switching to Forgejo, Fedora decided to keep on self-hosting rather than jumping to us.

To be clear, we’re open for everyone who needs us, especially individuals working on their own smaller projects. But other forges are our friends, not our competition

Forge federation is something we’re actively pushing for because of this. Full federation support is still a few years ahead of us, probably, but you can already set up your own forge in a way that minimizes inconvenience to users by using Codeberg as a single sign-on provider for a self-hosted forge.

https://git.madhouse-project.org/, which hosts the Iocaine project, is a great example of this. If you set up Codeberg as SSO for your own site, almost all of our content rules are irrelevant to you.

(If someone’s forge were hosting completely objectionable, hateful content we might choose to turn their OAuth support off. But, for example, you can have as many private and non-free repositories as you like that way. More on that in a bit though …)

(Furthermore, this thread reflects only my own views and not those of the remainder of the Codeberg presidium, board – nor (most importantly) does it reflect the views of the members of Codeberg as a whole, who ultimately make the decisions.)

Apart from that, many people listed things that GitHub provides for free which Codeberg doesn’t provide or requires self-hosting for. The biggest one was CI, but there were other things too.

And I think the only way I can respond to that is by talking about the fundamentally different organizational models that GitHub and Codeberg have – not to plead on our smaller size, but to plead on principles.

Microsoft is a for-profit company. They have attracted a lot of projects to them by giving away free goodies, like an immense amount of computing power for CI, and over the years have increased the amount of stuff you get for free. (Not long ago you had to pay for personal private repos …)

By continuously sweetening the deal for smaller users, then getting orgs to pay once they start needing collaboration features, GitHub built up over a billion dollars in revenue per year (as of 2022).

Microsoft’s shareholders are probably very pleased about this.

But if Microsoft needs to please its shareholders and turn the revenue dial up a bit again (say, because they’ve got themselves tied up in a huge economic bubble, and need to bolster the bottom line after it pops), they might choose to take away some of those free goodies.

In fact, it’s not just a hypothetical – they started doing that just recently. https://web.archive.org/web/20260223084443/https://github.com/resources/insights/2026-pricing-changes-for-github-actions

Those changes are ‘postponed’, but assume they will come.

Pricing changes for GitHub Actions

GitHub Actions pricing update: Discover lower runner rates (up to 39% off) following a major re-architecture for faster, more reliable CI/CD.

GitHub

Codeberg is different.

Codeberg is a non-profit.

Moreover, it is a *democratic* non-profit. You can (and, if you actively use Codeberg, should) become a member and you will have an equal vote and a fair say in the running of the association, and in any decisions we make about what to offer and what not to offer.

This democratic right is guaranteed to you not only by our constitution, but by German law, which guarantees that the membership as a whole has the ultimate decision-making power.

So no, we don’t offer massive CI resources, unlimited repo quotas, etc.

What we offer is different: if self-hosting isn’t for you, but you still want to know that your repo hosting is not at the whims of Microsoft’s bottom line, Codeberg is for you.

If the Codeberg service you depend on goes away, it won’t be from one day to the next in order to boost our income. We will warn you about the reasons, ask you and the other members what you think, and you’ll have a chance to change things.

(This thread reflects only my own views and not those of the remainder of the Codeberg presidium, board – nor (most importantly) does it reflect the views of the members of Codeberg as a whole, who ultimately make the decisions.)

And I have a positive example for this, too: our Pages service was going to go away because nobody wanted to maintain it any more.

But we asked the community, and they really wanted a Pages service.

So a heroic volunteer (thank you @whitequark) stepped up to write us new infrastructure, and our infra team found the time and motivation to work on patching up the existing infra. And now the future of Codeberg Pages is safe – because the community told us they wanted it.

There are limitations that come with being a non-profit association in Germany.

Something that was mentioned in the thread is why don’t we let people and organizations pay for more resources. One answer – apart from the fact that we’ve only just reached the size where we start to get such requests – is that, under our current legal form, we can’t really do this. A non-profit association cannot offer commercial services.

There are a couple of options being explored here:

1. We *could* maybe offer some things like increased quotas to association members. That has been mentioned before as a possibility but no action towards this has been taken yet afaik.

2. Some interested members of Codeberg have, in their private capacity, been investigating offering e.g. a hosted CI runner service that would have seamless integration with Codeberg.

Nothing solid on either front yet, though.

(This thread reflects only my own views and not those of the remainder of the Codeberg presidium, board – nor (most importantly) does it reflect the views of the members of Codeberg as a whole, who ultimately make the decisions.)

In general, I think Codeberg stands for a future in which people are a lot more suspicious of free goodies given to the FOSS community by for-profit companies.

But it also stands for a world in which self-hosting is not the only practical alternative to the present situation. We stand for community-run infrastructure, volunteering to provide a common good, and making decisions for the benefit of all.

Some other people were concerned about our uptime in comparison to GitHub. Fortunately, GitHub has recently been taking care of that concern for us 😅

My personal feeling, as a user, is that Codeberg’s uptime is acceptable for what the site provides. If you are seriously messed up by your forge maybe being down for an hour or two a week, don’t use Codeberg: self-host!

Fortunately, as a FOSS site, the chance of anything as important as a ‘profit margin’ depending on our uptime is very low :-)

(Also, I will at this point plead size. Our small infra team is frequently overworked to the point that I’m often concerned about the effect on their personal health. Again, please become a member and get involved)

(Furthermore, this thread reflects only my own views and not those of the remainder of the Codeberg presidium, board – nor (most importantly) does it reflect the views of the members of Codeberg as a whole, who ultimately make the decisions.)

Something else I saw is that our messaging on what private repositories can be used for with us is not clear enough.

To take the opportunity to clarify here:

• Private repositories are absolutely allowed, but subject to rules, just like public repositories are subject to rules
• Using a private repository for a software project that you’re not yet ready to release publically is absolutely okay
• Using a private repository for personal software you wrote for your own use only is absolutely okay

Moderatorially speaking, we tend to regard accounts with *only* private repos as a red flag (and such people who have accounts like that are usually rejected as active/voting members if they apply). But they’re allowed as long as their size remains reasonable.

The rules are there because unfortunately, we do see blatant abuse of our resources (like people uploading their whole home directory to a private repo as a personal backup).

I think we should work on making our rules about this clearer!

@dpk I have been looking to move away from github with my projects for a while now, but self-hosting is more effort than I want to put in.

If you don't mind a question - how does codeberg feel about adult content?

I'm a (hobby) game developer. All my games are GPL / CC, but many are also, well, pornographic. While I don't see anything against that in the Terms, I definitely care about social norms. Is that something that would be acceptable on codeberg?

@dpk SourceHut's collaboration tools are more bare knuckle than Codeberg's, so I plan to explore both, some contributors are more comfortable with a Pull Request type experience

@dpk

> also stands for a world in which self-hosting is not the only practical alternative to the present situation. We stand for community-run infrastructure, volunteering to provide a common good, and making decisions for the benefit of all.

Bravo!

@dpk would the option that e.g. signal and mozzila take work, with a private enterprise managing the paid products fully owned by a nonprofit?
@mossfet @dpk It's been brought up, but similar propositions made me feel uneasy as far as preserving the nonprofit character is concerned (after all, Mozilla is not the best example) – if that were to happen, one would really have to involve lawyers.
@dpk ... and also now other forges have a really easy way to set up pages too.
@dpk thank you for the write up!
@dpk I pay for SourceHut hosting, I am not even using most of its capabilities yet.
@dpk Technically Microsoft indirectly paid my salary over 2005. But I can speak to their general bluewashing practices. There has been a shift in strategy under Nadella from Ballmer to seeking influence, direct control in some cases, of open source software, instead of embrace-extend-extinguish (or in preparation for it). Nowhere is this more clear than in how they abuse OpenSSH in Windows 11, or how Quagga is keeping Azure's lights on under a new name.

@dpk
CI is definitely a big reason for GH.
Especially (free) builds on/for macOS are something I couldn't setup myself (at reasonable cost).

Another problem is that even third-party CI hosters like CircleCI or CirrusCI or Travis AFAIK don't work with Codeberg (or Forgejo in general). Obviously that's not Codebergs/Forgejos fault, but it's something that so far has kept me at Github :-/

@Doomed_Daniel @dpk Windows and MacOS builders are the reason why a single project of mine is staying at GitHub: In a sense, they pay for my project's presence with the capability of building binary wheels for all platforms.
Kind of an OK deal as long as they don't raise my pain level too far, especially as currently I don't know any platform to which I could go for that.
@chrysn @dpk
TBH the pain level is pretty high already.
All those posts hidden behind "Load more…" buttons in longer issues or PR discussions really annoy me - especially in combination with that idiotic "images become invalid after 5 minutes" issue (WTF) and often poor general performance

@chrysn @dpk
A completely different thing is: I have thought about hosting a Forgejo instance myself for source ports, open source games and such. Not a private instance, but much smaller scale than Codeberg.

But as I live in Germany I fear that I'll have to pay for cease-and-desist orders (Abmahnung) in case someone feels their rights violated by reverse-engineered reimplementations of their games or whatever...

@chrysn @dpk
I'm just one guy, not a corporation or at least association, I can't afford legal issues like that :-/

(of course a very German problem, in other countries you could probably react to a C&D by taking down the repo in question without having to pay anyone anything. Also not optimal esp. if the claims are dubious, but much smaller risk)

@dpk personally one of the features I would miss the most is cross-repo code search
@dpk 100% agreed, so that's like one fourth of the presidium.

@n0toose @dpk Thank you for this post. It’s good to be reminded of the obvious.

I’m the developer of GitRoot @forge (an alternative forge that requires no registration and uses no database). If there’s anything I can do to help, please don’t hesitate to get in touch https://gitroot.dev/contact.html

GitRoot

GitRoot is a small yet powerfull git forge.

@manland @dpk @forge Interesting stuff!

@n0toose @dpk @forge Thanks! It’s an experiment, it’s still in its early stages, but I wanted to see if another approach might work. And so far, I haven’t come across any major obstacles.

The federation approach comes with three issues:
- registration: I don’t have, SSH manage it
- code sharing: Git is there for that
- data sharing (issues, etc.): everything is in Git

I don't work on federation right now (I focus on CI/CD and plugins) but can switch to it if it's help you.

@manland @dpk @forge If you manage to beat us to the federation (implementing forge federation seems to be easier when you are not dealing with a century and a half of legacy code - but there is an assumption of a presence of "actors" with signing keys required), power to you. Forgejo doesn't support "plugins" and that limits flexibility.

I find it very healthy that others try "different approaches" tbh.

@dpk Oh wow, I did not know you could do this! 👀 When federation does eventually come around, is it planned for forges that are set up like this to "migrate" painlessly?

(Sorry if this is a dumb question. I am not sure how this stuff is set up.)

@codecat I don’t foresee any problems there, but I‘m not deep in the technical issues of federation. Perhaps @n0toose could say more, although I suspect that sort of thing is still a way down the development roadmap
@dpk @codecat I can't answer on plans, but in theory this is currently already a configuration option that can be toggled. (Don't recommend that, though, see Forgejo's FAQ – authored by yours truly.)
@n0toose @dpk I'll have to take a look at some documentation. Thanks for all the work you guys are putting in!
@codecat @dpk We're always looking for new contributors. 😅
@n0toose @dpk @codecat Given how it's all based around git, I'd expect it to work out considerably better than it does with other ActivityPub instance types.

@dpk yesss

my biggest problem with the present code forge situation is that you have an unfortunately very binary option of "have a totally centralised ecosystem" and "have 30000 different forgejo instances that clog up my password manager"

i have i think 6 code forge accounts. i do not want or need 6 code forge accounts.

federation or even just SSO would be such a boon for this

@dpk
One thing that would IMHO help for federation without full support would be to allow creating pull requests from any public Git repo.
I *think* it shouldn't be super hard?
Might require an "Update" button to pull in new changes (vs the local ones where pushed changes update the PR automatically), but otherwise I think it could work quite well and, together with the SSO you mentioned, be a very good start until full federation support is done
@dpk
(To be clear, I don't assume that "just adding a button" is all that needs to be done to make this work, it's just the user-facing thing that would be different vs existing PRs - in addition to specifying git URL + branch name instead of selecting it from a list. When talking about this potential feature people always pointed out that it can't work because Forgejo doesn't know when you push on the remote server and.. yes, but that's not a big issue, just let users update with a button)

@Doomed_Daniel @dpk

THIS!

Really, just this!

(the other big one - SSO - will get a free ride)

@dpk This is something I've been dreaming of, I'm glad to see you're thinking about it already.
@dpk
For me, full federation would be the killer feature: A couple of years ago all research institutions started hosting their GitLab server. Yet we see bigger software collaborations mainly hosted on GitHub. Simply because working across sites is virtually impossible (accounts and all that). There are other aspects, of course. Still, I consider this a major technical one. Plus CI compatibility.
@dpk Is it practical to support Codeberg SSO *and* local accounts? Being able to have no external dependencies for local users but a friendly way to support remote contributors seems like it'd be a big win.
@swetland @dpk Yes, and you can require external accounts set a password so they can still be accessed if the OAUTH source disappears.

@dpk From OpenCommit side I'd like to chime in here that we agree. 💪

Our position is that we're aiming to become one(!) of the cornerstones in a #federated world of forges. We want to be there for anyone that doesn't want to or can't run their own #forge.

One of our beliefs is "one is none". One commercial, closed source entity like #Microsoft is bad, just like one #Codeberg or one #OpenCommit.

Hence our view is of a network of forges large and small to support #opensource together.

❤️

@dpk Haven't used #GitHub other than for accessing other source code for months now, and the current event gave me the push to delete both the @interpeer org and my personal profile.

They need you more than you need them.

@dpk Thank you for writing this! And agreed on pretty much everything.

@dpk Codeberg and everyone involved in running and supporting the initiative is such a ray of sunshine in all that's going on at the moment.

I had no idea you could use a Codeberg account to sign in to other Forges. That's awesome.

Thank you for making this thread!

@dpk This is worth a separate, full written, blog post, if it's not too much to ask?