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.
Tools I use for developing my website
- Visual Studio Code for coding
- Microsoft's Live Preview extension for VS Code for testing my website live
- My computer's storage for storing 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 transmitting files to online and storing them there so that it can be deployed to below
- Netlify for hosting my website
How do I create a website from scratch?
For those completely new to web development, Khan Academy has a Computer Programming course which teaches web development, including how to code in HTML, CSS, and Javascript.
W3Schools is a wonderful resource for beginners, 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).
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. 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 the process won't be instantaneous. You may need to do lots of work on your website.