If I Could Make My Own GitHub
a day ago
- Current forges like GitHub, GitLab, and Gitea all follow the same pattern set by GitHub, with little connection to actual git usage; most workflows happen inside the forge rather than on the client.
- Git is designed for decentralized patch-based kernel development, but most users treat it as a centralized pull/push system, with forges handling identity, reviews, CI/CD, and releases.
- Pull request workflows have problems: commits often come in wrong order with fixes piling up; feedback should happen via pre-commit hooks run on the forge before pushing.
- PR approval is too binary; a 'weak approval' or 'deal with it later' option should exist, similar to Gerrit's model.
- PRs are too inflexible; not all changes need four eyes, especially with LLM assistance; maintainers and low-risk changes should bypass strict review.
- Stacked PRs should be a first-class feature, not an add-on, because they are easier to review and understand.
- A forge should not try to do everything; it should focus on core features like issue tracking and version control, not include kanban boards or wikis that become maintenance burdens.
- Hosting units should be smaller and more modular; an organization should be able to run a forge on a few Raspberry Pis without complex deployment.
- Local repo copies should represent the entire repository state (issues, PRs) and allow actions like approving PRs from the local VCS.
- Since online access is usually available, cloning should be shallow by default; deep history should be fetched on demand to reduce storage and bandwidth.
- Actions should be signed, SHA-pinned, and usable offline; users should be able to bundle them into the repo and update via Dependabot-like PRs.
- The ideal forge would use a modern VCS like JJ, integrate shallow clones and object storage, and be resilient to constant LLM bot traffic.
- Despite other tools existing piecemeal, no one has built a complete replacement for the deteriorating monolithic forge model; the author hopes to build one if they become wealthy.