Updated the alternative platforms blog post (draft 2)

pull/3/head
gianmarco 2022-11-10 22:59:19 +01:00
parent 4c04d6b3be
commit 8a1a9a3870
6 changed files with 51 additions and 9 deletions

View File

@ -3,21 +3,21 @@ title: "Alternative platforms and why you should consider them"
description: I'll tell you how to be an internet chad and resist from Elon's and Mark's empires
thumbnail: "/blog/img/altplatforms.png"
date: 2022-11-06T20:31:34+01:00
tags: ["selfhosting", "free software", "bloat"]
tags: ["selfhosting", "free software", "fediverse"]
draft: true
---
Most people nowadays have a very limited view of the internet: they just watch content like posts, photos and videos from **the same 5 or 6 social networks owned by a few corporations** who filter the content to make people spend even more time on these sites, making them believe what they want you to believe and bombarding you with ads tailored to every single activity of yours, even on other websites, holding entire monopolies on the tech industry and the flow of information. Instant messaging happens all on either SMS or WhatsApp (more rarely on Telegram and Signal) which have **extreme privacy issues**, more specifically the first one for being an ancient unencrypted protocol and the second being yet another data honeypot for Meta.
But the internet has not always been like this, the good old internet (I'd say from the very early days up to the mid 2000's) was much different: everyone had **their own website**, all with a unique look and feel, style of content and complete freedom, but even with the rise of the early social networks and video sharing platforms like MySpace, Facebook and YouTube, there was so much more soul and uniqueness to what people uploaded on such sites. When it comes to messaging there were several options, such as email, BBS and IRC, which were (and still are) **decentralized, interoperable and not under control of one entity**, although that's also when early proprietary IM platforms such as AOL, MSN Messenger and Google Talk were created, and all of these protocols and platforms weren't exactly private since back then there was no real concept of online privacy.
But the internet has not always been like this, the good old internet (I'd say from the very early days up to the mid 2000's) was much different: everyone had **their own website**, all with a unique look and feel, style of content and complete freedom, but even with the rise of the early social networks and video sharing platforms like MySpace, Facebook and YouTube, there was so much more soul and uniqueness to what people uploaded on such sites. When it comes to messaging there were several options, such as email, BBS and IRC, which were (and still are) **decentralized, interoperable and not under control of one entity**, although that's also when early proprietary IM platforms such as AOL, MSN Messenger and Google Talk were created. However all of these protocols and platforms weren't exactly private since back then there was no real concept of online privacy and encryption, especially before stuff like the [Patriot Act](https://en.wikipedia.org/wiki/Patriot_Act) in 2001 and the [Snowden revelations](https://en.wikipedia.org/wiki/Edward_Snowden) in 2013.
![An oldschool site (wac.neocities.org), HexChat and Outlook Express 6](/blog/img/webircemail.png)
![An oldschool looking site (wac.neocities.org), HexChat and Outlook Express 6](/blog/img/webircemail.png)
Clearly the internet has evolved bringing us lots of interactivity and information, speedier and more accurately than ever, but the drawbacks of the **gradual corporate takeover of the web**, along with the fact that people nowadays are so illiterate about computing in general that [the youngest ones don't even know what files and folders are](https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z), that has happened in the last few decades are enough for me to say that we should stop for a moment and **look back at what we've lost**, so that we can take those old concepts to rebase, or in some cases even replace, what we dislike about the modern web in order to improve it.
# Build your own website
Doesn't matter if it's a simple HTML page with a few links and no CSS, or if it's a beautiful piece of web design art, having **your own little place on the internet** is crucial to stay away from the influence of big corporations and have the ability to do whatever you want.
Doesn't matter if it's a simple HTML page with a few links and no CSS, or if it's a beautiful piece of web design art, having **your own little place on the internet** is crucial to stay away from the influence of big corporations and to have the ability to do whatever you want.
![My website VS motherfuckingwebsite.com](/blog/img/coolvssimplesite.png)
@ -27,7 +27,7 @@ In order to do this we have two questions to answer to.
### Write in bare HTML
This is the most direct way to create a webpage, you just write plain HTML on a blank file and start building from there, even though using a template is also a good way to start learning. This isn't the most convenient way to make a website since you need to learn and use proper HTML syntax and you'd have to write your own CSS if you want to style your site and not make it look like it's literally from the 90's.
This is the most direct way to create a webpage, you just write plain HTML on a blank file and start building from there. This isn't the most convenient way to make a website since you need to learn and use proper HTML syntax and you'd have to write your own CSS if you want to style your site and not make it look like it's literally from the 90's. It could also be faster, but still good for learning, to take a HTML and CSS template that you like and start hacking around with that, this is how I started too.
![Good old Notepad++ with some HTML source open (image from lifewire.com)](/blog/img/htmlediting.jpg)
@ -35,16 +35,58 @@ This is the most direct way to create a webpage, you just write plain HTML on a
This is my preferred way to write a website: you get a template and just write your various pages and articles in Markdown, a very simple to use markup language, so that the software will compile it into a full HTML and CSS site automatically. I use the most popular generator, which is [Hugo](https://gohugo.io). It takes a while to learn and you need to be used to run a few commands from the command line, but once you wrap your head around it you will be able to make flexibly and efficiently a full blown site. You can still learn HTML and CSS with it by editing the template files manually, which is how I customized [the template I used](https://github.com/jonathanjanssens/hugo-casper3) for my website.
![Me writing this very paragraph in Markdown and seeing a live result on the other side](/blog/img/hugoediting.png)
![Me writing this very paragraph in Markdown and seeing a live result on the side](/blog/img/hugoediting.png)
### Use WriteFreely or WordPress
If you want a fancy and intuitive interface to write in, there are Free Software solutions like WriteFreely and WordPress, among others. They're a bit cumbersome to install and are also a little heavy on resources, but the result is a software that lets you write a blog in a very easy and not too distracting way.
If you want a fancy and intuitive interface to write in, there are free and open source solutions like WriteFreely and WordPress, among others. They're a bit cumbersome to install and are also a little heavy on resources, but the result is a software that lets you write a blog in a very easy and not too distracting way.
![WriteFreely](/blog/img/writefreelyui.png)
![WriteFreely running in a web browser](/blog/img/writefreelyui.png)
Alright, you have your site now and you've bought a domain name, so you want the whole world to see your new amazing site. This is where our second question comes into place...
## Where do I host my website?
### Selfhosting at home
This is my preferred method since I have lots of old computers that I can repurpose
If you've got an old computer stuffed in a closet that you want to give new life to, this is an excellent choice. In order to do this you need to be comfortable with installing and configuring an operating system like Debian or OpenBSD with just the command line if you want to save as many system resources as possible (although something with a GUI could also work fine if you prefer), keeping a computer always running on a wall socket of yours and you need a decently fast and stable internet connection. Ideally you'd need to have this machine hooked up to power and network 24/7, so if you can buy even a cheap UPS that should keep most downtimes away. You also need to associate your domain to the public IP of your home network with some service like [Afraid FreeDNS](https://freedns.afraid.org/), otherwise the domain won't point to your server and thus your website. Since this is pretty much an entire computer, it means that it can even do more than hosting your website and install whatever you want: it could run [Nextcloud](https://nextcloud.com/) for file and photo sharing, [Plex](https://www.plex.tv/) or [Jellyfin](https://jellyfin.org/) for movies, [Jitsi](https://jitsi.org/) or [Mumble](https://www.mumble.info/) for VoIP, [XMPP](https://xmpp.org/) or [Matrix](https://matrix.org/) for text chatting, [SearXNG](https://docs.searxng.org/) as a search engine, etc.
![My current server: the HP ProLiant MicroServer N36L](/blog/img/sunfish.jpg)
### Renting a VPS
Not to be confused with VPN, a Virtual Private Server is like a virtual machine in a big datacenter that's basically going to be your remote computer with some minimal OS like Debian that you can access remotely via the terminal to install and configure all you want. So it's like selfhosting, except the machine isn't in your home and isn't consuming your electricity and bandwidth, although this kinda takes away some degree of control from you since you don't have a physical machine in your own home or office.
![Some public domain datacenter photo, I guess](/blog/img/datacenter.jpg)
### GitHub/GitLab Pages
[GitHub](https://github.com) and [GitLab](https://gitlab.com) are two popular collaboration platforms for programming and version control, they both offer a free service called Pages which let you easily host static webpages on their servers. By default they give you a subdomain like `username.github.io`, but you can also associate your own domain. This isn't like a VPS since you can't remote into a shell and install whatever you want, all you can do is uploading and managing files with Git, which is probably enough for most people.
![An example GitLab Pages site made by the authors of Hugo](/blog/img/gitlabpages.png)
### Standard hosting services
These services vary in functionality, they could be as bare bones as GitHub/GitLab Pages or they could preconfigured WordPress or other similar stuff, but they pretty much take care of everything regarding hosting, maintenance and security, but they could get kind of expensive and could also not be truly worth it since these are not as versatile as other paid options like VPS providers, so it depends on what hosting provider you choose, what you want to do and how you want to expand in the future, if you plan to.
![Some other public domain datacenter photo](/blog/img/datacenter2.jpg)
# Alternative social networks
If you want a more streamlined way to interact with others on the internet, you can try alternative social networks which aren't controlled by big tech companies and don't inherit the flaws of mainstream services. But we have to distinguish two kinds of alternative platforms: **centralized** and **decentralized** platforms. Centralized socials are controlled and hosted by one entity, meaning that they can do anything to everyone who has signed up for an account; decentralized socials are divided up into multiple servers managed by different people or organizations, each with their own users and rules, but users on one server can interact with users on other servers (this is called **federation**).
Let's say we have the user Bob on `bobplace.com` and the users Alice and Kate on `artuniverse.net`: Alice and Kate are on the same server so they can see, like, comment and reshare each other's posts and DM each other, but they can also interact with Bob and his posts that are on `bobplace.com` even from their own server without having extra accounts on Bob's server. If Bob wants to look for Kate's account, he has to type `kate@artuniverse.net` in his search field, so the username @ the domain of the server, if she was registered on `bobplace.com` he wouldn't have to type the domain since they're both already there. Also if `artuniverse.net` goes down for example, all the other servers will continue working and communicating reciprocally as if nothing happened, thus keeping the whole federated network alive. Clearly decentralized socials are more resilient to outages, censorship and corporate influence, since it's more in the control of individual people scattered around the world, and they're also much more versatile thanks to the fact that pretty much all of them are free and open source projects, so that people can contribute to their development and modify them for their own needs.
![All of the federated socials based on ActivityPub](/blog/img/fediversetree.jpg)
As you can see in this image above, there are lots of free software options following this federated model, and the thing they all have in common is the protocol at the base, which is called [ActivityPub](https://en.wikipedia.org/wiki/ActivityPub). This means that even if you're using two different applications, they can still kinda communicate with each other despite surface level incompatibilities because they both share the base protocol, not that this aspect is truly important. The most interesting thing here is that there is an open standard for decentralized mass communication used by many compelling platforms, which are in constant evolution and are usually available via the web browser and on mobile through first party and/or third party apps.
Since Elon Musk's recent takeover of Twitter, a lot of people have done a literal mass migration over to [Mastodon](https://joinmastodon.org/), one of these ActivityPub based socials intended for microblogging, and most of them were quite confused on the way it worked. There's [this video](https://youtu.be/IPSbNdBmWKE) that explains shortly and clearly how Mastodon works; this explanation can also be applied to other federated socials such as [Pixelfed](https://pixelfed.org/) (for Instagram-like photo sharing), [PeerTube](https://joinpeertube.org/) (for peer-to-peer video sharing), [Lemmy](https://join-lemmy.org/) (for Reddit-like groups and threads) and [much more](https://fedidb.org/software).
![Mastodon, Pixelfed and PeerTube](/blog/img/top3fedisocials.png)
*here i have to talk about other non activitypub based stuff like lbry, messaging stuff and maybe even web3???*
## How about centralized alternatives?
To be honest I'm very skeptical of such platforms, like for example Artfol, SpaceHey, Coub and Telegram, simply because they're closed source and controlled by one entity, meaning that today they might be fine, but what if they change CEO or they get bought by a bigger company and become evil? This is exactly what happened to WhatsApp when it got sold to Facebook, what happened to YouTube when it got sold to Google, what happened to Skype when it got sold to Microsoft, no matter how noble the intentions are at the beginning, there is almost no escape from the continuous cycle of capitalistic anti-competitivism, you must always be ready for the worst to happen when dealing with proprietary services like these. The traditional method of doing things has proven too many times that it's flawed beyond repair, hence why federated platforms are the real future of the internet: they're in the hands of the users, the trust is relative and the backend cannot be sold.

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB