Replying to Avatar fiatjaf

#[3]

I think the way this bounty is stated is put is not the ideal. I think most people will read this and think we need a big website that is just like GitHub but using Nostr somehow. I think that is not what we should see (and hopefully that's not what #[1] wants either).

What I would want to see are multiple apps that can interoperate and are able to perform separate functions:

- browse code

- comment on code (referenced by a commit)

- create issues and comment on issues

- send patches

- comment on patches

And how these should be done? I am not sure, but here's what I have in mind:

- most of the comment things should probably be kind:1 events, I don't know, with some extra tags (so they could be interacted with from the normal "social" Nostr clients? or not?)

- code should probably be hosted by standalone dedicated git servers -- and there could be centralized providers offering these services but they should interoperate seamlessly between themselves and with standalone personal servers

- sending patches should probably be done using something like this approach by #[0]: http://git.jb55.com/git-nostr-tools/file/README.txt.html

#[2] has opened a discussion on this topic on the NIPs repository that could possibly be used to coordinate the efforts: https://github.com/nostr-protocol/nips/pull/223

I think we could have multiple different smallish webapps, native apps and specially command-line tools that implement one or multiple of the separate functions described above, and with that we can achieve a much better result both in terms of quality and of decentralization than if someone or some big team decides to tackle the entire cake and come up with some centralizing architecture on their own.

here i wrote the specification for you of all the features that the command line needs:

https://cli.github.com/manual/

there's obviously no need for repo hosting, git is already decentralized enough, and part of the NIP could be to specify one or more repo URLS to use

Reply to this note

Please Login to reply.

Discussion

in fact, now that im thinking of it, the UX can imply sync across a set of git urls. that way you can clone any url in the set, make a fork, push it anywhere, submit a PR, reference a branch, include a comment and title, and that branch should be "assumed sync"

i think that's key to keeping it simple.