# How I Built My Own JS Framework: A Dreamy Indie-Stack Journey


## What Do I Have, Want, and Do?

- Google… Angular
- Facebook… React
- China… Vue
- Me… nothing yet, no name, and I don’t really want to give it one.

I just love coding and building things I enjoy. So I coded a JS framework.

Well… it’s not really a framework.

- Its folder structure is inspired by Angular.
- It’s built with Web Components and OOP in JavaScript.

Many people code without really knowing what they’re building. I don’t like that. I like managing my code, naming everything thoughtfully, thinking through every detail. It takes time, but it’s worth it. And after many trials, I finally built my first JS framework.

No node\_modules, no external libraries—always knowing exactly what I’m coding. That’s what I wanted.

* * *

## The Challenges

Nothing worthwhile is easy, and I had my fair share of struggles.

**1. JavaScript itself**  
I wasn’t good at it. I came from C#, then Angular (TypeScript), then Golang. I had to relearn JavaScript extensively. But I loved it.

*“Anyway, JavaScript still runs.”*

It’s nothing like Golang (my main back-end language), and it doesn’t follow the strict OOP rules of C# or TypeScript. JavaScript is curious, chaotic, alive.

**2. Working alone**  
I’ve mostly been a solo developer. But this became my advantage—it freed me from overthinking and unnecessary constraints.

**3. Finances**  
Sure, it’s tough. But I use this framework to make money. The market is competitive, but I trust what I’m building.

* * *

## What I Needed in a JS Framework

- **Router** – the first thing I built. It distributes routes efficiently across the app.
- **Template system** – a core step toward basic programming components. Like other frameworks, I made it for flexibility.
- **Render engine** – the most crucial part. Initially, I used JavaScript templates, then experimented with HTML templates from other frameworks. Eventually, I wrote my own, removing redundant code. I love that it’s mine.
- **Lazy loading** – modern frameworks need it. I implemented it my way.

* * *

## Why I Did It

- I needed an **SPA** for important parts of my platform—web apps and website tools.
- I wanted to **optimize my projects**, writing code once and running it anywhere. It’s like Angular services, but I distribute it across all my platforms for faster development and higher reusability.
- I wanted **clean code**—every line and word I write, I understand it, so I can fix bugs efficiently.
- I trust myself and my vision. Fear doesn’t stop me; doing the work makes fear irrelevant.

* * *

## Looking Ahead

There’s still a lot to do, but writing this today makes me happy.

This framework represents my philosophy: building what I need, in my way, for my journey. It’s messy, personal, and completely mine—and that’s exactly how I like it.

* * *

**NOTES**  
**- Article posted in 2020 and reposted**  
\- **AI-powered translation**  
**- Read the original Vietnamese version here:** [https://hnq.vn/blog/toi-da-viet-mot-framework-js-nhu-the-nao](https://hnq.vn/blog/toi-da-viet-mot-framework-js-nhu-the-nao)

* * *

**More about me:**

- Blog: [huynhnhanquoc.com](https://huynhnhanquoc.com)
- GitHub: [github.com/huynhnhanquoc](https://github.com/huynhnhanquoc)
- Open Source: [github.com/kitmodule](https://github.com/kitmodule)
- Buy me a Coffee: [buymeacoffee.com/huynhnhanquoc](https://buymeacoffee.com/huynhnhanquoc)
- Keep me Dreaming: [ko-fi.com/huynhnhanquoc](https://ko-fi.com/huynhnhanquoc)

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

