Skip to content

Why ngit?

Centralised Git forges work great. Until they don't.

When a forge has an outage, changes its terms, blocks access, or simply stops fitting a project, reacting quickly can be painful. Git makes the source code portable, but identities, pull requests, issues, releases, and links often stay behind. The result is frequently replacing one centralised Git forge with another.

Keep the project, change the provider

ngit removes the forge as the single authority for a project:

  • maintainers sign repository refs, such as main and release tags;
  • refs and collaboration events are replicated across Nostr relays; and
  • Git objects live on ordinary Git servers, which become interchangeable storage providers.

That means a maintainer can use hosted and self-hosted services together, add redundancy before it is needed, and change providers without asking the whole community to move to a new platform. Contributors still use familiar Git commands through a stable nostr:// repository URL.

ngit does not make infrastructure or trust disappear. Relays and Git servers still need to run, and maintainers must protect their signing keys. It makes those services replaceable, so the project does not have to fail when any one of them does. Using several providers improves availability and keeps backup copies of the repository on independent services.

Choose tools, not a platform

ngit is one implementation of shared protocols, not the centre of a product suite. Independent command-line, desktop, web, community, and AI-assisted clients can work with the same GitNostr repositories. GRASP also has multiple server implementations.

That separation is part of the resilience. A project can replace an interface or a hosting service without waiting for one vendor, migrating into another closed platform, or abandoning its identity and collaboration history. See Grasp Awesome for a tour of the current tools.

Next