I Built A Website From Scratch, And Now You Can Too

A few months ago I decided to build a website from scratch. No website editors, no static site generators, no nothing. I figured it'd be a fun way to learn about web design, networking, and the CLI.

Good news - it is! Bad news - there's so much information on the internet, it's easy to get lost. So, in this article, I'll outline all the steps I took to build this website, so that you too can own your own piece of internet land.

My aim with this guide is to keep it very newbie-friendly. I will not go into detail about how to do something or why. Google DuckDuckGo is your friend.

  1. Buy A Domain
  2. I like Namecheap. They're affordable yet offer great support. Plus their search feature allows you to find tons of options for domains.

  3. Deploy A VPS
  4. I like Vultr. Their referral program offers a huge sign-up bonus. Plus they offer dozens of OS so no matter what flavor of distro you like, everyone will be happy.

  5. Point DNS Records
  6. Start by identifying your VPS's IP addresses. You'll want to find the IPv4 version (it'll be all numbers like and the IPv6 version (which will be all gibberish like 2710::ax83%:3u29l:lolz).

    This step will vary depending on who hosts your domain. On Namecheap, just navigate to

  7. SSH In
  8. SSH (Secure Shell) is a protocol used to access your VPS remotely.

    Start by entering the terminal. Enter ssh root@yourwebsite.com. Go to your VPS and copy the VPS password. Paste it into the terminal. If you succeed, you'll see the location in the terminal change.

  9. Server Deployment
  10. Once you're in, run the following commands to start your server.

    sudo apt update

    sudo apt upgrade

    apt install nginx python-certbot-nginx rsync

  11. Nginx Setup
  12. Certbot Setup
  13. RSync Setup
  14. Add Content Using HTML
  15. This website has pretty much all you need.