Comparison with Gitea

Forgejo was created in October 2022 after a for profit company took over the Gitea project. It exists under the umbrella of a non-profit organization, Codeberg e.V. and is developed in the interest of the general public. In the year that followed, this difference in governance led to choices that made Forgejo significantly and durably different from Gitea. You will find below the most important reasons to choose Forgejo over Gitea. For an exhaustive comparison of software forges, the corresponding Wikidata project can be used as a reference.

Exclusively free software

Forgejo is exclusively using free/libre software for the development.

It is developed using Forgejo, tested and released using Forgejo Actions.

Gitea is developed on GitHub, tested and released using GitHub Actions.

Forgejo’s localization is done using Weblate.

Gitea’s localization is done using Crowdin.

Forgejo exclusively develops software and documentation published under Free Software licenses.

Gitea contribution policy requires a copyright assignment, even for MIT licensed code. It is Open Core and develops software that is not published under a Free Software license, such as features on top of the Gitea codebase or the stack running its SaaS offering.

Security

Forgejo focuses on identifying and fixing security vulnerabilities as soon as they are discovered. Third parties who have agreed to the Forgejo Security Policy are notified in advance via encrypted channels (e.g. Forgejo v1.20.5-1, Forgejo v1.20.5-0, Forgejo v1.18.2). Advance notice of security releases is available to everyone.

Gitea repeatedly makes choices that leave Gitea admins exposed to known vulnerabilities during extended periods of time. For instance Gitea spent resources to undergo a SOC2 security audit for its SaaS offering while critical vulnerabilities demanded a new release. Advance notice of security releases is for customers only.

Stability

Forgejo relies on end-to-end and upgrade tests. The upgrade tests were introduced to address an instability caused by a regression in the storage settings. Further, Forgejo uses browser tests to discover issues in the frontend code, including accessibility checks.

Gitea does not have end-to-end or upgrade tests that can verify the stability of a release. Storage could be misplaced as it was in the Gitea v1.20 series without raising an alarm. As of 13 December 2024, Gitea only has an example browser test, and no effort on expanding the test suite is visible.

In the interest of the general public

Forgejo sustainability depends on a healthy balance between paid staff and volunteers working on an equal footing. It is amicable to individuals and organizations being paid for their work, to provide services or custom developments. Because it is under the umbrella of Codeberg e.V. which is a non-profit organization, its priority is the interest of the general public.

Gitea is controlled by a for-profit company (via the ownership of the domain name and the trademark) which leads to decisions being made to maximize profit rather than favor the interest of the general public.

Focus on forge federation

Forgejo is working on implementing forge federation, with monthly progress reports.

To our knowledge (updated 13th December 2024), there is no work in Gitea regarding forge federation.

FAQ

This FAQ is on topics related to Forgejo and Gitea. There exists another, more general FAQ.

Why was Forgejo created?

In October 2022 the domains and trademark of Gitea were transferred to a for-profit company without knowledge or approval of the community. Despite writing an open letter, the takeover was later confirmed. Forgejo was created as an alternative providing a software forge whose governance further the interest of the general public.

Forgejo was initially presented as a “soft-fork” of Gitea, similar to LineageOS, a community led distribution based on Android from Google. It is however better described as a product built on top of Gitea, Git and hundreds of other Free Software projects.

Early 2024, the Forgejo became a “hard-fork” and its codebase began to diverge from Gitea.

Is there a list of features Forgejo has over Gitea?

No, there isn’t. Both Forgejo and Gitea are developed at a pace that would make such a comparison very hard to maintain.

You can compare the documentation (including blog posts) and release notes of both, to form an idea of what each can do for you.

Are migrations from Gitea to Forgejo possible?

See the answer in the general FAQ. In short, upgrading from Gitea releases prior to the hard fork are possible and supported. Upgrading from Gitea releases made after are not guaranteed.

Should I submit all my pull requests to Forgejo, or are there changes you’d rather prefer see submitted to Gitea?

If you want to contribute to Forgejo, you should submit all your pull requests to it directly.

While Forgejo contributors regularly check Gitea to cherry-pick from, that is always going to be slower than direct contributions, and there is no guarantee that a particular pull request made to Gitea will find its way to Forgejo.

Will my contributions to Forgejo get submitted to Gitea as PRs afterwards?

Most likely, no.

Does the Gitea project cherry-pick Forgejo commits?

No.

Will Forgejo stop being a 100% compatible drop-in replacement of Gitea?

Eventually, yes.

Will Forgejo become a hard fork of Gitea?

Forgejo became a hard fork in early 2024.

Why must I keep the binary name gitea on upgrade?

Because the gitea binary file name is referenced by an existing Gitea installation and would need to be replaced if Forgejo was installed as forgejo instead. It is the case, for instance, within the git hooks.

Using a symbolic link from gitea to forgejo makes it simple and convenient to use both names while preserving backward compatibility.