Contents

My Personal Site Journey: From Namecheap to DigitalOcean

Contents

For years I’ve been trying to host my own personal site and nothing ever worked out how I wanted.



My first attempt was with **Namecheap**, where I originally bought my domain. It was cheaper than running a VM on a cloud provider, so I gave it a shot. But the site builder through cPanel was extremely slow, and email was a pain to manage. Support wasn’t great either. I tried a few times to make it work, but it never felt right. I built a basic site... and then it just sat there.

A year later, I gave **Bluehost** a try. I wanted to start blogging and they had a good intro offer, so I went for it. But honestly, it was overpriced and clunky. In hindsight, I could’ve hosted WordPress on a VM for less, but I wasn’t confident enough technically yet. When the year was up, I canceled and moved everything to **Cloudflare**, where my site sat again, this time just redirecting to my LinkedIn.

For the longest time, SeifJuban.com just pointed to other places, until recently. I’d been helping friends build their sites and realized: I should finally have my own._ With the rise of platforms like GitHub Pages and Cloudflare Pages, it felt like the right time.



So, the project started again.


This time, I knew I wanted to self-host. I’ve spent a lot of time and money building out my homelab. Literally for projects like this. I checked pricing on cloud VMs, but at $60–$100/year, it felt wasteful since I already had the hardware. I spun up a VM at home, segmented it on its own VLAN, and hardened it: SSH keys only, Fail2Ban, log monitoring all the security basics. It was ready.


While all that was happening, I had to decide how to build the site. I knew blogging needed to be a core feature. But I didn’t want WordPress or any other CMS they felt bloated and I didn’t want to deal with the constant patching. That’s when I found Hugo.



Markdown-based static sites? Yes please.



I started experimenting with Hugo locally on my Mac, trying different themes and learning how the build pipeline worked. My ideal workflow was to write in Obsidian, push to Git, and let a webhook auto-deploy the site. But I ran into some roadblocks and troubleshooting got annoying. So I simplified: using a local script that copies over the public/ folder to my internal server and exposes it with Nginx + a Cloudflare Tunnel, just like I do with other services.



That worked… until I discovered DigitalOcean Apps.



I originally planned to use DigitalOcean to build a VM, but again — didn’t want to rely on cloud hosting. That said, their **Apps** platform caught my eye. It supports Hugo natively, integrates with GitHub, and best of all it’s **free** for static sites.

In this economy? Free is beautiful.



I tested Cloudflare Pages and GitHub Pages first, but Hugo builds didn’t always look right and Cloudflare had a 25MB size limit. DigitalOcean just worked — better than expected.



I connected my GitHub repo, and it automatically built and deployed the site. No headaches. It handles updates, rebuilds with Hugo on push, and deploys the public folder. It made my whole homelab VM setup kind of pointless… but hey, that’s part of the learning. Maybe somethings are better on the cloud(AKA somebody else’s computer) 😂.



The VM still lives on my network, but it’s internal now. Will probably use that for staging and seeing how updates would look. Meanwhile, the live site is up, running through DigitalOcean, and looks solid. I had some issues syncing my Obsidian vault to GitHub, but that’s mostly smoothed out now.



Next steps? Clean up the pipeline, test a few things, remove some API keys, and then I’ll post the final setup and repo publicly. But for now, I’m finally confident enough to publish this. My first real blog post (second if you count the Hello World test 😉).



If you want to watch a great breakdown of how this kind of pipeline can work, check out NetworkChuck’s video:

🎥 https://www.youtube.com/watch?v=dnE7c0ELEH8&t=1831s&ab_channel=NetworkChuck

Thanks for reading,

Seif Juban

Contact Me

Want to connect? Whether it’s about a project, collaboration, or just to talk tech, feel free to reach out.

[email protected]

LinkedIn