Why I Built My Own Blog from Scratch | Remix, Astro, and Ubuntu Server Journey

blah

Why I Decided to Build My Own Blog

thunderlab-blog

thunderlab-blog

Why I Started Blogging

Before transferring to university, I joined a six-month Java/Spring Boot bootcamp.

I wanted the things I learned to really stick in my head, so I started blogging seriously.

My goal was simple: to keep a record of what I study and what I build.

Why I Built My Own Blog

Of course, using an existing blogging platform has its conveniences.
But for me, the limited customization always felt restrictive.

It wasn’t just about what the readers see — I wanted 100% control over the whole system.

My Blogging Journey

  1. 2023: Started with Tistory → Didn’t like the UI.

  2. 2024: Moved to HashNode → Good platform, but customization was still limited.

  3. Feb 2025: Built my own blog
    → I use this one in English.

  4. Sep 2025: Built another blog study.thunderlab-blog
    → Migrated my old HashNode posts.

How I Built My Blogs

thunderlab-blog

  • Tech stack: Remix, MySQL, Nginx, Linux, Docker, Cloudflare

  • Developed on macOS → Deployed on my miniPC (Ubuntu server) → Built with Docker and ran Nginx + MySQL

  • Port forwarding + domain mapping → Used Cloudflare for CDN

  • Backend partly implemented with FastAPI (admin panel & post writing)

study.thunderlab-blog

  • Tech stack: Astro

  • Deployed on Ubuntu server, opened ports using Cloudflare tunneling

  • No MySQL — posts are managed directly with markdown files

  • Deployed with Vercel

Reflections on Blog Development

Both Remix and Astro had their own pros and cons.

  • Remix: I struggled a bit with configurations overlapping with Vite.

  • Astro: Much easier, but I kept thinking, “If I’m going this light, why not strip it down even more?”

In the end, what matters is building in a way that feels fast, simple, and precise for me.

Why I Use an Ubuntu Server

These days, there are plenty of options: Vercel, AWS, Google Cloud, and even BaaS services like Supabase or Firebase.

I once tried AWS EC2, but the free tier’s performance was so disappointing that I stopped using it.
Instead, I set up Ubuntu Server OS on my home miniPC and started using it as my personal cloud computer.

Since my laptop already runs Ubuntu, the ecosystem feels familiar and convenient.
(Of course, my miniPC doesn’t have a GUI, so there are some trade-offs.)

Sometimes I wonder if my lack of knowledge prevents me from deploying things in the most efficient way.
But the truth is, once you’ve deployed on bare metal, moving to the cloud isn’t all that hard.
If anything, the reverse would probably be tougher.

So my takeaway is this: don’t get too comfortable with one method. Keep exploring and practicing different deployment approaches.