Considering fossil instead of git
written on 2026-05-05
Recently there has been a lot of negative press around GitHub.
- Ghostty Is Leaving GitHub
- An update on GitHub availability
- GitHub is having issues now
- Before GitHub
- GitHub Copilot is moving to usage-based billing
- Ghostty Is Leaving GitHub (additional article)
Sure, these articles are a small subset of the "programming" community, but it was still enough to get me to dive down a rabbit-hole.
I've used git and GitHub for years without any thought. It's just what you use. I picked it up in school, learned some good workflows, but I've never really considered what git is actually giving me. I've never looked into alternatives (I've heard of jujutsu, I didn't find it compelling enough to switch). What does git do for someone who is mostly a solo developer building in silence? Do other tools actually exist. I understand that git is not GitHub... but why stop at GitHub if I'm re-thinking my development practice around backups and private repositories.
In the reaction to these articles I've seen people recommend switching to GitLab, Tangled, or self-hosting something like Gitea. These give you things like issue trackers, social communities, pull requests, and a bunch of nice features on top of git. But I'm not really using them. All I really want is a todo list, commit history, issue tracker if I ever make something public, and some other statistics about my projects.
When reading through more and more comments (a completely healthy habit...) I read few comments about a tool called fossil. A single binary using sqlite to track commit history, project management, and easy self-hosting. SQLite itself actually uses fossil.
I am going to give fossil an honest try. I like to explore and I've been looking for a project. The rest of this post will mostly be the steps I took to set it up and eventually some thoughts on what I like or dislike about it.
Installing Fossil
You can grab the latest source / binaries from https://fossil-scm.org/home/uv/download.html. Once downloaded and either built, you should add the fossil binary to your path.
First project
It's recommended to keep your fossil databases separate from your
actual project locations. I decided to put my first database at
~/fossil/hello-world.fossil and keep my project at
~/projects/hello-world/. To do this I ran the
following:
mkdir ~/fossil/
cd ~/fossil/
fossil init hello-world.fossil
mkdir -p ~/projects/hello-world
cd ~/projects/hello-world
fossil open ~/fossil/hello-world.fossil
You should now have a blank fossil project! Let's create a file and save it as hello.txt
Now we can add this file to our project.
fossil add hello.txt
fossil commit -m "hello"
This file is now permanently added. Every time we commit any
changes to this file will automatically be recorded. We don't need
to do a fossil add every time like git.
I think from this point I will have to revisit this post in the future to truly give it a fair chance. You can see if my fossil server is still running at fossil.nomatoko.com