Every single person should have their own website. I don’t just mean that we should all rush out to buy a fancy firstname.com domain. Instead, that it would benefit us all, if more people would take an active role in building the free and open web.
As I wrote in Reclaiming Territory in Cyberspace, there are three primary resources in cyberspace:
Storage
Computing Power
Bandwidth
We are all lucky, that websites are not at all demanding when it comes to these resources. The biggest concern is storage, with bandwidth being the next most important factor. You need the storage to hold all the files in your website, and the bandwidth to reach your audience. I believe there are many conditions today, that if we were willing, could enable us to truly take the web out of the hands of governments and corporations. Does this sound too good to be true? Allow me to make my case.
Understanding static websites
A static website is one that’s merely a collection of properly formatted files. These files will include the HTML, JavaScript and CSS (the skeleton of the website), as well as any other multimedia content like images and video.
Static websites can be quite simple or support a wide range of multimedia. Either way, it’s best to think of a static website as a pamphlet or poster that you can easily update. Depending on your ideal audience, it can be better to work with a text and links only but informative website, or include beautiful images, video or animations. This will all depend primarily on where you intend to store the website (in the cloud, or on your machine?) and how much bandwidth you and your audience have access to.
While I am generally a critic of leveraging cloud infrastructure, static sites are one of the major exceptions. Since a static website is like a poster, hosting it on the cloud is akin to putting it up on a commercial, but prominent bulletin board. An underappreciated feature of static websites is that they are inherently unhackable. Like a poster, it can be taken down or defaced, but you’re never going to suffer a data breach or have it infect your systems.
Static Site Generators
What makes static websites more accessible than ever is static site generators, these generators are designed to allow people to ignore the nitty-gritty aspect of web design, and just get to writing content. What really makes static site generators excellent is that they make the job of maintaining a large and complicated website relatively simple for a single person.
The basic process of using any static site generator to build your website is like this:
Install whichever generator you choose
Run the generator to build a new project folder
Browse the Generator’s themes gallery, and import whichever theme suits you
Use whatever editor(s) you like to modify, copy and create files into where they need to be
Run the generator command to view changes in real time
Pages are usually written in markdown
Hugo
Site: https://gohugo.io/
Themes: https://themes.gohugo.io/
Documentation: https://gohugo.io/documentation/
Jekyll
Site: https://jekyllrb.com/
Themes: https://jekyllrb.com/docs/themes/
Documentation: https://jekyllrb.com/docs/
Zola
Site: https://www.getzola.org/
Themes: https://www.getzola.org/themes/
Documentation: https://www.getzola.org/documentation/
Hexo
Site: https://hexo.io/
Themes: https://hexo.io/themes/
Documentation: https://hexo.io/docs/
Astro
Site: https://astro.build/
Themes: https://astro.build/themes
Documentation: https://docs.astro.build/en/tutorial/0-introduction/
Enhancement: Themes
Themes are important, they do a lot of really heavy lifting in the end-result of the generated site. Themes will outline what goes in the headers, footers, sidebars and the overall look of the site. Themes will also have control over some of the finer details like social media previews and RSS integration.
This is what’s motivated me to build my two Hugo themes Freedom and Valor from the ground up. They are very much a work in progress, but I appreciate having a fine degree of control. Odds are if you have very specific requirements, modifying an existing theme can also work for you.
Enhancement: Widgets
Static sites are nice, but you want MORE. If you want to add dynamic features like comments or real-time integrations, overhauling the theme can be overkill. Often you can create shortcodes, that will give you the ability to include custom html/css/javascript that will work like a new widget with enhanced functionality.
Some theme generators will also give you the ability to override parts of the theme. For example, if you want to add icons to the navigation menu, you could copy the existing one into the designated overrides folder and add your icons there.
Enhancement: Version control
Ouch! You’ve gotten hit by a ransomware attack. All your files have been encrypted by a virus, and can’t be recovered unless you hand the hackers some Monero. Thankfully, you’ve been using a self-hosted version control system like Gitea. So you can simply pull down the old version of the website and upload it again. Version control allows you to have a permanent record of changes made over time.
Teams
Online version control is also very useful for collaboration. Instead of maintaining the static website alone, you can share access to the repository with others. Many online source control providers will often also include integrated hosting.
Hosting
Static websites are portable by nature. As long as the site structure is sound (use relative links) you can often put mirrors in multiple locations. This is an excellent way to maintain a resilient presense, instead of relying on a single point of failure. Because static websites are often quite simple and small, multiple uploads of the same content aren’t always so arduous.
Online Source Control:
Want to get started quickly? Github Pages has an excellent overview on how to use Git to push your static site to a repository and get running immediately.
You can also use:
Own your own domain
When you buy your domain, which is your web address online, (e.g. https://libresolutions.network) you’re going to want to own the domain yourself. This means that you purchase your domain directly from a domain registrar. For an often modest yearly fee, you can secure a name on the regular internet. It’s important to have control over the dns records yourself, in case you feel the need to migrate or add additional services.
Managed hosting
Often, domain registrars themselves will offer some form of managed hosting. This means some tool like cPanel will be available to you to simply upload the files to the site directly.
DIY Hosting
You can always run your own web server, although it will require more technical knowledge. Going DIY allows you to reduce as many intermediaries as possible.
Getting on the Dark Web
For those concerned about the increase in draconian control over the internet, it can be helpful to mirror their content to one or many darknets, such as Tor or I2P. Even as a regular web user, I would highly recommend at least having the knowledge of how to visit websites on the darknet, for we do not know what kind of measures will be used in future crises.
Sneakernet
With a static website, you don’t have to worry about complicated things like databases and user accounts. This means you have the advantage of being able to mirror the entire content onto a physical, portable format that can be distributed in person. When paired with version control, it can become a very efficient means of securely distributing large amounts of critical data.
Who knows? Maybe we can start supporting independent websites by purchasing archives in a physical format!
Forgive the stupid question, but if you self host, or mirror your site on the dark web, is there a way for whoever your audience is to be cut off from accessing it. If they’re a normie, say, can something be tinkered with so even if they go to access your site through their google browser or whatever, it can gate keep them from navigating your site?
Very informative Gabriel. I've been thinking for so long (mostly procrastinating) of getting a desktop computer and completely removing the pre-installed Windows OS to replace it with a Linux OS. I just can't stand Windows anymore with having to tweak the Settings each and everyday to TURN OFF the Windows Update shit (which always turns back on without my consent), plus their integrated spyware. This is not safe anymore (and hasn't been for decades). I worked in computers a long long time ago and use to do these things, but am too out of it now to do it properly myself. So, I will likely get someone in town to install a Linux on it. Could you recommend a certain flavor of Linux? I had researched it last year and recall being even more confused as to which one to choose. It seemed that there were some viable ones such as Xubuntu and others (see https://linuxhint.com/best-old-laptop-linux-distributions/) but am still not sure which one is the simplest/most user friendly - as in my old age is imperative! Anyhoots, thanks for this informative post (I especially like your 'Reclaiming Territory in Cyberspace' thought on gabe.rocks. Cheers