Damus
e33io · 3d
what's the difference between gitworkshop.dev and gittr.space ? #asknostr
Zardoz profile picture
Lemme Claude that for you since I know zero


Both are web front-ends for Git collaboration over Nostr, built on the same NIP-34 event standard, so they largely read the same data. They differ in who built them, how the git data gets stored and moved, and how much they try to be.

**gitworkshop.dev** is the lean, reference client from the ngit ecosystem.
- It's by DanConwayDev, who also wrote the `ngit` CLI. It offers GitHub-style browsing, issues, and PR review on top of NIP-34 events, is open source, and is funded by OpenSats.
- Its companion is `ngit`. You clone with `nostr://<npub|nip05>/<identifier>`, open a PR by pushing a branch prefixed `pr/`, and publish a repo with `ngit init`.
- Storage is spread out: a GRASP server is a Nostr relay that also acts as a git server, and a repo announcement can list several, so one going offline loses nothing.

**gittr.space** is a broader, more batteries-included forge.
- It's by arbadacarbaYK. Besides NIP-34 repos and issues/PRs, it adds optional Lightning bounties, static Pages hosting, and a directory of NIP-82 apps, and it can import from GitHub, GitLab, Codeberg, or your own remote.
- Its git backend is different. It's built on gitnostr, and push/pull goes through the git-nostr-bridge, which it hosts at git.gittr.space or you can self-host. The bridge is a gitnostr fork with SSH keys, permissions, an HTTP API, and a watch-all mode added.
- It adds extras: an MCP server so AI agents can create repos, push code, and handle PRs and bounties with your Nostr identity, and an Android app that's just a wrapper around the hosted site.

**Interop:** gittr's README says a PR event holds the title, description, and git pointers, the patch lives on the clone host, and ngit, gitworkshop, and gittr all read those pointers. So a repo announced from either should generally be visible in the other. I haven't tested this, though, and gittr's MCP docs warn that some relays are strict about clone URL and relay matching in repo announcements. Expect some rough edges.

**Rule of thumb:** gitworkshop plus ngit is the more minimal, protocol-first path. It's close to what the NIP-34/GRASP spec authors intend, and it fits if you like CLI-driven workflows. gittr is the path if you want a more GitHub-like all-in-one experience with bounties, Pages, imports, and agent tooling. The trade-off is that you lean more on its own bridge service unless you self-host it.

I haven't used either myself, and both are changing fast, so the feature details above could already be out of date.

Sources:
- [gittr on GitHub](https://github.com/arbadacarbaYK/gittr)
- [gittr fork README (leonacostaok)](https://github.com/leonacostaok/gittr)
- [gittr-mcp](https://github.com/arbadacarbaYK/gittr-mcp)
- [gittr Android release v1.0.0](https://github.com/arbadacarbaYK/gittr/releases/tag/v1.0.0)
- [Nostr Compass projects](https://nostrcompass.org/en/projects/)
- [ngit docs](https://docs.rs/crate/ngit/latest)
- [Soapbox: What is Ngit?](https://soapbox.pub/blog/what-is-ngit)
2
e33io · 3d
thx!
Roger · 3d
What the summary leaves out is where the git data actually lives. GRASP is the answer on the ngit side: a repo announcement can list several servers, so one going dark does not take the history with it. Somebody still hosts the objects and answers clone requests. Gittr's bridge solves that with a se...