If you've visited my geminispace (gemini://g.wilw.dev) you'll have noticed that I've recently been on a mission to decentralise the every-day tools and services I use, and will understand the reasons why. This post will likely become part of a series of posts in which I talk about taking control and responsibility for my own data.
One of the changes I've made more recently is to move many of my own personal projects (including the source for this site) over to a self-hosted Gitea service. I chose Gitea personally, but there are many other self-hosted solutions available (see this post for examples and comparisons).
The "problem" with GitHub
I've been a GitHub member for as long as I can remember, and will continue to be so and actively use it in my more professional work and when contributing to other projects. However, I don't think I'm alone in that athough I try and develop things in the public and keep many home projects open-source, I usually don't do it with the intention of receiving contributions from others. The discoverability on GitHub is great (though some may argue that its size means that things can get a bit "diluted"), but many of the projects I develop are for my own use - and while anyone is free to take the code and use it as they want, the powerful tools offered by GitHub (and other centralised services) just never get used for these types of projects.
The other thing is that GitHub seems to have gradually become the LinkedIn of the software world, and many people use it as the basis of their CV or portfolio. This is great as it allows other people and potential employers to get an idea of the kinds of things a developer works on, coding style, and so on, but there's always a certain feel of pressure (or sometimes subconscious competitiveness) that people on any socially-focused platforms might get.
When Twitter introduced their Fleets feature they mentioned that one of the motivators behind the project is that they understand that some people get a fear of posting tweets when things feel so public. I've seen the same thing with GitHub in that people feel put-off contributing or publishing their own work in public repositories "in case someone sees" - is this a barrier to entry for more introverted developers? Inversely, re-engagement mechanisms - like the contributions graph on each user's profile - may make developers just publish for the sake of it.
None of these things are necessarily problems or wrong (private repos are always an option, for example), but these days it just feels more appropriate to be responsible for your own data as much as possible - especially when not making the most of what alternatives can provide you with, and it's always good to use and encourage alternative options so that one service doesn't become the expected norm.
My experience so far
Since migrating many projects over to the smaller "world" that is my own git server, I get the feel that things are slower (in a good way) and I have been spending more time curating projects and working on the things I actually want to work on (though many are still private "for now"!).
If you're interested in trying your own self-hosted Gitea server, then it's pretty straight forward if you have a VPS (I just used the official Docker images, for which there are instructions in the documentation).
To move existing repositories over it's as simple as changing the
remote (or adding a new one) in your local git configuration for the project and then re-pushing. Gitea also includes a migration service to automatically pull repositories through, and can also be set-up to mirror other remote repos.
In terms of performance, I've found it quick to use and navigate (certainly faster than GitHub's web interface) on a $10 VPS from Linode that I had anyway and on which I host many other services too.
It's definitely worth a try if this is something you're interested in. Let me know how you get on.