After all that—setting up Nginx and hiding the ports—I was excited because I thought I was finally going to deploy my website without spending a single penny or relying on free tiers.

But just blindly throwing everything onto the internet felt wrong, so I started learning how packets actually travel from the internet to my machine.

And oh boy, did I learn a lot.

As I dug deeper, I learned that packets don't magically know where my server is. They travel through routers, ISPs, and a bunch of systems in between.

I found out that my router wasn't actually exposed to the internet the way I thought it was. To receive packets from anywhere in the world, I needed a public IP address.