Software Recommendations

Increasingly more of our lives including work, education and entertainment are happening on computers and online. Most people have little to no control over the digital devices that they use, and this is not in their best interest. A computer which updates what it wants when it wants, installing whatever some faceless global corporation decides onto your computer should not be acceptable to anyone. Not just because this is a violation of your property on principle, but it makes it harder to get things done and it is not an enjoyable experience. If there is just one application on your computer which you are not allowed to uninstall then it is not truly your computer. You are more like a lessee or a serf. One way to understand the free software philosophy is with a food analogy. Some people don't care what is in the software they use and they also don't care what it is doing. What if someone was trying very hard to get you to eat something but they wouldn't tell you what was in the food. You would probably be suspicious.


When buying electronics, you should opt for hardware which is as open as possible. This can certainly be a challenge, because open hardware is not the default and it is often not an advertised feature. The reasons for open hardware are freedom and quality of life. What will you do if the smart TV you just bought won't let you watch DVDs anymore because you should subscribe to a streaming service? What if your smart TV starts showing you ads over the things you are already watching even if it is something you own? This is not hypothetical, Samsung, LG, Roku and Sony already do this. They are not hardware vendors anymore, in 2020 Toshiba made more money selling customer data gathered from smart TV's than they made from actually selling TV's. Vizio makes twice as much money by using 'smart' TVs to sell their customers' data than by selling televisions. On a brighter note, most laptops feature a bootloader that allows you to install another operating system, this is the bare minimum of hardware openness that you should ever accept for any computer. While a handful of android phones allow you to install a newer (or different) operating system, almost all of them do not or at least they make it very difficult. This makes them obsolete whenever the manufacturer says they are obsolete, forcing you to buy a new one. CONSOOM. The ability to install linux (or anything else) on your device saves you from this trap. The gold standard is a device which allows you to flash a new BIOS. There are several devices for which this is possible, the old thinkpads can have libreboot installed which is an open source bootloader that disables the Intel Management Engine. Intel Management Engine is malware on the CPU architecture level. Most modern CPUs have this or something very much like it (Platform Security Processor). An exception to this is uboot, which is an open source bootloader mostly found on ARM systems. Pine64 devices use the uboot bootloader on their pinebook and pinephone devices. The ultimate future for computing would be the maturity of something like riscv, a completely open source instruction set architecture. We are a long way away from this being a viable option for most people, however exciting progress continues to be made in this space. For example, SiFive makes a computer called the HiFive Unmatched which has impressive specifications. It sports a spunky 4 core CPU with 16GB RAM, gigabit ethernet, M.2 storage and the possibility of PCIe expansion. The most exciting feature is that schematics for the entire Mini-ITX machine are freely available. For now riscv is a development architecture, but it is easy to imagine running your daily driver machine on riscv in the coming years.

Operating System

If there is code running on your computer which you are not allowed to read, then you can not feel safe or secure in the system that you are using. This is because you do not know what the system is really doing. For this reason I recommend running an open source operating system as the first step to securing your freedom and privacy. This can be linux but doesn't have to be. A BSD distribution, Qubes, Haiku, ReactOS, ArcaOS, Hurd or any number of other operating systems will work for this purpose and respect your freedom. The reason I recommend linux is because it has the lowest barrier to entry. There are many linux distributions to choose from and all of them are a better choice than Mac, Windows, iOS or Android. If you don't know where to start, you can look here and there are many videos on the internet showing you how to boot and install an ISO. Most of them have feature rich graphical desktop environments and lower resource requirements than the proprietary software equivalents. KDE, XFCE and Gnome will use less RAM and CPU than Windows or MacOS and so installing linux can be seen as a way to extend the useful life of your devices. Contrary to what some may think, you don't need to know how to use a terminal to install and use linux. In fact, you don't need to know much of anything. If you do know how to use a shell terminal, you have a very powerful terminal available to you. It may be worth learning in order to use your computer in an efficient way and better understand what it is doing. Keep in mind that if you have never used a system like linux that it is a different system. To get the most out of it, you should adapt instead of doing things the way you are used to. Instead of going to some random website to download the program you need, the preferred way of installing software on Linux is using a package manager. You can think of the package manager as a software store for the operating system, except that it doesn't suck. Most commonly used software can be installed as a package from the repositories, curated by the package maintainers for your distribution. This is a very efficient way of installing software. You can install 100 pieces of software at the same time and each separate application can share dependencies. You usually have a graphical frontend (point and click) for the package manager, but everything can also be done from the command line.

Linux is a great option for x86 based computers like laptops, desktops and workstations. However, the device which collects the most information about you is the one which also has the fewest options. A handful of Android phones will allow you to run an open source userspace on top of libhybris, and this is dependent on Google libraries. Technically Android uses a 3 year old version of the linux kernel with a lot of proprietary Google software baked in. This does not mean that Android is Linux. To my knowledge if you want to run mainline linux on a smartphone, there are two devices which will work. These are the Librem 5, the Pinephone. (Sailfish on the Jolla phone gets an honorable mention however Sailfish OS is not completely open source, some components are proprietary and closed source such as hardware-specific kernel modules and other software licensed under commercial terms.) Sailfish has the advantage of being able to run Android apps, as do 'degoogled' ROMs such as CalyxOS and GrapheneOS. I can't recommend the Librem 5 at the price and feature list compared to the pinephone. I personally run a Pinephone and think it is a fantastic device, however it is not ready for mainstream use as the software ecosystem is very immature compared to that of proprietary smartphone options. The pinephone is easy to dissassemble and repair, and presently there are 20 different choices of operating system on the pinephone. I have had good experiences with manjaro arm and mobian on the pinephone. On the laptop/desktop, the experience is so much better on linux that it is not a sacrifice in the least.

Other Software

The next layer of independence you should have over your digital data is the application layer. Most distributions will bundle a group of applications together, such as kde, xfce or gnome. These are desktop user interfaces which run on top of the operating system. There are many choices including the before mentioned as well as mate, cinnamon, lxde, i3, dwm and many more. People argue over which desktop is best to use and I don't care which one you use. They each have their pros and cons. One of the most important things we do with computers is communicate with others. There is zero expectation of privacy for phone calls, SMS and MMS communications. Google reads your emails. You shouldn't say anything over these protocols that you would be upset being public knowledge. You may use a proprietary application such as Telegram or even Facebook Messenger to talk to people. This is a very bad idea. This software does not end to end encrypt your messages. The things you say are not private and could be leaked in a data breach at any time. Furthermore, your data will be used build an advertising profile to sell things to you at all times. All messages are being analyzed algorithmically at all times. If you have messenger installed so is location data, microphone, position, and accelerometer. Facebook is an advertising agency first, because that is the part of facebook that actually makes the money. The same is true for Google. Do not install proprietary code that was made by a marketing agency, don't use an operating system that was made by an advertising agency. These big tech firms were founded by the CIA with the In-Q-Tel project. Don't install that malware on your device. Surveillance is a tool of totalitarianism, and any time it has existed it has been used to crush dissidents. For years, the Communist Party of China has forced citizens to install mandatory malware and even arrested people for not using their phones enough. So why would you agree to be spied on for free when nobody is forcing you? Your communications should be carried out on an open source application with end to end encryption. Decentralized infrastructure is a good idea, but not as important as open source security and end to end encryption. Even though you probably won't read the source code, the fact that it is available for the community and the whole world to read makes it safer, because sunlight is the best disinfectant. The easiest way to get all these features is with matrix/element. There are other good options, xmpp is better in some ways but is far less user friendly. In order to gain mass adoption, a communications network needs to be as easy as downloading discord or telegram, and matrix is.