Creating a Website from Scratch
Why did I choose to?
Why didn't I use a website builder? Well, ever since I discovered Get Coding!: Learn HTML, CSS, and JavaScript and Build a Website, App, and Game by Young Rewired State and got into tinkering with CSS on MediaWiki-based wikis, I've been interested in creating a website from pure code. While it takes time to master, it's more fun as you have way more freedom in what your website looks like. No need to pay for more features! It's also a great way to practice and improve computer programming skills, which may as well be important in the 21st century.
The history of this website
Tools I use for developing my website
- Visual Studio Code for coding
- My computer's hard drive for storing the website files
- Git for managing versions of the website, which is a lifesaver for when you make mistakes or need to code a major feature that you're not confident about
- GitHub for transferring files to the Internet and storing them there so that they can be deployed to below
- Netlify for hosting my website
- Porkbun for providing the custom domain (not free, but very cheap!)
The following are more advanced and not recommended for absolute beginners:
- npm for installing and managing JavaScript programs useful for development
- Eleventy, which generates the website pages with consistency
- Netlify CLI for testing my website in the Netlify environment
- Google Search Console for checking and managing the website's presence on Google Search
- Umami for checking the web analytics
How can you create a website from scratch?
For those completely new to web development, Khan Academy has a Computer Programming course which teaches how to code in HTML, CSS, and JavaScript, the basics of web development.
W3Schools is a wonderful resource for beginners to see what different code does, and MDN Web Docs is the go-to resource for those of intermediate to advanced skill level (and anyone willing to fiddle with the technical intricacies).
If you are using Visual Studio Code, you may find Microsoft's Live Preview extension, which runs a local server on your computer to test your website, to be helpful.
There are many free web hosts online. As said in the above section, I use Netlify, which is a good option for static websites (websites that don't change on their own). GitHub Pages, Cloudflare Pages, and Vercel are also good options. If you don't want to dive much into the technical stuff, you can use Neocities. As always, search for free web hosts and try to find one that suits your needs!
If you want your website to appear in search engines, such as Google Search, Google has this article to help you get started. Just be prepared that the process won't be instantaneous. You may need to do lots of work on your website.
Custom domains, so that your website's domain only ends with ".com" or similar, not something ugly like ".netlify.app" or ".github.io", are not free, but you can buy one for really cheap prices. I would highly recommend Porkbun; they sell ".com" domains for only $11 per year and I got it on sale for $8 for the first year. That is extremely affordable compared to typical subscriptions for services such as entertainment, which would charge that amount per month.
(While this may not be an issue for a small website with a few pages, expanding your website with only standard HTML, CSS, and JavaScript for its code will get cumbersome quickly, as you may have to manually edit lots of pages just to update the overall layout. This is where static site generators come in. Eleventy, which I use, is the most beginner-friendly, but I'd recommend you learn standard HTML, CSS, and JavaScript beforehand. If you want to go bigger and beyond a small personal website, I'd recommend The Odin Project, which teaches full-on web development for free.)
Last updated December 19, 2025