Build a site

oct 2020

This website took more than 1.5 years to make. That probably sounds like more time than you have to achieve some goal, or to finally get your shit together and present that impressive image of yourself on the internet. Because if you don’t, your future employer won’t find you, you’ll only date your mediocre social circle and your initiatives will never reach anyone. In short: your life will go unnoticed.

That sounds pretty bad, and especially like a problem that would affect me, a late-blooming young man utterly lacking in online social presence. So why did I extend this problem for another 1.5 years by building a website myself? I could have joined facebook, Twitter, LinkedIn, you name it, or could have pieced some templates together on a platform like Wix.com. Then my profile would be up-and-running within days. But what kind of profile would that be, and why would I want to get there fast? Life already has many demands and molding oneself to some online format can be a large extra one. Twitter’s dishonest shouting-fest is notorious for drowning your sanity, LinkedIn just makes me jealous, and facebook, well… let’s not talk about facebook here.

My alternative approach does not consist of steps that you should follow. My daily life was, and still is as stressed as that of any other 21st century dweller. So no further pressure or here. All I can say is that it took 1.5 years of scattered hours, small tutorials and a complete loss of interest, and that the result is greatly satisfying.

What happens when you start from scratch? It makes you responsible for everything, including aspects like atmosphere. Atmosphere is that sense that you get of a person by seeing the space in which they live. I wanted my personal site to radiate some of that. Rather not by streaming a view of my room like a certain Chinese artist, but by showing a collection of pictures that I like and could be on my wall. That is why my ‘site’ was nothing more than a folder of .jpeg files for some months. (Make sure that they are rights-free).

The next issue was: How will I show them? I knew that web pages were written in html, but had no experience in doing so. Since I was programming in python for my work anyway, I followed tutorials for a python-framework called Django. In such frameworks you program the functionality of your site. I for instance wanted you to browse through an archive of poems, but much more is possible. The only thing the framework does not do is graphics. For this I still had to learn html and css.

It can be pretty frustrating to learn by trial and error, and at points you become fed up with debugging your div tags. Luckily, a website has so many components that you can easily switch development to some component that better suits your mood. I mentioned collecting pictures. You can also try lay-outs, study the source code of other slick sites (in Firefox it’s the F12 button), or just draft some text that you want to place. God knows I have rewritten my intro more than 20 times.

Then comes the point that your site feels good enough to deploy a first version. But doing this is quite a task. It will depend on how you built the site. I wanted the ability to push updates from my repository to a live server, and I found it in Heroku. This choice forced me to learn about PostgreSQL databases, which for Heroku is the way to store the data that lives with your code (an entry in that database is for instance this piece of text that is currently presented to you through an html page generated on-demand by the code). Pictures however are types of data that need to be served differently. I learned how so-called ‘static files’ work, and had to grant my Django application access to an AWS storage, which involved a lot of messing around. My current solution enables the site to run online, but also offline on a Raspberry Pi connected to my own network. I will publish the code on my Github after I have cleared some security issues. This involves me learning about internet security… so please be patient.

To conclude: All the resources and instructions are already out there in some form. I found it exciting to pick my way through these technologies and create something personal along the way. You will need a long breath, but hey, you have years of learning in front of you. So why not build a site?