The Journey Of Making A Website

May 18, 2023

After a growing weary of developing my MMORPG, I decided to give making a website a try. One of the reasons that spurred me to dip my toes in web development was that after developing games I realised why most businesses develop web applications instead of native applications. They do so because of portability, rich access to libaries and a large development community.

The last time I looked at making a website was in 2019 and back then, I did not have much experience programming at all. At that time, I recently graduated from high school and my only skills were from making extremely rushed websites as an assignment in my Information Technology class.

So there I was in 2019, trying to work out this whole website business and was completely overwhelmed at the amount of information there is. I actually gave up after two weeks and I can kind of see why after doing it again.

If I were to do a gaming related comparison, if anyone has played Runescape 3, it was basically like jumping into several rabbit holes that lasted several hours where a lot of information was splayed everywhere but it was really hard to filter through all the junk. A lot of people glossed over key details that a new person to web development would need to know as well which didn't particularly help. A good example of this is the difference between a "website" and a "web application". The way I look at it is that all web applications are websites but not all websites are web applications.

How I begun my journey again in 2023 to learning web development was familiarising myself with the basics - HTML, CSS and Javascript. For this I went to the trusty old site, Youtube and googled tutorials for each of those languages. The two youtube channels that I learnt basically everything from was Programming with Mosh and Dave Gray.

Programming with Mosh was were I predominately learnt my Javascript, React, Typescript and Node.js from where Dave Gray was where I learnt my HTML and CSS. They were absolutely fantastic for me and I learnt everything I needed to know in around 20-30 hours. If I came across something I didn't know or something I was intrigued about I ended up googling. This lead me down quite a few rabbit holes but it was an important part of learning for me.

After learning all that content a few things surprised me. HTML and CSS is pretty much still the same thing. I still hate deciding which HTML element to use (I really dislike semantic elements) and I wish CSS would have a reference to all the properties that can be applied to an HTML element. Javascript however was a huge surprise to me and was really fun to learn. I've only ever really programmed in static languages, specifically C# and Java but man, after "hating" on dynamic languages I've come to really appreciate and value how cool it is to code in a dynamic language. The biggest mind explosion to me was when I fully understood the implications of literally everything being an object in Javascript. For instance, you can legit store a property in a function. How cool!

The other fun thing about learning web development is how everything has developed from pure vanilla HTML, CSS and Javascript and how key milestones in web development coincide with a massive explosion of interest for web development in general. The two big milestones that come to mind are when node.js released, allowing Javascript to be run outside of a browser, and when ECMAScript 2015 specification came out (Also known as ES6) which introduced a bunch of modern language features.

After a week of learning, I set to work on my website filled with hype for what I could potentionally make. I used three websites for my primary inspiration. React.dev, Getbootstrap.com and a simple personal website that helped me with my game development, Tavianator.com. If you go to all three websites, you might be able to spot some similarities between their site and mine. Of note, I created the buttons and New Posts section of my blog from React.dev, the Archive section of my blog from Getbootstrap.com and the simple colour palette from Tavianator.com. All three websites had the ability to swap themes so I incorporated that as well.

Making a website was not as bad as I once thought. I think the reason why I didn't particularly enjoy it that much before was due to not understanding how HTML, CSS and Javascript are connected. Before I was trying to "force" things to work with some hacky CSS or HTML that wasn't particularly good whereas now I can easily implement pretty much anything I can think of due to my deep understanding. A large part of how I gained quite a big understanding so quickly is predominately from my experience programming in C# and Java.

After creating the basics of my website I can see why frameworks like React, Angular and Vue came about. Instead of repeating code in several HTML files they create a solution to that problem by combining a group of HTML elements into "components" where the HTML, CSS and Javascript are all centered around one component. If I ever make another website, which I probably will, I most definitely will use a framework such as those to see how it goes. I did learn basic fundamentals of the React framework thanks to Programming with Mosh and I really enjoyed it.

And there it was, a beautiful website. It was painless to make, really fun to do and I'm excited to develop it further. I've posted the website on GitHub too so if you want to contribute to it or fork it and make it your own, feel free to do so!

I hope you enjoyed reading my journey and I inspired you in some way.

Thanks for reading!
- Krayno