Technical note

GitHub is the public square. Gitea is the private workshop.

I do not want to argue about which Git platform is best. That is usually the wrong question.

GitHub is good for visibility. Recruiters know it. Clients know it. Open-source projects live there. If I want a project to be easy to find, GitHub is still the obvious place to put it.

But not every repo needs to be public. Some work is messy. Some work is private. Some work belongs in a place where I can experiment without thinking about audience, optics, or whether a half-finished branch makes me look disorganized.

That is where a private forge makes sense. For me, Gitea is the workshop: private experiments, home infrastructure, internal docs, client-sensitive work, automation scripts, and projects that are not ready for public eyes yet.

The split I like

GitHub

Public proof, open-source visibility, portfolio repos, and projects I want other people to discover.

GitLab

CI/CD practice, DevOps learning, and selected mirrors when GitLab-specific workflows matter.

Gitea

Private source of truth for experiments, local infrastructure, operational docs, and work that should stay under my control.

Why this matters

A lot of people treat their Git platform as a brand decision. I think it is more useful to treat it as an operating decision.

Public work needs distribution. Private work needs control. Client work needs boundaries. Infrastructure work needs a reliable place to keep notes, runbooks, configs, and history without leaking details that should never be public.

This is also good DevOps practice. Running a private forge forces you to think about backups, access, upgrades, logs, network exposure, SSH keys, documentation, and recovery. Those are the boring parts, but the boring parts are usually where real operations live.

What I am building

My current setup is moving toward a local-first command center: private Git, structured service docs, runbooks, monitoring notes, and public-safe mirrors when something becomes useful as proof of work.

The goal is not to self-host everything for the sake of it. The goal is to know where my work lives, how it is backed up, how it can be recovered, and what is safe to show publicly.

The rule

Use GitHub when distribution matters. Use GitLab when the DevOps workflow matters. Use a private forge when control and privacy matter.

The tool is not the point. The workflow is.