Building a Portfolio/Blog Website

Unrealized Ideas

4/24/2025

For a while now I've been wanting to build out my own webpage. I've had a few ideas floating around, but I've never taken the time to sit down and actually bring these ideas to life. The main reason for me wanting to setup a website is really to have a personal space online where I could share projects I've been working on, ideas that come to mind, and maybe even host some interactive tools, demos, or programs for others to download. Another reason was that every now and then I would run into a job application form where they would include a personal website field. Not having anything to put in there felt wrong and towards the end of my past semester at university I decided to finally do something about this and start working on my personal website.

Designing the Foundation

5/8/2025

Before starting any work on the code for the website, I first needed to decide how to actually host the webpage. I was well aware that setting up a simple webpage using cloud services is pretty easy and fairly inexpensive nowadays, but part of my initial idea for the website was for me to completely self-host it on my own hardware. Also since I didn't expect too much traffic coming to my webpage, I had another goal in mind to try to reduce the cost of the whole project as much as possible. To actually host the webpage I decided to use my Raspberry Pi mini computer I had lying around, along with the HTTP web server program called Nginx. I then opened ports 80 and 443 on my router, configuring it to route connections to my webserver, allowing for people to connect to it using my IP address.

Another thing I needed to consider was how I was going to get a domain for my server and if I should ask for a static IP address from my ISP. Since one of my goals for this project was to reduce the overall cost, and both getting a domain and a static IP would have cost me some money, I instead decided to look for alternatives which is when I found out about dynamic DNS services. To be specific, I found a dyanmic DNS service called Duck DNS which not only gave me a free subdomain within the duckdns.org domain that I could use for my webpage, but also allowed me to run a script on my server which would automatically update my IP address entry within their system if it changes for any reason, allowing me to circumvent having to buy a static IP address. With this setup in place I would only have to pay for the electricity that my Pi uses to function!

Highlights

Server

Coding the Webpage

9/18/2025

After setting up all of the backend stuff, I started work on building out the actual HTML code of the website. I first found a basic template which I could start development from. This significantly reduced development time since I didn't have to worry about building out the entire frontend from scratch. I had also decided to use the Tailwind framework as it too would help facilitate development and reduce the time required. I formatted my website by creating individual pages for each of the projects I'm actively working on, added a brief "About Me" section, and also linked my Github and Discord at the bottom of the home page. Finally I also decided to add a "Blog" section between the "Projects" and the "About Me" where I would post about ideas that come to mind. To get the webserver fully functional, I also used Let's Encrypt to get a free SSL/TLS certificate so that HTTPS would function for my website.

Highlights

Tailwind Logo

Next Steps

9/27/2025

I just recently got to a point with my website where I'm fairly happy with it. Off course I will continue to develop it further and add more things as I continue work on my projects.