Oh boy, oh boy, my first website is complete and is up and running. I thought I would never get it done, because why should I? It is expensive, time consuming and not as engaging as watching Hermitcraft videos. But at the end of the day my commitment paid off: having a personal corner of the internet is very fulfilling. Now sit down kids, let me tell you how/why you should follow through with the same commitment and build your own website!
Simple. As any of my other ideas I stole it! Well, no idea is original anyway, so it doesn't matter.
To be more specific: I have been thinking of pursuing a career as a software engineer for a while and was looking for ways to break out in this industry. YouTube is a nice source of digestible and abundant information on that topic. This is where I found a video about getting a job from Fireship (He makes quite nice videos, go check him out) and one of the points that he makes is that having a website as a portfolio is very useful. In addition to that, I saw that some people that I watched and liked had personal websites, which tipped me off and I finally decided to make a website!
To be honest, this is not my first attempt at a personal website. A year ago I already had this idea and was ready to execute it. I bookmarked the MDN web docs website to be a professional and have a proper resource for information. First, I drew out a design on a sheet of paper (it was very elaborate) and later began to code it.
I ran into my first problem very soon: MDN web docs were very hard to navigate. I don't believe that there is a problem with the website, more that I didn't know enough HTML and CSS to look up the features that I needed. I just started searching for useful info with DuckDuckGo and it became a lot easier to proceed, but the path to failure has already been set.
The second problem was the next thing I ran into: my own ambitions. Remember how I mentioned the elaborate design of the website that I drew? Well, my drawing skills definitely didn't translate to my web design skills. Having stacks of divs on divs was miserable and even the idea of moving something broke the whole website.
The third and the last problem that I ran into was my complete unfamiliarity with git and GitHub to save my progress. I wanted to consider this website as a serious project and no serious project can exist without publishing its source code. I managed to find a video explaining git, but GitHub was my downfall. I was just too stupid and too unmotivated to figure out how to work with it. So at this point I abandoned the project entirely.
What can we learn from this experience? Do not pre plan, have realistic expectations and do not think that you know how it is done. My advice would be to skim through the HTML and CSS tutorials and just jump straight into it. Consider it as painting: you can learn how the paints taste, but without putting them on paper the painting won't be done.
After the fiasco that happened the first time my motivation to make a website fell off for about a year. Watching Hermitcraft was just too damn hooking, have you seen all the little guys there? But after some time I remembered that I wanted to make something nice, plus now I was more knowledgeable (I had finally installed Arch at that point), so I decided to resume (start over the whole project, because I lost it all without GitHub) working on the project.
t first I didn't even think about making a whole ass website on my own, with all the hosting and getting a domain. As one of the main reasons to have my own website was to have a blog and an RSS feed with it, I thought about just making a custom theme for my Tumblr blog. Opening up the Tumblr theme editor quickly changed that. I was still not good enough to touch it. So my sight was set on writing a website from scratch.
Hosting a website is expensive, no one can deny that. Having a server and paying for a domain requires money and it is already more than just creating a blog on Tumblr. So, after a lucky find I discovered neocities. It is a very good service to eliminate all of the costs of hosting. There it is, a perfect solution! And it would be perfect for most people, but it was not enough for me. I just didn't want to take any shortcuts, I wanted to go all the way. So Neocities was out too.
Finally settling on making a website from scratch I began working. Firstly I began with making a basic outline in html: head, body, etc. Made a title and linked an icon I got from Favicon. At that time I already had an idea of what my website should look like. I probably should not go into detail of how it was made, because it is like trying to describe the process of making a painting and because you can see all of the elements on GitHub, so I will link a couple of useful resources that helped me with making it.
Now that that sucker was ready I was set on getting it hosted.
NOw let me tell you about how STUPID I Am, a little story about my clown adventures, que the circus music...As a lot of people know, a website doesn't look fancy without a domain, so I needed to get one, cause without it I could not have done it properly.
At first I found a very nice domain on a Russian DNS provider and I knew it was a good one, cause my dad had already used it and it was his recommendation. I found a nice, inexpensive domain with an SSL certificate It cost 99 Rubles, or about 1$ (That is extremely cheap if you ever looked at domain prices). BUT, BECAUSE I AM A DUMBASS I left the purchasing part for later, thinking that I should finish the website first (it all happened while I was just tweaking some parts of the finished website) and, as some may already guess from the current domain, I did not buy it. To be more specific, some freaking company from Illinois came and snatched the domain. I was so mad at them (I still hate you btw, hope your business fails, screw you)
Later I found another domain that I paid 10$ for, which is not ideal, but not terrible. The moral here is that I wanted to rant about a lost domain.
So, now the time has come to do the final stage of making a website: hosting. This can be done in many ways, but in simple terms it is just putting your files on to a computer and making it broadcast them. A lot of people choose to do this with a cloud hosting service, like AWS, Google Cloud, etc. But because I am a freaking weirdo (I don't trust mega-corps) I decided to self host it.
To self host I needed a server, in other words a computer to be always on and running the software broadcasting the website. My choice was to get a used PC. I got mine for around 7000₽ (~70$ considering the inflation). It has i3 gen 4 and 8GB of RAM. To be honest, it is a bit overkill for a simple website like mine, but I am going to use it for other services too. The same effect can be achieved with a simple Raspberry Pi, which is also a lot cheaper. I would recommend getting a Raspberry Pi at first and upgrading to something more powerful later down the line.
Now, the software. For my operating system I choose the most basic one: Debian GNU/Linux. It is very stable and has a lot of documentation, plus it is not run by a for-profit company, which is why I would also recommend using it. The setup is quite simple and has an option to get the Apache already installed, which is the software you will need. It can save a lot of time, but try to set it up yourself the first time you install it, because you might not always have a convenient installer.
Getting to the most important part, which was already mentioned before: Apache. This is the software which will send all of your files to a user which visits your website. First of all you need to install it:
sudo apt-get install apache
Now that you have your server installed, check if it is working. Run a command to get the IPv4 of your computer on the local network:
ip addr
It looks something like this in the output: 192.168.0.130/24
Connect to this ip using another device. It should display a similar webpage, which signifies that the Apache is working correctly