DEV Community

Cover image for The Indie Path
Huỳnh Nhân Quốc
Huỳnh Nhân Quốc

Posted on

The Indie Path

The Dream of Technological Independence

I remember it clearly — sitting in a tiny café, looking at my own hands and asking:

“What am I really looking for?”
No one answered. All I knew was that if I had nothing to lose, then everything left was an opportunity to start over.

By day, I delivered packages. By night, I wrote code. Each delivery earned fifteen thousand dong — enough for a cup of coffee and a few more lines of clumsy code. Day after day, this loop repeated: deliver, code, deliver, code. Life was small, but it felt pure in a strange way.

Looking back, I realized that those days taught me the most important lesson: big dreams don’t begin with leaps; they begin with slow, small steps.

Golang and the Dream of a Fool

I dabbled in many languages — Rust, Python, JavaScript. But I chose Golang. Not because it was the most powerful, but because it was simple and honest. Within that simplicity, I saw myself — a fool believing in small things.

I started from scratch: learning syntax, practicing routers with mux, exploring fiber, writing a DNS, thinking about pointers and how they traveled through templates. Some nights I would lie on an old chair, staring at the ceiling, pondering how a pointer could maintain its value across page layouts. I didn’t know why I thought so deeply; all I knew was I wanted to understand everything to the core.

No mentors, no guides — just me and the computer. Every wrong line, every bug fixed, was a lesson. Gradually, I realized that the most important thing wasn’t the results, but the feeling of laying the first bricks of a dream yet to take shape.

SSR — Returning to the Original Dream

I started with the web. And perhaps the web is what kept me hooked on programming to this day. From the first HTML tags, a few clumsy CSS lines, copied JS snippets, to Angular, Firebase… I went in circles and eventually returned to the starting point, where everything boiled down to a simple function:

``add(a, b) => a + b``
Enter fullscreen mode Exit fullscreen mode

I began building an SSR system using Golang templates, experimenting with pointer inheritance between pages and layouts. Once, I sat in a café, laughing and showing my brother the DNS system I’d just built. It only returned an ID, that’s all. Yet in that ID, I saw an entire dream.

I dreamed of a system capable of managing thousands, millions of websites — all connected, centralized, and SEO-optimized. I dreamed of a platform that could deliver content to everyone, gently and efficiently.

Working with SSR, I realized something many modern frameworks forget: the web isn’t about complexity, it’s about improving experiences. Programming doesn’t always have to be grand. Sometimes, it’s just the journey to rediscover the purity of “adding one thing” to a web page that already exists.

JavaScript and Dreams

I don’t recall exactly when I learned JavaScript. Maybe after Golang. Before that, I knew TypeScript, worked with Angular, but never truly understood JS — until I discovered Web Components.

I saw a different world. JS didn’t need frameworks to be powerful. Vanilla JS — simple and free — gave me a sense of true mastery. I sometimes wondered:

“Are JS frameworks just flawed versions of JavaScript itself?”
I grew tired of tiny programs requiring thousands of node modules. I began writing my own web components to enhance SSR-rendered websites. And eventually, I returned to an idea from my C# days: two-way binding.

From those nights, Kit JS was born.

Kit JS isn’t a framework meant to compete. It’s how I tell my story. It bundles everything I’ve learned, believed in, and lived through — from reactive programming, define, reference, to inheritance. To me, Kit JS is more than code; it’s a message:

“Understand technology before depending on it.”

Openness and the Indie Path

About a year ago, I heard the term “indie hacker.” I’m not exactly one, because making money wasn’t my goal. I just wanted to code, share, and connect with others who carried the same spark.

I like to call myself an indie-stack developer — someone walking an independent path, self-taught, building, and rewriting what I need. I started open-sourcing snippets from real projects, turning them into small packages that others could use.

I began blogging, sharing more. Every post, every line of code, every package is part of that dream — the dream that somewhere, someone might find inspiration in my journey and continue building their own.

If no one paves the way, our first lines of code become the path.

The dream of technological independence isn’t about creating a million-dollar product. It’s about understanding technology, being free with it, and letting it bridge passion with real value.

I’m still on that journey. Every line of code, every word I write, is a small but steady step. And I know, no matter how the world changes, I will remain a dreamer with an old laptop and a flower on the keyboard — a fool who believes that with a dream, we can create an entire world.

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)