What goes into making a website

I generally encourage having personal websites. They have a lot of uses, and contrary to the widespread anti-self-promotion sentiment, I actually like it when people link themselves. It gives me a way to find out what they're about if I'm interested.

Stop freaking out about self-promotion

So I thought I'd make a sorta guide on how to set them up aimed at people with little technical knowledge. (This involves *picking up* some technical knowledge, but not as much as you might think.)

First, there are a lot of "website builder" platforms or Content Management Systems out there, like Wordpress and Wix. These aren't what I'm on about. They're a quick path to putting up some content, but they don't give you full control over the website - you're limited to what the platform offers as far as layout and style, post format, comment/account systems which are usually confusing and buggy, and anything else you might want. (This may not actually be true of Wordpress if you run it yourself on a self-hosted server, which you can do. I don't know much about that option, honestly.)

Wix review

This guide is gonna be about "the real way" which has the following benefits:

1. Flexibility. You can do anything with a server you control, not just things the platform supports.

2. Independence. If your website is built on a platform like the above, migrating off it can be difficult. You can probably export all your text content, but putting your website back up with a different solution would take a lot of manual work and it'd probably never be the same; especially if you have things like user accounts or comments which wouldn't carry over easily. If you self-manage your website like I do, you could set it up on a new server in an hour. I even scripted my install process so I wouldn't have to do hardly anything. That's impossible with a hosted platform.

So what I'm getting at here is, the quick and easy path leads to the dark side :P


So there are a few essential components that go into a website:

Wonderful explanation of the Domain Name System

TLD (top-level domain)

Ubuntu command-line tutorial



Something that's not required but that you should get as soon as possible is an HTTPS certificate, so users can connect to your site securely without seeing a scary warning message. (Sites without HTTPS support are also penalized in Google search results.) These used to be expensive, but nowadays you can get one from Letsencrypt for free with their Certbot utility.




It's possible to just write a plain text file and have Nginx or another web server program serve it. That wouldn't be very interesting though, because plain text doesn't allow for any kind of markup such as clickable links. For real web content, there are three core technologies involved:

HTMLDog tutorial

HTMLDog CSS tutorial

HTMLDog Javascript tutorial

That's all the ingredients to a website! If you're following this and get stuck, feel free to ask me.

I also happen to develop a project called Didact that aims to do the busywork for you without taking away any of your flexibility.



subscribe via RSS

Proxied content from gemini://yujiri.xyz/software/website-guide.gmi

Gemini request details:

Original URL
Status code
text/gemini; lang=en
Proxied by

Be advised that no attempt was made to verify the remote SSL certificate.

What is Gemini?