Show HN: I created a cross-platform GUI for the JJ VCS (Git compatible)
judojj.comPersonally, I think the JJ VCS (https://github.com/jj-vcs/jj) hit a point some time in this past year where I find it hard to find a great reason to continue using git. Over the years I've cobbled together aliases and bash functions to try to improve my git workflow, but after using jj, which works with ~any git repo and integrates great with Github repos, all of the workflow issues I ran into with git are not only solved, but improved in ways I couldn't manage with simple scripts.
One example is the op log, which lets you go to any point in your repo's time and provides simple undo and redo commands when you want to back out of a merge, didn't mean to rebase, etc.
Because I have a pretty strong conviction that JJ is at this point a cleaner and more powerful version of git, my hopes are that it continues to grow. With that, it seemed a proper full-featured GUI was missing for the VCS. There's some plugins that add some integration into VS Code, and there's one in the works to get Intellij support working, but many of the constructs JJ provides in my opinion necessitate a grounds-up build of a GUI around how JJ works.
Right now, Judo for JJ is an MVP in an open beta. I did my best to support all of the core functionality one would need, though there's many nice-to-haves that I am going to add, like native merge support, native splitting, etc. Most of this will be based on feedback from the Beta.
I'm really grateful for the great community JJ has built, alongside the HN community itself in the countless VCS-based posts I've read over the years, and am hoping for lots of input here during Beta under real usage - the goal is to be a full-featured desktop GUI for the VCS, similar to many of the great products that are out there for git.
Thanks for working on this project!
It was mentioned on the JJ Discord server that there doesn't seem to be any information available about who you are. Especially since the project seems to be closed-source, perhaps you could share some information about who you are in order to build trust.
I hope you understand. I think users may hesitate to download and install the application without knowing anything about its publisher.
Totally understandable! I'm a solo dev out of LA who's mostly consulted on various apps and sites over the years, and out of my own personal need I began working on the project earlier this year.
The project is indeed closed-source. Personally I've had experiences where I found the project moved forward towards the roadmap much faster - specifically when considering smaller-scale projects that are UI heavy and therefore take in many UI changes in parallel - when I instead implemented feature requests and focused most of my energy on listening to user feedback rather than reviewing code. UI polish can be quite tricky when it comes from many sources :)
That said, nothing is set in stone! If at some point there are enough feature requests to where I am the bottleneck, this is something I would revisit.
I'd be happy to hop on the Discord as well!
You can make the code open source without accepting pull requests or contributions from other people. You might still get pull requests or patches, but you can set expectations up front and then ignore/auto-close any contributions you get.
This is how SQLite is developed, for example.
More power to you! I bought Sublime Merge. I'd consider buying yours once it has a little more history. I've been using gg and really miss a side-by-side diff view. Maybe that makes less sense with jj though
That's their choice, don't try to pressure them to self-dox. What is wrong with you / the "JJ Discord server"? Please identify yourself and everyone there so I can be sure to up my paranoia around each of you.
I think you misunderstood. I didn't ask for their name. Luckily the author didn't seem to misunderstand.
As for information about me, you can search the internet for my username. Let me know if you don't find anything and I can try to help. I'm not going to share information about others on the Discord server.
The post also mentions this is only a problem because of closed source, I think "I want to keep my government identity private, but here's the source code" would be a fair compromise.
If one wants to be extra "there's nothing up my sleeve" they could also publish instructions for how to do reproducible builds for the compiled artifacts (which does require publishing the source code however).
Nobody is pressuring anyone. GP is free to ask and OP is free to decline.
This looks great though I like TUIs more. I’ve been using https://github.com/idursun/jjui for the last few months, I highly recommend it if you are a TUI person like me.
Yeah the TUI ecosystem is much more built out than GUIs for JJ so far. TUIs are great too - over time I've personally found myself ~50% in the CLI and ~50% in some sort of GUI, but a TUI can fill both gaps pretty nicely. I have always hated viewing diffs in the terminal though.
jjui is amazing, sometimes I feel like I shouldn't rely on it so much so I learn the CLI, but it's just so useful!
Since no one has asked. What is the tech stack?
From the Discord:
> It's a compose multiplatform[1] app, and it's templated-output-parsed rather than Rust-based.
[1]: https://www.jetbrains.com/compose-multiplatform/
interesting, would love to read more about the experience of using compose multiplatform for this
It was really great! The thing is, kind of like the Flutter ecosystem, it's as good as its third party libraries. This app is mostly a very advanced UI on top of the CLI with not a whole lot else - I think maybe the only 3rd party library I'm using is the file picker. But for other apps that might have more complex use cases there may be more of a struggle there.
The framework itself is great.
thanks! I'll have to play with it sometime, didn't find flutter that great on non-mobile platforms.
FWIW, there's another jujutsu GUI called judo:
https://github.com/schwa/judo
I haven't managed to try this because the "select repo" does nothing on Ubuntu 24.04. It doesn't seem I can actually perform any action at all.
Odd okay, I got a separate report on Linux that the app crashes on startup. So for you, it launches fine, but the Select a repo button does nothing? This may sound weird, but have you waited ~1min to see if a file picker pops up?
Hm no, I didn't wait that long. Yep, no element did anything, it was as if the whole window were just an image, with no element responding to any sort of input.
Looks neat, have you considered releasing an AppImage for wider Linux support?
Yes, definitely looking into this! What Linux distro are you running?
This looks great! Excited to try out out and play with it!
not to be that annoying guy, but does anyone have a nix flake for this xD ?
Awesome would love to follow this journey
I wish this was open source. Even if you kept comments etc disabled.
Or if you shipped the source code alongside the binary. Or just had a zip of the source.
This is so cool. Man I need to find another line of work there are too many cracked devs out there
There are a lot of new use cases for VCSes with AI around.
It's difficult to go back to a separate VCS app after using IDE git support (specifically VSCode & the 'git graph' extension which is sadly permanently abandoned).
I think there’s a JJ vscode plugin
VS Code now has an OKish git graph built-in, in case you didn't know. This feature is a few months old.
Yeah I did but it's merely OKish as you said. Git Graph is still significantly better.
I'm confused -- what would you be going back from, given your preferred VSCode extension is abandoned?
Even though it's abandoned it still works perfectly fine and I still use it.
Doesn't that make it "complete" as opposed to "abandoned"?
Everything does not need constant updates and new features.
No, because there are features that would still be useful for it to have. See for yourself:
https://github.com/mhutchie/vscode-git-graph/pulls
give "git lens" a try.
Yeah I've used it for a long time but not for its commit graph feature, which still isn't as nice as Git Graph. Actually the main feature I used it for was "Compare working tree with <commit>" which gives you a nice "what have I changed overall" view but one where the files are editable still in the diff view.
However I found this better extension for that: https://marketplace.visualstudio.com/items?itemName=letmaik....
So I don't really need Git Lens any more, which is good because they've made it all commercial and annoying.
[dead]
[dead]
Nitpick: "judo" and "jujutsu" are already heavily used terms. Googling around for information about this, at least for me, is pretty difficult. Judo is an international olympic sport, jujutsu is one of the most famous traditional japanese martial arts, jiu jitsu is the most popular submission base for MMA...
I'd love a rebrand or rename in order to avoid having to work around the name collision.
Best of luck!
"JudoJJ" is quite distinct and searchable imo
Yeah I'm actually flip flopping between "Judo for JJ" and "JudoJJ"...