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
- Installed and setup Nginx to host my website.
- Opened the HTTP/HTTPS ports on my router and configured it to forward traffic to my webserver.
- Linked IP address to Duck DNS, significantly reducing cost of operations.
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
- Coded the frontend of my website.
- Added an SSL/TLS certificate to enable HTTPS.