Skip to content
Code To Cloud
22 min read

Codeberg: The Non-Profit GitHub Alternative

Codeberg is a member-owned forge in Berlin now hosting 678,000 projects. What its mission is, how it actually works, and who is walking away from GitHub.

By Kevin Evans

The Codeberg.org homepage on 22 August 2026, showing the tagline 'Software development, but free!' over a teal mountain illustration, the non-profit, community and respect panels, and a stats row reading 678978 projects, 410768 users, 1700+ e.V. members, powered by Forgejo
  • 678,978

    Projects Hosted

  • €24/yr

    Membership Floor

  • 7h 47m

    GitHub's 17 Aug Outage

  • 0

    Paid Tiers

In the space of four days this month, two very different answers arrived to the same question: what should replace GitHub?

On 14 August, SpaceX closed a $60 billion all-stock acquisition of Cursor. On 17 August, Cursor shipped Origin — "a git forge for the agentic era" — on the same day GitHub went down for seven hours and forty-seven minutes. And underneath all of it, quietly, a registered non-profit association in Berlin crossed 678,000 hosted projects, having roughly doubled in size since last November.

That non-profit is Codeberg. It has no paid tier, no venture capital, no advertising, and it just held a members' vote to ban a category of project that most of the industry is racing to enable. It is the least fashionable option on the table and the one that some of the most credible names in systems programming have actually moved to.

Here is what it is, how it works, and who is leaving GitHub — for Codeberg and otherwise.

What's Inside

  • What Codeberg is, and who owns it
  • How the money works — €24 a year, and no paid plan to upgrade to
  • The mechanics: Forgejo, migrations, Pages, CI, and the quotas nobody reads
  • The three rules that will surprise you, including the July 2026 LLM vote
  • Who has actually left GitHub: Zig, Ghostty, and the rest
  • Cursor Origin, SpaceX, and what "Elon's GitHub alternative" actually means
  • Whether any of this applies to your team

What Codeberg actually is

Codeberg's own one-line summary is on its front page, and it is worth reading literally:

Codeberg is a non-profit, community-led effort that provides services to free and open-source projects, such as Git hosting (using Forgejo), Pages, CI/CD, and a Weblate instance.

The operator is Codeberg e.V. — a registered non-profit association (eingetragener Verein) based in Berlin, Germany. That legal form matters more than it sounds. An e.V. is member-governed by statute: it has a general assembly, an elected presidium, and bylaws that members vote to change. Codeberg is not a company with a community-friendly mission statement. It is a club, and its users can join it and vote in it.

The mission language is unusually blunt about the problem it exists to solve. Volunteers build free software; that software then flows into closed platforms run for commercial interests. Codeberg's stated purpose is to "build and maintain a free collaboration platform for creating, archiving, and preserving code" — with the emphasis on preserving, and on avoiding "dependencies on commercial, external, or proprietary services" so it can guarantee its own independence.

The three panels on the homepage are the whole pitch:

  • Non-profit — "For us, supporting the commons comes first. Its future is in the hands of its users."
  • Community — "We are more than just Git hosting… developers, artists, academics, hobbyists, and professionals."
  • Respect — "No tracking. No third-party cookies. No profiteering. Everything runs on servers that we control. We will not sell your data. Hosted in Europe, we welcome the world."

For anyone in Canada or the EU who has ever had to answer a procurement question about where source code physically lives and who can subpoena it, that last line is not a lifestyle preference. It is a compliance answer.

Who pays for it

This is the part most GitHub alternatives get wrong, and it is the part Codeberg has been most transparent about.

There is no paid plan. There is no enterprise tier waiting to be sold to you at renewal. The organisation is funded by member contributions and donations, and as of its May 2026 budget post it had 1,691 paying members — up from 1,208 the previous November, and now advertised on the front page as 1,700+.

Membership costs:

Member typeMinimum annual fee
Private individual€24
Legal entity€100
Reduced rate (on request, board-approved)€12

Active members get votes — on financial plans, on changes to the privacy policy, on proposals put forward by other members, and on electing the presidium. Supporting members get updates and event access without the ballot. Neither is required to use the site.

For scale: Codeberg spent about €300 in 2019, its first year. It is now in its seventh, running infrastructure for over 400,000 accounts on member dues. The organisation's framing of this is that funding diversity — many small members rather than a few large sponsors — is what lets it avoid venture capital and avoid a single sponsor's leverage. It is the same argument public broadcasters make, and it has the same failure mode: if growth outruns dues, something has to give.

That tension is the single most important thing to understand before you move a project there. Codeberg's constraints are not product decisions. They are budget decisions taken by people who have to answer to a general assembly.

How it works, mechanically

Forgejo, not GitHub with a different logo

Codeberg runs Forgejo. If you know Gitea, you know most of it: Forgejo is a soft fork Codeberg created in December 2022 after a change in Gitea's governance, initially tracking every upstream change and then stopping synchronisation entirely in February 2024 to develop independently. Forgejo now lives under the Codeberg e.V. umbrella and is explicitly aimed at "security, scaling, federation and privacy."

Practically, the UI is a recognisable forge: repositories, issues, pull requests, labels, milestones, wikis, releases, packages, org accounts, protected branches, an API. It is not a GitHub clone with the serial numbers filed off, but nothing in the daily loop will be unfamiliar. Forgejo's own claim is that it runs on "an order of magnitude less resources than other forges" — which is why a volunteer non-profit can afford to host 678,000 projects at all, and why self-hosting it on a small VPS is genuinely realistic.

That last point is the strategic one. Codeberg.org is one Forgejo instance. If Codeberg's rules or its funding ever stop working for you, the exit is docker compose up on your own hardware, not a migration to another vendor. That is the real question behind who owns your business technology: not who hosts it today, but what it costs you to leave.

Getting a repository across

The migration path is built in and takes about ten minutes:

  1. On Codeberg, click the + in the top right and choose New Migration.
  2. Pick GitHub as the source service.
  3. Generate a personal access token at github.com/settings/tokens.
  4. Paste the repository URL and the token, then tick which metadata you want.
  5. Click Migrate Repository.

Issues, labels, wiki, releases and milestones come across. Stars and pull requests do not transfer cleanly — plan on losing them. Two footnotes from the docs that are easy to miss: delete the access token when you are done, and if a migration fails it fails with a bare 500, in which case you delete the half-created repository and start again.

The result is a working forge, not an archive. Zig's repository on Codeberg is a live tree with 39,648 commits, 58 branches and Andrew Kelley merging pull requests into master the day before this post went up:

The ziglang/zig repository page on Codeberg showing 39,648 commits, 58 branches, 25 tags and 839 MiB of storage, with a merge commit by Andrew Kelley dated yesterday and a .forgejo directory in the file tree
ziglang/zig on Codeberg, 22 August 2026. Note the .forgejo directory — the CI configuration moved too. Screenshot: our own capture of codeberg.org.

Nine months after the move, the issue tracker is not a ghost town either — 776 open, 1,510 total, with a "Tracking Issue: Legacy Issues" pinned at the top to reconcile what came over from GitHub:

The Zig issue tracker on Codeberg showing 776 open and 734 closed issues, three pinned tracking issues for legacy issues and LLVM 23 and 24, and recent bug reports opened hours and days ago
The tracker nine months post-migration, with a pinned tracking issue reconciling the GitHub backlog. Screenshot: our own capture of codeberg.org.

Pages, CI and translation

Three services sit alongside Git hosting:

  • Codeberg Pages — static site hosting from a repository, with custom domain support. The natural home for project documentation.
  • CI/CD — two options, both opt-in, and this is where expectations need managing. Woodpecker CI runs at ci.codeberg.org, but access is gated: you file a request in the Codeberg-e.V./requests tracker and a volunteer reviews it. linux/amd64 is the sole build target, and the docs say plainly that "CI access is provided as-is and might break at any time." Forgejo Actions — broadly compatible with GitHub Actions workflows — is available in a limited open alpha.
  • Codeberg Translate — a hosted Weblate instance for localisation, which for a project with a real translator community is a genuinely differentiated offering.

If your release process depends on a matrix of macOS, Windows and ARM runners provisioned on demand, Codeberg is not a drop-in replacement, and pretending otherwise is how migrations fail three weeks in.

The quotas nobody reads until they hit them

You are asked to request approval before exceeding:

  • 750 MiB of Git storage
  • 1.5 GiB across packages, LFS and attachments combined
  • "generally large" CI resource use

The framing in the FAQ is worth quoting because it explains the philosophy: "There is no quota for valid use-cases." These are not upsell thresholds. They are tripwires that let a small volunteer team notice when someone is using a donation-funded forge as a CDN.

The rules that will surprise you

Three policies catch people out. All three follow directly from the funding model.

Public repositories must carry a free/open-source licence. Codeberg asks you "to contribute back to the ecosystem by attaching a suitable license to the works that you put out in public." Public domain dedications — CC0, the Unlicense — count. Unlicensed public repositories can be removed.

Proprietary and commercial projects are not supported at all. Contributors to FOSS may keep up to 100 MB of private content, which exists so you can handle an embargoed security patch or a private team discussion, not so you can run your startup there. Non-contributors do not get private repos; the documented answer is to self-host Forgejo. And paying more does not buy an exemption — there is nothing to pay.

Mirrors of repositories hosted elsewhere are blocked. Pulling a copy of your GitHub repo into Codeberg on a schedule consumes donated resources to duplicate something Microsoft is already hosting, so it is not allowed. This trips up the most common "safe" migration plan, and it matters: the supported pattern is to make Codeberg the source of truth and push a mirror out to GitHub, not the reverse.

Then there is the vote.

A banner across the top of Codeberg.org announcing changed Terms of Use, listing two changes: LLM-generated content is being restricted, and cryptocurrency projects are no longer allowed
The banner every visitor to Codeberg.org sees this month. Screenshot: our own capture of codeberg.org.

On 23 July 2026, Codeberg announced the results of a members' ballot that closed the day before. Two motions passed, on roughly 50% member turnout:

  1. Codeberg will not use user or project data to train AI or LLM systems. The wording — "we do not want to need your data" — frames this as an architectural commitment rather than a promise of restraint. The association considers training on hosted code "incompatible with responsibly creating and maintaining free & open source software."
  2. The Terms of Use now restrict "vibe-coded" projects — LLM-generated software published without meaningful human oversight. This passed 358 in favour, 144 against, 14 abstentions, which tells you it was contested. Projects that lean heavily on LLM generation, autonomous LLM agents, or that produce disproportionately resource-intensive output may be removed. Projects with an active community or a pre-LLM history are, per Codeberg, unlikely to be affected.

Cryptocurrency projects were banned in the same round of changes.

The motivation is not primarily ideological, and it is a mistake to read it that way. Codeberg's infrastructure has been hammered by AI company crawlers requesting every page variant, every historical version and every filter combination — degrading the service for everyone on a budget funded by €24 memberships. The LLM policy is what a forge does when it cannot solve a capacity problem by spending money.

Whether you agree with it or not, know it before you migrate. If your team ships agent-generated code as a matter of course — governed or not, and instruction files are how you govern it — you are moving onto a platform whose members have voted on how they feel about that.

Who is actually leaving GitHub

Two departures moved the needle. Both were technical people with nothing to gain from the gesture.

Zig, November 2025

The Zig Software Foundation announced on 26 November 2025 that it was moving its primary repository to Codeberg, and completed the move in December.

Andrew Kelley's stated breaking point was mundane and therefore damning: a GitHub Actions bug affecting Zig's CI, reported in April 2025, with a fix delivered in August, and the issue left open until 1 December. Alongside that sat a rising volume of AI-generated contributions that violated Zig's strict no-LLM policy, and a general read that Microsoft's direction for the platform no longer pointed at the people using it.

The cost was real and quantified. GitHub Sponsors was a substantial share of the foundation's income — more than $170,000 donated in 2024 — and it does not travel. Zig walked away from its largest funding channel on principle. The move brought over 1,200 new members to Codeberg in its wake.

Ghostty, April 2026

On 28 April 2026, Mitchell Hashimoto — creator of Vagrant and Terraform, GitHub user #1299, an account opened in February 2008 — announced that Ghostty was leaving GitHub after eighteen years of daily use.

He was not making a political argument. He had been keeping an outage journal, and the entry pattern was the point: "Almost every day has an X." The month around the announcement included a merge-queue regression on 23 April that silently reverted commits across 658 repositories and 2,092 pull requests, GitHub Search going down for hours on 27 April, and a critical RCE disclosure on 28 April.

His conclusion:

This is no longer a place for serious work if it just blocks you out for hours per day, every day.

And, more plainly:

I want to code. And I can't code with GitHub anymore.

Four months later, Ghostty still has not announced a destination. Hashimoto said he was talking to both commercial and FOSS providers and would remove GitHub dependencies incrementally while keeping a read-only mirror at the current URL. That silence is itself informative: leaving GitHub is easy, and replacing it is not.

The rest

The pattern extends past the headline names. Tenacity, the audio editor, self-hosts and keeps only a GitHub mirror. The Dillo browser and the Hare programming language have gone. Kord Extensions moved after its community voted for it, citing GitHub sitting inside Microsoft's AI division. GNOME has self-hosted at gitlab.gnome.org for years, as have the Apache projects — a reminder that leaving GitHub was normal before it was a statement.

Why now: GitHub's August

The reliability numbers explain the timing better than any manifesto.

IncidentHub counted 112 hours of downtime across 48 "major outages" in the year from May 2025. Then came 17 August 2026 — 7 hours and 47 minutes, taking down github.com, authentication, Actions, the API, pull requests, issues and Copilot together.

GitHub's own postmortem is refreshingly free of spin, and the root cause is the story of the year:

The outage began when traffic reached a new peak, and a critical infrastructure component in our Central US data center failed to scale with it.

The traffic figures in that same post are the ones to sit with. Monthly commits have gone from 1.4 billion to 2.9 billion since April 2026 — a doubling in four months. Merged pull requests are running at roughly 130 million a month, new repositories at 24 million a month.

Nobody's capacity model survives a four-month doubling. That is not a code push gone wrong; it is AI coding agents arriving at scale — the repos and agent tooling teams have standardised on over the last year — turning a forge into a write-heavy system it was never sized for. GitHub's stated remedies — adding capacity, improving efficiency, removing architectural bottlenecks, plus retry budgets and variable timeouts — are the right list. They are also a list that takes quarters, not weeks.

The other exit: Cursor Origin

This is the part worth getting precise about, because the press framing is loose.

Origin was announced by Cursor, not by Elon Musk. The connection is corporate: SpaceX announced its acquisition of Anysphere — Cursor's maker — on 16 June 2026, and closed it on 14 August 2026 for $60 billion in all-stock consideration, roughly 391 million SpaceX shares, folding the company into a new SpaceXAI division. It is the largest startup acquisition on record. Origin shipped three days later, making it the first product Cursor has released as a SpaceX subsidiary. That is why outlets have been calling it "Elon Musk's GitHub alternative." Musk has not personally announced a git forge, and there is no xAI-branded GitHub competitor — if you have seen that claim, this is what it traces back to.

The Cursor Origin landing page, showing the Origin cube logo and the headline 'A git forge for the agentic era' over a blue and orange gradient landscape, with the line 'Early beta now available on all paid plans'
Origin's positioning, in its own words. Screenshot: our own capture of cursor.com/origin.

The positioning is explicit:

A git forge for the agentic era. Code is moving faster than any infrastructure was built to handle. Origin was designed for this moment.

What it does today: repositories, pull requests, reviews, merges and CI connections, hosted by Cursor and surfaced inside the Cursor client and CLI. You can clone locally, add an Origin remote and push from the command line like any other host. Existing GitHub repositories sync in and sit alongside Origin-hosted ones, with GitHub remaining the source of truth for projects that started there — a deliberately low-commitment on-ramp. It ships with connectors for Vercel, Buildkite and Depot, and supports both desktop-hosted and cloud-sandbox agents. It is in early beta on all paid plans, on by default, with an Enterprise admin opt-out.

The thesis is the interesting bit, and GitHub's own outage postmortem is the evidence for it: an agent opens branches, edits dozens of files, opens pull requests, responds to review and iterates at a frequency no human team generates. If commits really are doubling every four months, the forge is now a machine-scale system with a human UI bolted on. It is the same pressure that pushed teams toward open-weight models they can run themselves — when volume is the constraint, where the work executes stops being an afterthought. Origin's bet is that this warrants a rebuild rather than a capacity increase.

The obvious caution: Origin is early beta, it is proprietary, it is bound to a specific editor, and it is now owned by a company whose priorities are set by Elon Musk. Moving off GitHub to escape platform risk and landing here is not a reduction in platform risk. It is a change of landlord.

Two answers to the same question

Put the two side by side and the industry's fork in the road is unusually legible.

CodebergCursor Origin
OwnerCodeberg e.V., member-governed non-profitCursor, a SpaceX subsidiary
Funding~1,700 members at €24+/yr, donations$60B acquisition, paid Cursor plans
SoftwareForgejo — open source, self-hostableProprietary, hosted
LocationBerlin; servers under its own controlVendor-operated cloud
Stance on AI agentsMembers voted to restrict LLM-generated projects; no training on your dataBuilt specifically for agent-scale load
MaturitySix years, 678k projectsEarly beta, five days old
Exit pathTake your Forgejo instance and goSync back to GitHub

Both are reacting to the same fact — AI coding agents have broken the assumptions a git forge was built on. Codeberg's members voted to defend the commons from that load. Cursor raised $60 billion of SpaceX stock to serve it.

Neither is wrong. They are serving different users, and it is worth being honest about which one you are.

Should you move?

For most commercial engineering teams the answer is no, and Codeberg would be the first to say so — it does not host proprietary work, and asking it to would be asking a donation-funded non-profit to subsidise your business.

Codeberg is a strong fit if:

  • Your project is genuinely free/open-source and licensed as such
  • European hosting, no tracking and no data monetisation are requirements, not preferences
  • Your CI needs are modest and linux/amd64 covers them
  • You want a governance model you can join and vote in for €24 a year
  • You value a credible exit — self-hosted Forgejo — over platform features

Stay on GitHub, or self-host, if:

  • The code is proprietary (Codeberg's rules simply exclude you)
  • You depend on the Actions marketplace, hosted macOS/Windows runners, or Copilot in-platform
  • GitHub Sponsors is meaningful income — Zig gave up $170k+/yr and knew it
  • Discoverability matters commercially; the network effect is real and it does not move with you
  • You need a support contract with an SLA behind it

The third path — the one GNOME, Apache and now Tenacity took — is self-hosting Forgejo. It gives you the same software Codeberg runs, on infrastructure you control, with no licence restrictions and no shared-quota etiquette. It also gives you a pager. For a team already running Kubernetes or a handful of VMs, that is a smaller step than it sounds, and it is the version of "leaving GitHub" that survives contact with a compliance review. Where that decision sits inside a wider platform strategy is exactly the kind of call a fractional CTO is there to make with you.

Moving in an afternoon

If you want to try it without betting the project:

  1. Register at codeberg.org and add your SSH key.
  2. Migrate one real, small repository using New Migration — issues, labels, wiki, releases and milestones included. Delete the access token afterwards.
  3. Confirm your licence is present and recognised. This is a rule, not a nicety.
  4. Point CI at it. Try Forgejo Actions first if you have existing workflows; file a Woodpecker request if you need the hosted instance.
  5. Reverse your mirror. Make Codeberg the source of truth and push a read-only mirror to GitHub. Pulling a mirror from GitHub is not allowed, and getting this backwards is the most common way a Codeberg migration stalls.
  6. Join, if you stay. €24 a year is the entire business model. Six years of it is what got the platform to 678,000 projects.

Then leave it for a month and see whether anyone on your team notices. That is the only benchmark that has ever meant anything.

Frequently asked questions

What is Codeberg? Codeberg is a free Git hosting platform run by Codeberg e.V., a registered non-profit association based in Berlin, Germany. It describes itself as "a non-profit, community-led effort that provides services to free and open-source projects" and runs on Forgejo, the open-source forge software the same organisation stewards. It carries no advertising, no third-party cookies and no paid tiers.

Is Codeberg free to use? Yes. Hosting is free and there is no paid plan to upgrade to. Codeberg is funded by member contributions and donations — membership of Codeberg e.V. starts at €24 per year for individuals, €100 for legal entities, and €12 for a reduced rate on request. Membership is optional and is not required to use codeberg.org.

What software does Codeberg run on? Forgejo, a soft fork of Gitea created by Codeberg in December 2022 after a change in Gitea's governance. Forgejo stopped syncing changes from Gitea in February 2024 and is now developed independently under the Codeberg e.V. umbrella. Anyone can self-host Forgejo; codeberg.org is simply the instance Codeberg e.V. operates.

Can I put a private or commercial repository on Codeberg? Only within limits. Public content must carry a free/open-source licence or a public domain dedication such as CC0 or the Unlicense. Contributors to FOSS may keep up to 100 MB of private content for things like embargoed security patches. Proprietary and commercial projects are not supported, and paying does not buy an exemption — self-host Forgejo instead.

What are Codeberg's storage limits? You are asked to request approval before exceeding 750 MiB of Git storage, or 1.5 GiB across packages, LFS and attachments combined. Large CI resource use also needs a request first. Codeberg's own wording is that "there is no quota for valid use-cases" — the thresholds exist so volunteers can spot abuse, not to upsell you.

Does Codeberg have CI/CD like GitHub Actions? Two options, both opt-in. Woodpecker CI runs at ci.codeberg.org and requires filing an access request that a volunteer reviews; linux/amd64 is the sole build target and access is provided as-is. Forgejo Actions, which is broadly GitHub Actions-compatible, is offered in a limited open alpha.

Why did Zig leave GitHub for Codeberg? The Zig Software Foundation announced the move on 26 November 2025. Andrew Kelley cited a long-unresolved GitHub Actions bug — reported in April 2025, fixed in August, and left open until December — alongside a rising volume of AI-generated contributions that violated Zig's no-LLM policy, and Microsoft's AI direction for the platform. The move cost the foundation its GitHub Sponsors income, which had brought in more than $170,000 in 2024.

Is Cursor Origin a Codeberg competitor? Not really — they are opposite answers to the same problem. Origin launched on 17 August 2026 as "a git forge for the agentic era", built by Cursor, which SpaceX acquired for $60 billion in an all-stock deal that closed on 14 August. Origin is designed to absorb the load AI agents put on a forge. Codeberg's members voted in July 2026 to restrict LLM-generated projects and to never train on user data. One forge is being rebuilt for agents; the other is defending itself from them.

Should my company move off GitHub? For most commercial teams, no — and Codeberg explicitly does not host proprietary work. The realistic options are self-hosting Forgejo or GitLab, or accepting GitHub's reliability record as a cost of its network effects. Codeberg is the right destination for open-source projects that want European hosting, no vendor lock-in and a governance model they can vote in.

Weighing a forge migration, or wondering what agent-scale development does to your delivery pipeline? We help engineering teams make platform decisions that survive a compliance review — and build the CI/CD to back them up. Book a Free Strategy Call ** →


Sources: Codeberg.org · What is Codeberg? — Codeberg Docs · Codeberg FAQ · Codeberg CI docs · Migrating repos — Codeberg Docs · Protecting our FLOSS commons from LLMs — Codeberg Blog · Codeberg's Budget of 2026 · Join Codeberg e.V. · Forgejo · The August 17 outage, and the work ahead — GitHub Blog · Ghostty is Leaving GitHub — Mitchell Hashimoto · Zig project ditches GitHub for Codeberg — DevClass · Cursor Origin · Cursor launches Origin — SiliconANGLE · Why developers are ditching GitHub — How-To Geek

Have a technology decision to make?

Book a free 30-minute strategy call — no pitch, just a straight conversation.