I built this whole site in one weekend for $70/year. Here’s the stack and the reasoning behind each piece.

The stack

LayerChoiceCost
Domainczs007.com via Cloudflare Registrar$10/yr
VPSVultr Tokyo, 1 vCPU / 1 GB RAM$60/yr
DNSCloudflare (DNS-only)Free
TLSLet’s EncryptFree
Web serverNginxFree
Site generatorHugo + PaperModFree
CommentsWaline (self-hosted, SQLite)Free

Total: ~$70/year.

Why each choice

Hugo over WordPress / Ghost / Notion

Static files have one nice property: there’s no backend to hack, no database to back up, and they can serve themselves on any web server forever. I write in Markdown, run hugo, and end up with a folder of HTML.

PaperMod over fancier themes

PaperMod is the most popular Hugo theme for a reason: it’s clean, supports dark mode out of the box, includes search, and the maintainer is responsive.

Vultr over AWS / DigitalOcean

I needed a VPS in Tokyo (lower latency to Asia) at the cheapest price tier that still has IPv4. AWS Lightsail is similar but Vultr’s hourly billing makes IP rotation free if you ever need it.

Cloudflare Registrar sells .com at cost (~$10/yr vs $20+ at GoDaddy). I’m using DNS-only (no proxy), but their nameservers are fast and the dashboard is the cleanest in the industry.

Waline over Giscus / Disqus

Disqus has ads, slow loads, tracking, and is blocked in China. Giscus is clean, but it stores every comment in a public GitHub Discussion and makes each commenter sign in with GitHub — which also forces the repo to be public.

I went with Waline instead: a tiny Node service on this same VPS, comments in a local SQLite file I back up myself. Readers comment with just a name — no account, nothing to sign into — and it works fine from China. The repo stays private. The trade-off is honest: one more service to keep alive and one more thing to back up. For owning my own comments, that’s a trade I’ll take.

What I’d do differently

If I were starting over and didn’t care about latency to Asia, I’d put the VPS in US East and turn on Cloudflare proxy (orange cloud) for the CDN. This trades flexibility (no end-to-end TLS) for performance.

But I do want a friend in China to be able to read this without going through GFW, so DNS-only it is.

What’s next

Now that the infrastructure is in place, the hard part begins: actually writing.