This is a topic inviting ideas and participation in defining and building a Safe-git UI.
All are welcome, I have outlined an approach which like everything will be open to debate and change. I’d like to start with something simple and extend that incrementally, so have proposed something based on spawning
git commands, along with a new CLI (to be written) called
gx to add support for github style functionality (e.g. github issues), but without a server.
You can contribute general points here, or for more specific discussions, open an issue on the github repo: safenetwork-gitportal
Safe-git UI Vision
github/gitlab/gitea like GUI
Possibly a Tauri based Rust backend with web frontend, e.g. using Svelte:
- operates on a local repo
- spawns git commands
- a new
gxCLI to create issues, comments etc (e.g. stored in
- data for extas held in the repo (e.g.
issues/issue-001.json, or perhaps in RDF/turtle)
git push/pullremotes on Safe (e.g. via FUSE mounted Safe filesyste)
- cross platform GUI: Windows, MacOS and Linux (e.g. using Tauri)
- cross platform terminal UI: Windows, MacOS and Linux (e.g. using tui-rs)
- web UI for mobile (e.g. static HTML hosted on Safe Network)
Discussions to Have
Existing git UIs
There are many graphical, web and terminal UIs for
git, so these may be adapted or learned from.
Which should we look at and why? If you know any well your input would be very helpful.
gx is a new CLI we need to create that adds features not handled by git, such as github issues.
gxbased features must work in a way which allows a GUI to support them by spawning
gxcommands. Doing so enables anyone to operate using the CLI, or to build their own Safe-git UI with the tools of their choice.
gxadds something based on a github feature, it should also provide a way to import this from a github repo using the github APIs.
what features do we want, and what difficulties do they present?
How to store and publish
Note that Safe has a built in perpetual history for public data which negates the need for
.gitex to be part of the repo’s
git history. But then we need a way for third parties to create issues in a way that makes them accessible to everyone interested in a git repository published on Safe.
I’m keen to try out Tauri and Svelte at least for proof of concept, but if we define the underlying data storage and structures for
gx, anyone will be able to build a GUI with the tools of their choice (e.g. spawning
So you can build your own Safe-git UI tools while collaborating on a platform we can create and extend together.
Update - Current Status
I’ve been looking at an existing tool,
git-bug which adds support for issues tracking to a
git repo without polluting your commit history. It’s very nice!
git-bug in the browser, it may be possible to host a github like portal as a Safe web app, which along with the
git command lines gives us a complete alternative to github which I’m sure others will want to use and extend.
I had a good chat with author of
git-bug to understand his project and see how we might assist each other, and have already had two offers of help from the Mastodon community. There’s a lot of interest in a github alternative there, along with decentralisation and open source, so all this is very encouraging.
git-bug is written in Golang, so currently I’m investigating use of Golang -> wasm in the browser, and how to shoehorn
git-bug into a
For more see this post and the posts which follow it: