I use Git a lot
In my occupation as a developer, Git is one of the tools that are most central to how I get stuff done. Git is essentially a command-line tool. I’ve been a fan of the command line ever since I got into computers. I was quite the Linux fan back in my youth, while at the same time very much into pretty graphical interfaces. I kept hoping this year would be The Year of Linux on the Desktop for years. Until I discovered Mac OS X. An outstanding GUI on top of proper Unix, oh my! 🤩 I was sold.
Anyway, circling back to the command line: I always keep a terminal window open for Git. On there, I pull, and I push, I merge, and I rebase, I stash and pop. However, there are some things I do not like to do from the command line, like browsing, diffing, and committing. I use a GUI Git app for such tasks. I’ve used many Git apps over the years, and I have issues with most. Either they are built using the wrong mental model for my workflow, or they are just plain ugly.
There is, however, one Git app that I love. An ancient app. Built and abandoned more than a decade ago. Its name is GitX. Many developers still swear by it to this day. It lets me accomplish those more visual parts of source code management cleanly and effectively while mainly staying out of the way. It has a commit compose view, superior to any other Git client I’ve used to date. GitX is fast, minimal, and efficient.
I’m not the type of developer who’ll make three unrelated changes to a file and commit them together. I like to select each change, split it up, stage hunks, and compose my commits. Many modern Git clients don’t encourage this behavior at all. Often there’s just a checkbox to stage all changes at once. GitX is not perfect, though. It has its problems, but I know exactly how I would solve them; plus, I have a laundry list of features I wish Git clients had.
One perceived “valid” reason for crafting a piece of software is when you can scratch your own itch. I did that only vicariously with my other side project, Leksa. But really, though, that app is laser-focused on solving a specific problem when doing homework with my son, who struggles with dyslexia. The problem it solves has become less of an issue post-Covid-19 because most of his assignments can now be done digitally. The app does what it says on the tin, and we still use it, but not as much as before.
So, my next project should be something for me. I have this old truism I keep parroting; that the very best apps are the ones that solve real problems for their creators. So, I’m going with that one. I rely on this old, 10+ years abandoned tool to get my work done daily. If I can pull this off, I’ll be building a tool for myself that I’ll use every day. I’ll even be using this tool to make the tool itself. I should bump into every problem with it, which feels like the recipe for something remarkable.
So, I’m building a macOS Git client, and I’m making it for myself. If you’ve read all the way through to here, I feel there’s a chance you’ll like it too.