Mr. 4th's Alternatives

There are a lot of forces in the world pushing us to use technology controlled by a few powerful corporations. Their products make trade-offs that sacrifice our freedom to compute.
But switching off of Facebook, Google, Amazon, Microsoft, Apple, or any of the lesser lords of technology is difficult. It takes time and research to find and switch to an alternative. Even if you do make the switch, it doesn't always mean you will be better off. From a certain kind of engineering perspective there may be no argument for using an alternative.
Despite all of that, this is my alternatives page. A page dedicated to spreading the word about alternative technologies that I encourage you to use. Even with all the draw backs I have acknowledged, I still believe it is important to share alternatives for a couple of reasons.
First and foremost an alternatives page helps to FREE you from being a captive user, and I believe that you deserve that freedom. The criteria for my alternatives is that they increase your ownership of data and computation. They offer you a chance to make a trade-off in favor of your personal agency — If you value personal agency, but haven't integrated that value into your "engineering mode", I encourage you to think about integrating it now.
Second, bringing more users to alternative technologies advances the process of iteration and improvement. Developers have more insentive to maintain and improve technology when it has more users. With more users, new developers can more easily discover and contribute to the technology, or find inspiration to compete. All around, as the general understanding of a technology grows, everyone using the technology benefits together.

Alternative to GitHub

July 21st 2022
With the rise of GitHub Copilot, it is clear that if you put your code on GitHub, Microsoft does not think that you own that code. At best they think it is code that you co-own with Microsoft. Ryan Fleury explains the situation in great detail in his post The Gullible Software Altruist
Therefore I recommend the following alternative way to host a git repository. This is how I am hosting my code now! Thanks to Abner Coimbre for recommending this setup and helping me learn it!
  1. Get a server. Pay for a hosting service, or go the hard core route and stand up your own server machine. I have had a good experience with a Digital Ocrean Ubuntu droplet.
  2. Get ready to setup Gitea. Gitea is the git server I am recommending, first you will need to setup a database. I followed the instructions for setting up MySQL for gitea here: Gitea Database Preperation
  3. Now setup Gitea. Gitea is a git server that looks and feels a lot like GitHub once it is setup, except you are the admin for the whole site. The instructions for installing from a binary are extremely thorough and easy to follow: Gitea Installation from Binary
  4. Now setup Caddyserver. Caddy is the simplest web server I have ever setup.
  5. Get a domain name. (optional) Your server has an ip address, you can just type that into the browser and into git, but if you use a domain name to point to your server, you will make it easier to migrate your server in the future.
  6. Create a Caddyfile: /etc/caddy/Caddyfile. The Caddyfile can be setup to map a subdomain to your git server with something like this: { reverse_proxy localhost:3000 }
  7. Don't forget to configure your git server! I didn't realize this but by default my git server was setup so that anyone who found it could create an account, repositories, etc. Some of the site can be configured from /etc/gitea/app.ini and some of it can be configured from an admin panel.
I am the last person you will ever find diving into web technologies — I mean my website is plain HTML! But I worked my way through the setup of all of the above technologies in just a few days, and found the instructions easy to follow. Hopefully my outline helps you move through the process even easier, but if you do have any questions feel free to reach out to me at I am no expert in all the things that might go wrong, but I am happy to answer questions if I can.
Ryan Fleury's post The Gullible Software Altruist also lays out this particular alternative, except in more detail in some areas. So you might find that helpful too.