There’s an important part of the system that I’ve yet to embrace: where to host the source code for my projects? In a recent post about Plim I codified the need to post code early and often, but neglected to say where that would be. This is the rumination where I’ll try to answer that question…
◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
As with many of my ruminations, I’ll begin by explaining my situation to ChatGPT and seeing whether it comes back with a reasonable set of options.
My Instructions to ChatGPT
I currently have a number of projects on GitHub, but with a crop of new projects pending, I’m taking a moment to reassess whether GitHub is where I want the new ones to live. I’ve tried GitLab before, but it didn’t really click for me. What other public-facing git repo hosts are there for me to consider? Are any of them situated in Canada, or at least, outside the US? And is there a perceived reputation cost of going with any of these other hosts?
For your analysis, consider that my projects are all relatively small, single-developer apps written in Python. I have no need for constant integration, server-side building, or any of the other integration workflow tools. I’m primarily interested in a host that makes my ideas and code sketches accessible to others - either to learn from, experiment with, or fork for their own purposes. I’m open to getting code contributions from others, but I would want to hand off coordination duties to somebody else in the project community. I think my wheelhouse is in having the ideas and writing proof of concept sketches - not in coordinating the teams that might assemble around any one of them.
ChatGPT’s Response
Codeberg
The best fit for small public sketchbooks of code is Codeberg. It’s based in Germany, is GDPR-compliant, and uses Gitea (a clean, simple GitHub-style UI).
Supports:
-
Public browsing
-
Forks and pull requests
-
Can assign roles to others, such as a project maintainer
-
Lightweight issue tracking and wiki (optional)
-
No CI/CD bloat.
-
Ethical, non-profit, no ads or tracking.
-
Bonus: Their homepage actively positions themselves as “a place for open source code to be discovered and explored”.
Ideal if you’re looking to seed ideas without needing community infrastructure.
SourceHut
For power users who prefer simple tools and clean HTML. Focus is on efficiency, clarity, and long-term sustainability, not social features.
Supports:
-
Git repos
-
Patch-based contributions (not GitHub-style pull requests — more email-style)
-
Static pages, mailing lists, and scripting
-
Entirely open source, US-based but philosophically anti-corporate.
A great fit if you like minimalist, text-first tools and don’t mind being a bit off the beaten track.
Forgejo
-
Community fork of Gitea, with a strong focus on decentralization, user rights, and free software principles.
-
Self-hostable, but also available via some hosted Forgejo instances.
-
Still growing in visibility.
-
Looks and behaves much like GitHub but without the Microsoft baggage.
Forgejo is Codeberg-compatible, so if Codeberg ever shifts direction, Forgejo gives you a backup path.
Note About GitHub
If you choose to leave GitHub, consider mirroring your new host to GitHub with a “Read-only mirror – visit Codeberg for active version” notice in the README.
Recommendation
If you’re looking to shift away from GitHub and toward a more principled, minimal, non-intrusive home for your ideas, then Codeberg is the strongest match for your workflow and philosophy. It’s simple, European-hosted, and designed to let people browse, learn from, and fork small projects.
Jeff’s Impressions
Those all look like strong contenders. Codeberg seems to be a bit more mature in its growth arc, but SourceHut appeals to my “better living through command-lines” mentality. I’ll have to check them both out.
I’m also taking note of that bit about planning a read-only “project forwarding” message on GitHub for each project.
Later Update
After looking at them both, I’ve decided to roll with Codeberg. Mostly because it feels more familiar and seems to be pretty featureful and solid. But also because I haven’t completely closed the door on accepting pull requests from other contributors, which it handles in a more modern, git-ish way.