DEV Community

Cover image for The Journey of a Golang Indie Hacker: Building a Web Framework from Scratch
Huỳnh Nhân Quốc
Huỳnh Nhân Quốc

Posted on

The Journey of a Golang Indie Hacker: Building a Web Framework from Scratch

🧠 10 Years of Coding — 5 Years of Building a Foundation

In a world already full of frameworks — WordPress, Django, Laravel, Rails — why would anyone decide to build their own?

That’s the question I’ve asked myself for years.

Ten years ago, when I first learned programming, I was obsessed with understanding how others wrote such complex code. I started with Blogspot, downloading and tweaking themes, convincing myself that I “knew web development.”

But that was only the surface.

Later, I discovered Angular, and that changed everything. I realized a website isn’t just a pretty interface — it can become a powerful, living application.

That’s also when I began learning about SEO and User Experience (UX). UX isn’t just about placing a button in the right spot to improve conversion rates — it’s about delivering genuine value to users. It doesn’t have to be beautiful; it just has to work and solve a need.

🔧 Why Not Use Existing Frameworks?

I currently use Fiber (Golang) — a framework inspired by Express.js — but not in its original form.

I rewrote several core parts, especially the template engine, based on database mapping principles. This allows me to query and render data similarly to Shopify’s Liquid, but in my own way.

I don’t think I’m smarter than anyone else — I just want to understand and control everything I build.

Why not use a JavaScript framework?

I’ve been there too. I once wrote my own JS framework, but I realized it took too much time for too little gain. Building from the server-side made more sense — I could handle security and control much better.

So I started developing a Web Component system using Vanilla JS — fast, minimal, and dependency-free. I wanted something that could run by embedding a single script tag, not an entire build process.

🌀 Starting Over (2020)

In 2020, I decided to start over — from zero.

I had no money, no stable job, no connections. Just a dream of technological independence.

For six months, I worked on a custom DNS system.

I still remember showing a friend my first generated ID:

``2wjqpur0ife35a49yklnxbc6g1dohz78vstm``
Enter fullscreen mode Exit fullscreen mode

It was just a string — no interface, no frontend — but I was ecstatic.

Then came the next challenge: managing node inheritance in a system hierarchy.

In JavaScript, it’s simple. But in Golang, pointer management can be brutal. I hit what’s known as the Diamond Problem, where multiple inheritance causes cyclic references. Solving it in Go was… a rite of passage.

After that, I wrote my own template engine, studied Shopify Liquid, ASP.NET, Angular Pipes, and Vue/React Routers — and built a system that worked for me. Not perfect, but mine.

In programming, nothing is perfect.

We write code → it breaks → we fix it → we grow.
From there, I developed APIs, Web Components, search systems, a QR code generator, and a URL shortener.

I dove deeper into databases, indexing, query optimization.

Not an expert in everything — just enough to build something that works.

💡 Hopes of an Indie Hacker

Once the core framework was functional, I added automation — a data crawler, a primitive UI, basic string interpolation, and later, Go templates for rendering.

If you’ve worked with Go, you’ll notice similarities with Hugo. I love that minimalism — it helps me understand how everything connects at the root level.

When I launched my first real product — a price comparison website — it quickly reached the Top 100 E-commerce Websites in Vietnam.

But the setup? Just a tiny VPS:

1 core CPU, 2GB RAM, 20GB SSD.

It was a victory… until it wasn’t.

The server couldn’t handle the load.

I lost uptime, users, and momentum.

Still — that experience was priceless.

🔗 Building Tools for Growth

After that, I built a URL shortener to track my affiliate marketing links.

I wanted to measure CPC, EPC, and understand scaling efficiency.

It taught me how to optimize campaigns, interpret data, and think like a systems architect — not just a coder.

Every tool I built became another piece of my framework — another module in my growing ecosystem.

🌍 The Vision — and The Why

I am a Golang Indie Hacker — no team, no funding, no fancy marketing.

But I dream of one day raising funds to scale this framework into something that can truly empower local businesses.

A platform that can replace WordPress, Odoo, or Shopify — giving Vietnamese entrepreneurs the power to own their websites, data, and brands.

That’s why I’ve spent five years (since 2020) developing this framework — alone, but not lost.

I don’t know what the future holds.

What I do know is that I love this journey — the quiet joy of solving problems that matter.

I’m not an expert. I’m just a kid who fell in love with code.

To me, programming isn’t just about writing logic.

It’s about creating real value for others — and believing that automation can make human work more meaningful.

And that’s what keeps me coding.

🧭 Notes

Thanks for reading Huỳnh Nhân Quốc's article! Subscribe for free to receive new posts and support my work.

Top comments (0)