<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Huỳnh Nhân Quốc</title>
    <description>The latest articles on DEV Community by Huỳnh Nhân Quốc (@huynhnhanquoc).</description>
    <link>https://dev.to/huynhnhanquoc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3570478%2Fe61a0147-cab7-49ef-a633-158a906b01df.jpg</url>
      <title>DEV Community: Huỳnh Nhân Quốc</title>
      <link>https://dev.to/huynhnhanquoc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/huynhnhanquoc"/>
    <language>en</language>
    <item>
      <title>Rebuilding a Go VM to Execute 1M Ops in 58ms ⚡️🔥</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Fri, 23 Jan 2026 18:25:25 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/rebuilding-a-go-vm-to-execute-1m-ops-in-58ms-9hd</link>
      <guid>https://dev.to/huynhnhanquoc/rebuilding-a-go-vm-to-execute-1m-ops-in-58ms-9hd</guid>
      <description>&lt;h2&gt;
  
  
  The Art of the Nanosecond\⚡️🔥
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“A screenshot doesn’t mean anything. It’s just virtual numbers.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That comment ended the discussion.&lt;/p&gt;

&lt;p&gt;Instead of arguing, I opened the profiler.&lt;/p&gt;

&lt;p&gt;What followed was not optimization—it was &lt;strong&gt;open-heart surgery&lt;/strong&gt; on the Kitwork Engine: dismantling the execution loop, reworking the stack model, and rewriting the VM’s core assumptions down to the bytecode level.&lt;/p&gt;

&lt;p&gt;The result:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1,000,000 operations executed in 58ms (0.058s)&lt;/strong&gt;&lt;br&gt;
A &lt;strong&gt;20× speedup&lt;/strong&gt;, pushing a Go-based virtual machine close to its physical limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining the 58ms Threshold ⚡️🔥
&lt;/h2&gt;

&lt;p&gt;58 milliseconds is invisible to humans.&lt;br&gt;
To a high-frequency system, it defines an entirely different performance class.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Human blink:&lt;/strong&gt; ~300ms&lt;br&gt;
→ In a single blink, Kitwork executes &lt;strong&gt;~5,000,000 instructions&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Finger snap:&lt;/strong&gt; ~150ms&lt;br&gt;
→ Nearly &lt;strong&gt;3 million operations completed&lt;/strong&gt; before the sound propagates.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At &lt;strong&gt;17,000,000 internal ops/sec&lt;/strong&gt;, this stops being a discussion about “fast software.”&lt;br&gt;
It becomes a discussion about &lt;strong&gt;reaction-time systems&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the Hood: The Engineering Decisions That Made It Possible ⚡️🔥
&lt;/h2&gt;

&lt;p&gt;Achieving this throughput while maintaining &lt;strong&gt;Zero GC (0 B/op)&lt;/strong&gt; required abandoning conventional interpreter design patterns.&lt;/p&gt;

&lt;p&gt;Here’s what changed.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Death of &lt;code&gt;map[string]interface{}&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Most scripting engines rely on hash maps for variable storage.&lt;br&gt;
That convenience comes with a cost: hashing, pointer chasing, and heap allocations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kitwork’s approach:&lt;/strong&gt; &lt;em&gt;Static Slot Allocation&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;During compilation (AST → Bytecode), every variable is assigned a fixed &lt;strong&gt;integer slot&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;At runtime, values are accessed through a flat slice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No hashing&lt;/li&gt;
&lt;li&gt;No dynamic lookup&lt;/li&gt;
&lt;li&gt;Constant-time access with cache-friendly memory layout&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. A Pure Stack-Based VM
&lt;/h3&gt;

&lt;p&gt;Rather than emulating object-heavy runtimes, Kitwork commits fully to a &lt;strong&gt;pre-allocated value stack&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PUSH / POP / STORE operate on a contiguous memory region&lt;/li&gt;
&lt;li&gt;Custom &lt;code&gt;Value&lt;/code&gt; structs minimize pointer usage&lt;/li&gt;
&lt;li&gt;Data stays hot in &lt;strong&gt;L1/L2 cache&lt;/strong&gt;, avoiding latency spikes caused by cache misses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where the VM stops behaving like a scripting engine&lt;br&gt;
and starts behaving like a &lt;strong&gt;tight execution core&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Zero Allocation as a Non-Negotiable Rule
&lt;/h3&gt;

&lt;p&gt;Zero GC was not a side effect.&lt;br&gt;
It was a constraint.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VM Context Pooling:&lt;/strong&gt; Execution contexts are recycled via &lt;code&gt;sync.Pool&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Stack memory is reset, not reallocated&lt;/li&gt;
&lt;li&gt;Capacity is preserved across executions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For host ↔ VM communication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zero-copy data bridge&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Pointer swapping and unsafe headers where required&lt;/li&gt;
&lt;li&gt;A 1MB payload costs &lt;strong&gt;exactly 0 bytes&lt;/strong&gt; to ingest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No allocation means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No GC pressure&lt;/li&gt;
&lt;li&gt;No pauses&lt;/li&gt;
&lt;li&gt;Fully deterministic execution latency&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Performance as a Religion ⚡️🔥
&lt;/h2&gt;

&lt;p&gt;Going from 1 second to 58ms wasn’t about “clean code.”&lt;/p&gt;

&lt;p&gt;It came from a belief that &lt;strong&gt;latency is a bug&lt;/strong&gt;, not a metric.&lt;/p&gt;

&lt;p&gt;In environments like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time bidding&lt;/li&gt;
&lt;li&gt;High-frequency trading&lt;/li&gt;
&lt;li&gt;Edge execution &amp;amp; smart gateways&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Logic must execute &lt;strong&gt;faster than the network itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Kitwork Engine exists for that class of systems:&lt;br&gt;
script-level flexibility with the behavioral predictability of a native binary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters ⚡️🔥
&lt;/h2&gt;

&lt;p&gt;People can doubt screenshots.&lt;br&gt;
They can doubt benchmarks.&lt;/p&gt;

&lt;p&gt;What they cannot doubt is the experience of a system that responds &lt;strong&gt;before the request feels complete&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your mental model still treats &lt;em&gt;1 second&lt;/em&gt; as “fast enough,”&lt;br&gt;
you’re designing for the wrong decade.&lt;/p&gt;

&lt;p&gt;Explore the engine:&lt;br&gt;
👉 &lt;strong&gt;github.com/kitwork/engine&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kitwork&lt;/strong&gt;&lt;br&gt;
Precision in chaos.&lt;br&gt;
Speed in silence.&lt;/p&gt;

&lt;p&gt;⚡️🔥&lt;/p&gt;

</description>
      <category>go</category>
      <category>cloud</category>
      <category>microservices</category>
    </item>
    <item>
      <title>Open Mindset for KitWork</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Mon, 19 Jan 2026 13:48:12 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/open-mindset-for-kitwork-2153</link>
      <guid>https://dev.to/huynhnhanquoc/open-mindset-for-kitwork-2153</guid>
      <description>&lt;h2&gt;
  
  
  Getting started opensource with README
&lt;/h2&gt;

&lt;p&gt;For me, that was the beginning, not just of Kitwork, but of an indie path that I knew was worth pursuing.&lt;/p&gt;

&lt;p&gt;Today, Kitwork is live at &lt;a href=""&gt;opens.vn&lt;/a&gt; with a small demo API available at &lt;a href=""&gt;https://opens.vn/api/price-gold/pnj&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you do not see any results, it might be because you arrived late, the server is overloaded, or simply because I have not implemented caching yet.&lt;/p&gt;

&lt;p&gt;This is also why I chose open-source. You can clone the repository and run it yourself at &lt;a href="https://github.com/kitwork/kitwork" rel="noopener noreferrer"&gt;https://github.com/kitwork/kitwork&lt;/a&gt;. Just clone the repository, run the executable for your operating system, and Kitwork will run on port 80. No Docker, no environment setup, no dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Structure of Kitwork
&lt;/h2&gt;

&lt;p&gt;The folder &lt;code&gt;./tasks&lt;/code&gt; contains &lt;code&gt;.work&lt;/code&gt; files. Currently, these files are static, so if you edit them, you need to restart the service. I plan to add a feature to automatically watch files and reload changes, similar to Git or nodemon.&lt;/p&gt;

&lt;p&gt;The folder &lt;code&gt;./router&lt;/code&gt; can be edited directly and Kitwork will reload immediately.&lt;/p&gt;

&lt;p&gt;Go code is optional. You can delete all &lt;code&gt;.go&lt;/code&gt; files. Kitwork only needs the executable file and the configuration folders.&lt;/p&gt;

&lt;p&gt;Many people think Kitwork is YAML that generates Go code. It is not. It is a combination of configuration and handler, similar to serverless functions and workflow engines, but extremely lightweight, self-running, and self-deploying. Kitwork allows me to deploy any service as quickly as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Story Begins with Kitstack
&lt;/h2&gt;

&lt;p&gt;A younger sibling once asked me, “Why do you not open-source the things you have built?”&lt;/p&gt;

&lt;p&gt;I had written a fullstack framework, which I call Kitstack. It is similar to Liquid, Django, or Spring Boot but written in Go. Kitstack sustained me for years and helped me deploy websites with just creating a profile, copying the template folder to the server, and the project runs immediately.&lt;/p&gt;

&lt;p&gt;However, Kitstack contains many customer APIs and security functions, so I could not open-source it.&lt;/p&gt;

&lt;p&gt;That is why I created Kitwork, where I extracted the essence of five years of work. It includes DNS systems, load balancing, proxy engine, template engine, plugin architecture, and a lightweight configuration experience similar to serverless.&lt;/p&gt;

&lt;p&gt;All of this will gradually be incorporated into Kitwork.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Kitwork Will Become
&lt;/h2&gt;

&lt;p&gt;I do not want Kitwork to be just a repository. I want it to be the first platform for indie hackers or small startups starting their tech dreams.&lt;/p&gt;

&lt;p&gt;You can clone a Git folder and run it. Instantly you have a backend, routing, workflow, and templates. No environment setup, Docker, or Kubernetes required.&lt;/p&gt;

&lt;p&gt;Kitwork’s long-term vision includes running self-hosted serverless functions through &lt;code&gt;.work&lt;/code&gt; files, building a low-code or no-code backend where APIs, workflows, and cron jobs can be configured without complex coding, creating a lightweight and maintainable microservice system that does not depend on the cloud or heavy infrastructure, integrating V8 using v8go to run JavaScript logic directly inside &lt;code&gt;.work&lt;/code&gt; files without Node.js, querying the database directly in &lt;code&gt;.work&lt;/code&gt; files without additional Go handlers if not needed, and rewriting the template engine to be more flexible and clean since Go templates are limited and do not support operators.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opens.vn is a playground for Testing and Sharing
&lt;/h2&gt;

&lt;p&gt;I will experiment with Kitwork at &lt;a href=""&gt;opens.vn&lt;/a&gt; and open everything to the community. Services, sample APIs, workflows, and templates can all be downloaded, edited, self-hosted, and turned into your own platform.&lt;/p&gt;

&lt;p&gt;Others sell services. I share my dream.&lt;/p&gt;

&lt;p&gt;To many, Kitwork may seem like just a website and a GitHub repository. But anyone who clones the repo and runs it will feel what I mean: a small platform with the potential to become very large, an indie tool that could spark an entire ecosystem.&lt;/p&gt;

&lt;p&gt;You can also view and vote for Kitwork on Product Hunt at &lt;a href="https://www.producthunt.com/products/kit-work" rel="noopener noreferrer"&gt;https://www.producthunt.com/products/kit-work&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Kitwork and I, as an indie hacker passionate about open-source, continue this journey. Every line of code, every workflow, is how I share my dream with the world as an indie hacker building in public.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Notes&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Article written and reposted in 2025.&lt;/li&gt;
&lt;li&gt;AI-powered translation available.&lt;/li&gt;
&lt;li&gt;Original Vietnamese version: &lt;a href="https://huynhnhanquoc.com/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac" rel="noopener noreferrer"&gt;https://hnq.vn/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kitwork</category>
      <category>programming</category>
      <category>go</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Kitwork and My Journey as an Indie Hacker Pursuing Open-Source</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Mon, 19 Jan 2026 13:43:17 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/kitwork-and-my-journey-as-an-indie-hacker-pursuing-open-source-3ag0</link>
      <guid>https://dev.to/huynhnhanquoc/kitwork-and-my-journey-as-an-indie-hacker-pursuing-open-source-3ag0</guid>
      <description>&lt;h2&gt;
  
  
  Getting started opensource with README
&lt;/h2&gt;

&lt;p&gt;For me, that was the beginning, not just of Kitwork, but of an indie path that I knew was worth pursuing.&lt;/p&gt;

&lt;p&gt;Today, Kitwork is live at &lt;a href="https://opens.vn" rel="noopener noreferrer"&gt;opens.vn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you do not see any results, it might be because you arrived late, the server is overloaded, or simply because I have not implemented caching yet.&lt;/p&gt;

&lt;p&gt;This is also why I chose open-source. You can clone the repository and run it yourself at &lt;a href="https://github.com/kitwork/kitwork" rel="noopener noreferrer"&gt;https://github.com/kitwork/kitwork&lt;/a&gt;. Just clone the repository, run the executable for your operating system, and Kitwork will run on port 80. No Docker, no environment setup, no dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Structure of Kitwork
&lt;/h2&gt;

&lt;p&gt;The folder &lt;code&gt;./tasks&lt;/code&gt; contains &lt;code&gt;.work&lt;/code&gt; files. Currently, these files are static, so if you edit them, you need to restart the service. I plan to add a feature to automatically watch files and reload changes, similar to Git or nodemon.&lt;/p&gt;

&lt;p&gt;The folder &lt;code&gt;./router&lt;/code&gt; can be edited directly and Kitwork will reload immediately.&lt;/p&gt;

&lt;p&gt;Go code is optional. You can delete all &lt;code&gt;.go&lt;/code&gt; files. Kitwork only needs the executable file and the configuration folders.&lt;/p&gt;

&lt;p&gt;Many people think Kitwork is YAML that generates Go code. It is not. It is a combination of configuration and handler, similar to serverless functions and workflow engines, but extremely lightweight, self-running, and self-deploying. Kitwork allows me to deploy any service as quickly as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Story Begins with Kitstack
&lt;/h2&gt;

&lt;p&gt;A younger sibling once asked me, “Why do you not open-source the things you have built?”&lt;/p&gt;

&lt;p&gt;I had written a fullstack framework, which I call Kitstack. It is similar to Liquid, Django, or Spring Boot but written in Go. Kitstack sustained me for years and helped me deploy websites with just creating a profile, copying the template folder to the server, and the project runs immediately.&lt;/p&gt;

&lt;p&gt;However, Kitstack contains many customer APIs and security functions, so I could not open-source it.&lt;/p&gt;

&lt;p&gt;That is why I created Kitwork, where I extracted the essence of five years of work. It includes DNS systems, load balancing, proxy engine, template engine, plugin architecture, and a lightweight configuration experience similar to serverless.&lt;/p&gt;

&lt;p&gt;All of this will gradually be incorporated into Kitwork.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Kitwork Will Become
&lt;/h2&gt;

&lt;p&gt;I do not want Kitwork to be just a repository. I want it to be the first platform for indie hackers or small startups starting their tech dreams.&lt;/p&gt;

&lt;p&gt;You can clone a Git folder and run it. Instantly you have a backend, routing, workflow, and templates. No environment setup, Docker, or Kubernetes required.&lt;/p&gt;

&lt;p&gt;Kitwork’s long-term vision includes running self-hosted serverless functions through &lt;code&gt;.work&lt;/code&gt; files, building a low-code or no-code backend where APIs, workflows, and cron jobs can be configured without complex coding, creating a lightweight and maintainable microservice system that does not depend on the cloud or heavy infrastructure, integrating V8 using v8go to run JavaScript logic directly inside &lt;code&gt;.work&lt;/code&gt; files without Node.js, querying the database directly in &lt;code&gt;.work&lt;/code&gt; files without additional Go handlers if not needed, and rewriting the template engine to be more flexible and clean since Go templates are limited and do not support operators.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opens.vn is a playground for Testing and Sharing
&lt;/h2&gt;

&lt;p&gt;I will experiment with Kitwork at &lt;a href="https://opens.vn" rel="noopener noreferrer"&gt;opens.vn&lt;/a&gt; and open everything to the community. Services, sample APIs, workflows, and templates can all be downloaded, edited, self-hosted, and turned into your own platform.&lt;/p&gt;

&lt;p&gt;Others sell services. I share my dream.&lt;/p&gt;

&lt;p&gt;To many, Kitwork may seem like just a website and a GitHub repository. But anyone who clones the repo and runs it will feel what I mean: a small platform with the potential to become very large, an indie tool that could spark an entire ecosystem.&lt;/p&gt;

&lt;p&gt;You can also view and vote for Kitwork on Product Hunt at &lt;a href="https://www.producthunt.com/products/kit-work" rel="noopener noreferrer"&gt;https://www.producthunt.com/products/kit-work&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Kitwork and I, as an indie hacker passionate about open-source, continue this journey. Every line of code, every workflow, is how I share my dream with the world as an indie hacker building in public.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Notes&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Article written and reposted in 2025.&lt;/li&gt;
&lt;li&gt;AI-powered translation available.&lt;/li&gt;
&lt;li&gt;Original Vietnamese version: &lt;a href="https://huynhnhanquoc.com/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac" rel="noopener noreferrer"&gt;https://hnq.vn/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kitwork</category>
      <category>programming</category>
      <category>opensource</category>
      <category>automation</category>
    </item>
    <item>
      <title>Building an Engine to See Programming Differently</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Mon, 19 Jan 2026 11:49:16 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/building-an-engine-to-see-programming-differently-1ann</link>
      <guid>https://dev.to/huynhnhanquoc/building-an-engine-to-see-programming-differently-1ann</guid>
      <description>&lt;h2&gt;
  
  
  Insomnia and Finding the Path
&lt;/h2&gt;

&lt;p&gt;Lately, I have been losing sleep because, for the first time in ten years, I can see my own path clearly. Last night, in a tiny nine-square-meter room, I listened to the wind outside, my mind wandering among clouds chasing dreams. In ten years, I have never seen programming so clearly. I realized I am standing at the edge of a turning point—a place where the world of programming can be seen differently.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Programming is not only about solving problems. It is about understanding, dreaming, and shaping a world with your own hands.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Roadmap = README
&lt;/h2&gt;

&lt;p&gt;Today, I finished it. KitWork is just a README, a roadmap, but for me, it is the map of my life. It contains the essence of my thoughts, my exploration, and the dreams of a programmer chasing freedom and creativity. It brings me closer to the dreams I have pursued for years: technological independence and what I call my “flowering dream.”&lt;/p&gt;

&lt;p&gt;I do not need a degree to prove anything; this README itself is proof of my journey. It captures knowledge, curiosity, and the heartbeat of a programmer chasing the edges of madness.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A simple text file can hold the life and vision of a programmer.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Inspired by Modern Tools
&lt;/h2&gt;

&lt;p&gt;KitWork draws inspiration from GitHub Actions, n8n, serverless functions, and Docker. It reminds us that programmers often create solutions for clients, but when we solve problems for ourselves, everything else begins to untangle naturally.&lt;/p&gt;

&lt;p&gt;I see a future where programming happens in the simplest files. There is no boundary between front-end and back-end, no separation between programming languages and machine languages. KitWork transforms the most complex systems into something readable, manageable, and deployable by anyone. Every action, every device, every chip can implement it—from the simplest task to the most complex microservices.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The simplest tools often reveal the deepest truths.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Programming from Simplicity
&lt;/h2&gt;

&lt;p&gt;KitWork does not replace programming languages. It turns no-code and low-code ideas into a fully functional system. It allows people to design workflows, build backends like neatly arranged strings, and replace outdated methods. Logic becomes text that both humans and machines can understand instantly.&lt;/p&gt;

&lt;p&gt;The idea came from a simple question: how to make a JavaScript file dynamic without Node.js. From GitHub Actions to serverless functions, I asked why not implement it in Golang—fast, efficient, perfect for microservices. I wanted algorithms and dynamic JS files self-contained, easy to read, easy to deploy.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Imagine waking up to systems orchestrating themselves, a backend built in hours, a workflow running without manual intervention.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Open Source and Vision
&lt;/h2&gt;

&lt;p&gt;The name KitWork carries meaning: work in workflows, work in frameworks, and work sounds like my own name. It allows shipping projects independently, self-hosting services without relying on SaaS, and managing complex operations like load balancing in a few simple files.&lt;/p&gt;

&lt;p&gt;I open-sourced it knowing someone may copy it, but that is a good thing. Open mindset is what improves the world, not just source code. KitWork simplifies complexity, makes systems readable and maintainable, and lays the groundwork for a new programming language: one of simplicity, clarity, and intentionality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Simplicity is not the absence of complexity. It is the art of making the complex understandable.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Awakening
&lt;/h2&gt;

&lt;p&gt;KitWork is the first reality of the programming journey I want to follow. It is a tool to create a future where coding is simple, transparent, free, and full of inspiration. Even the most complex systems can become readable, maintainable, and deployable by anyone. It allows humans and machines to communicate seamlessly.&lt;/p&gt;

&lt;p&gt;I can imagine mornings when systems operate automatically. I can see backends built in hours, landing pages in a few hours, entire workflows running seamlessly. This is the future I see—a world where programmers focus on ideas, not boilerplate, where logic becomes readable, and creativity flows without friction.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Even the most complex ideas can become simple. The most intricate systems can be readable and maintainable.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/kitwork/kitwork" rel="noopener noreferrer"&gt;github.com/kitwork/kitwork&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Article written and reposted in 2025.&lt;/li&gt;
&lt;li&gt;AI-powered translation available.&lt;/li&gt;
&lt;li&gt;Original Vietnamese version: &lt;a href="https://huynhnhanquoc.com/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac" rel="noopener noreferrer"&gt;https://hnq.vn/blog/xay-dung-mot-cong-cu-de-xem-lap-trinh-theo-cach-khac&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kitwork</category>
      <category>programming</category>
      <category>opensource</category>
      <category>cloud</category>
    </item>
    <item>
      <title>The Indie</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:12:02 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/the-indie-fl1</link>
      <guid>https://dev.to/huynhnhanquoc/the-indie-fl1</guid>
      <description>&lt;h2&gt;
  
  
  Indie is a profession born from dreams.
&lt;/h2&gt;

&lt;p&gt;Years ago, I carried a dream I called &lt;strong&gt;“technological independence”&lt;/strong&gt;. At the time, I had no idea what it really meant. Over the years, I realized that &lt;strong&gt;it was the dream of controlling my own code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a long time, I didn’t even know how to define the path I was on. Eventually, I discovered that &lt;strong&gt;I love writing code, creating something new, and understanding both the logic I’ve written and the product I’ve built&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Zero to First Earnings
&lt;/h2&gt;

&lt;p&gt;I started with nothing, working to earn my first tiny sums online. From 14,000 VND to hundreds of thousands, to a few million. I still remember the times when all I had was reality—&lt;strong&gt;the reality of a fool&lt;/strong&gt;, someone who later learned to call himself a dreamer.&lt;/p&gt;

&lt;p&gt;My journey began with ideas sketched on an A0 sheet, small diagrams, learning Figma to draw database schemas, and writing my first lines of code. It wasn’t just strings arranged logically. I designed DNS systems to organize domains, built templates with &lt;strong&gt;Golang template&lt;/strong&gt;, explored frameworks, and poured the dreams of a naive mind into it all.&lt;/p&gt;

&lt;p&gt;Eventually, I published a price comparison website like &lt;strong&gt;Samdy&lt;/strong&gt;, then spent days seeding links, waiting for the first numbers to appear. Just a few thousand VND. Those were some of the hardest days—grueling, exhausting—but the struggle itself became fuel, teaching me perseverance. I often reminded myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good books are written by those with experience. I am still gathering the material to write the story of my own dream.&lt;/p&gt;
&lt;h2&gt;
  
  
  A fool calls himself a dreamer.
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the past year, I began to understand the definition of an &lt;strong&gt;indie hacker&lt;/strong&gt;. In a vague, wandering way, I explored the concept through social media and chatbots, and slowly, I defined myself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dreamy Indie-stack Developer&lt;/strong&gt;. It sounds elaborate, even amateurish, but for me, it tells a story.&lt;/p&gt;

&lt;p&gt;I do not target SaaS or monthly revenue. I do not chase users for MRR (Monthly Recurring Revenue). I do not claim to be a full-stack developer because, in a world flooded with deployment tools, calling oneself full-stack feels diluted.&lt;/p&gt;

&lt;p&gt;I call myself &lt;strong&gt;indie-stack&lt;/strong&gt; because I take an idea, design a logo in Figma, write its story, and deliver it to users using anything I can. A chip, a browser, or even a full platform. While others deploy via &lt;strong&gt;Vercel, Firebase, Cloudflare&lt;/strong&gt;, I deploy with a copy command or drag it to &lt;strong&gt;self-hosted cloud&lt;/strong&gt; I control.&lt;/p&gt;

&lt;p&gt;And dreamy? The dreamer. Once, I called myself a fool, clueless about the path I was on. Now I know: the code is mine, I control it, I develop it, and I understand it.&lt;/p&gt;

&lt;p&gt;I do not tell this to boast. I tell it so you know: somewhere out there, fools and dreamers exist, chasing dreams that no one else can understand. Only the fool can see the beauty of their own dream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Indie Hacker vs Indie Developer
&lt;/h2&gt;

&lt;p&gt;I once asked a chatbot about the difference between &lt;strong&gt;indie hacker&lt;/strong&gt; and &lt;strong&gt;indie developer&lt;/strong&gt;. It said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Indie hackers are like product builders who monetize, while indie developers lean more toward games.&lt;br&gt;
Perhaps fools begin as gamers, obsessed with the game they built themselves, playing it alone before sharing it with millions. Stories like &lt;strong&gt;Nguyễn Hà Đông&lt;/strong&gt;, the BK student behind Flappy Bird, &lt;strong&gt;Brendan Greene&lt;/strong&gt;, or &lt;strong&gt;Hà Gia Bảo&lt;/strong&gt; with Binsoo show massive success.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But what about the failures? We rarely hear about them. Still, one day, I found my life’s dream, a guiding star pointing toward &lt;strong&gt;open-source&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source and Starting Now
&lt;/h2&gt;

&lt;p&gt;Back in 2019, in a coworking space, I stumbled upon the &lt;strong&gt;Wolfram Language&lt;/strong&gt; logo. Curiosity led me to Stephen Wolfram, and then TED’s talk on computational universe programming. It sparked a fire in this naive dreamer, chasing technological independence, just walking forward, believing tomorrow exists.&lt;/p&gt;

&lt;p&gt;Famous figures like Linus Torvalds inspired me as well. The teachers I’ve never met, never spoken to, never learned a word from, yet their stories shaped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Leonardo da Vinci&lt;/strong&gt; taught me to love learning, exploration, and discovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Steve Jobs&lt;/strong&gt; taught me simplicity and creativity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linus Torvalds&lt;/strong&gt; taught me perseverance with code, loving what I do, and sharing it with the world.
I admire them not for wealth or fame, but for their journeys, the mindset they modeled, the experiences I could never have on my own.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Publishing, Sharing, and Open
&lt;/h2&gt;

&lt;p&gt;I began taking parts of my code, refining it, and letting AI help polish it. I started publishing small packages and stories in English. It’s like &lt;strong&gt;Build In Public&lt;/strong&gt;, but I prefer a word that feels truer: &lt;strong&gt;Open&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Years ago, I saw people in the industry guarding their work as a secret advantage, treating it as their ultimate product. I once did the same.&lt;/p&gt;

&lt;p&gt;But openness changed me. Sharing stories, even if some disagree, reveals that fear holds us back: fear of the new, the strange, and others who may be better. My advice is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Share. Every shared story is a milestone on the path of growth.&lt;br&gt;
We are all fools in pursuit of happiness and inner peace. Life’s greatest gift is experience—the lessons we learn to grow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why I Write Code
&lt;/h2&gt;

&lt;p&gt;I did not come into this world for money.&lt;br&gt;&lt;br&gt;
I came for dreams. Dreams of creating something meaningful, leaving a small mark in this vast world.&lt;/p&gt;

&lt;p&gt;When I started, I had nothing: no capital, no connections, no foundation. Just a fragile belief that perseverance would make the world listen.&lt;/p&gt;

&lt;p&gt;Then I discovered code.&lt;br&gt;&lt;br&gt;
Code is not just a tool for living—it is the language I use to tell my story. It bridges reality and dreams.&lt;/p&gt;

&lt;p&gt;In every line, I see the logic of life. Understand the rules, and you can change them.&lt;br&gt;&lt;br&gt;
In every project, I feel the power of thought and creation: nothing is too far if you dare to start from zero.&lt;/p&gt;

&lt;p&gt;But code alone cannot run without the fuel of reality.&lt;br&gt;&lt;br&gt;
Long, grueling days, failures, sleepless nights—they burn raw, honest energy into me. Reality, with all its dark corners, fuels my journey.&lt;/p&gt;

&lt;p&gt;I do not code to escape reality. I code to understand it, to make it more beautiful.&lt;br&gt;&lt;br&gt;
And though money, fame, or success may come and go, the dream remains. It shines whenever I type the first line of a new idea.&lt;/p&gt;

&lt;p&gt;I don’t know how far I will go. But I do know this: &lt;strong&gt;every line I write today is a small step connecting reality and dreams.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As long as I keep writing, creating, and living by my ideals, I am on the right path.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Message for You
&lt;/h2&gt;

&lt;p&gt;If you are starting from zero, remember:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every great journey begins with a small step.&lt;/li&gt;
&lt;li&gt;No one is born with light. It is created from falls, long nights without giving up, and moments when you tell yourself, “I can do this.”&lt;/li&gt;
&lt;li&gt;Do not fear reality. Turn it into fuel.&lt;/li&gt;
&lt;li&gt;Today’s limits become tomorrow’s strength.
When you look back, you will realize: the most valuable thing is not where you’ve reached, but &lt;strong&gt;who you’ve become on your way to your dreams&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Notes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/nghe-indie" rel="noopener noreferrer"&gt;https://hnq.vn/blog/nghe-indie&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  More About Me
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blog: &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Source: &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buy me a Coffee: &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep me Dreaming: &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>codinglife</category>
      <category>programming</category>
      <category>dreamerdeveloper</category>
      <category>indiedeveloper</category>
    </item>
    <item>
      <title>A Dreamy Developer Finding Where I Belong</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:11:25 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/a-dreamy-developer-finding-where-i-belong-5bkh</link>
      <guid>https://dev.to/huynhnhanquoc/a-dreamy-developer-finding-where-i-belong-5bkh</guid>
      <description>&lt;h2&gt;
  
  
  When I Didn’t Know Who I Was
&lt;/h2&gt;

&lt;p&gt;Lately, I’ve been revisiting my old writings. Some are from five years ago, lost among half-finished ideas. Some I never dared to hit Publish. Some I wrote and deleted because I didn’t know who I was writing for.&lt;/p&gt;

&lt;p&gt;Now I ask AI to translate them into English, trying different versions, comparing every sentence, searching for what truly feels like my voice. They may be small pieces of writing, but for me, they are part of a quiet pilgrimage—a way to rediscover myself, line by line.&lt;/p&gt;

&lt;p&gt;I no longer write to be read. I write to listen to myself.&lt;/p&gt;

&lt;p&gt;When I first started coding, I didn’t know where I was going. I just knew I loved creating things. A piece of code that worked. A product that someone actually used. Something I could call my own. I never imagined I would one day become the Dreamy Developer.&lt;/p&gt;

&lt;p&gt;I wrote small blogs in little communities about programming, side projects, and fragments of life. I built websites, wrote, and shared like someone trying to find a corner of the Internet to belong to. But nowhere truly felt like home.&lt;/p&gt;

&lt;p&gt;I learned and worked with &lt;strong&gt;C#&lt;/strong&gt;, then &lt;strong&gt;Angular&lt;/strong&gt;. Then one day, I met &lt;strong&gt;Golang&lt;/strong&gt;, and everything started to change.&lt;/p&gt;

&lt;p&gt;Golang taught me neatness, pragmatism, and minimal thinking. It was not flashy or demanding, but it forced me to understand the essence of problems. No hiding ignorance. No masking code. It reflected my own growth, teaching me to live honestly with myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting from Nothing
&lt;/h2&gt;

&lt;p&gt;I still remember those early days. Just an old laptop and a vague belief that I could make something happen.&lt;/p&gt;

&lt;p&gt;I wrote my first lines of code for &lt;strong&gt;DNS&lt;/strong&gt;, built my first template architectures, and got my first client. Then &lt;strong&gt;Samdy&lt;/strong&gt; was born and reached the Top 100 e-commerce websites in Vietnam.&lt;/p&gt;

&lt;p&gt;At one point it earned about &lt;strong&gt;600 USD per month&lt;/strong&gt;, even when barely running. Later, I moved into affiliate marketing. I wrote content, ran ads, and stayed up countless nights optimizing campaigns. At one point, I earned &lt;strong&gt;2,500 USD per month&lt;/strong&gt; with around &lt;strong&gt;800 USD&lt;/strong&gt; in costs.&lt;/p&gt;

&lt;p&gt;I also received awards like First Prize in “Nhìn lại hành trình” and Second Prize in “Kể đi chờ chi.”&lt;/p&gt;

&lt;p&gt;But I realized that numbers and titles cannot define me. They are experiences, checkpoints that help me understand effort, limits, and myself.&lt;/p&gt;

&lt;p&gt;Even now, I earn a modest income each month.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;More importantly, I still walk this path—to write, to code, to share, to live quietly and persistently with my dream.&lt;/p&gt;
&lt;h2&gt;
  
  
  Realizing I Am an Indie Hacker
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;At first, I thought I was just building software out of passion. Looking back, I realized I had been an &lt;strong&gt;Indie Hacker&lt;/strong&gt; all along.&lt;/p&gt;

&lt;p&gt;Indie Hackers build products and companies independently, without investors or big corporations. They bootstrap, work independently, and often share their journey publicly.&lt;/p&gt;

&lt;p&gt;That is exactly what I have been doing. Creating small tools, tiny platforms, learning, sharing, and living alongside them.&lt;/p&gt;

&lt;p&gt;I started with nothing but willpower, small lines of code. And now I build products that help others. I am not just coding anymore. I am creating a small world of my own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning from Build in Public
&lt;/h2&gt;

&lt;p&gt;Then I discovered &lt;strong&gt;Build in Public&lt;/strong&gt;, and it clicked. Share.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When you are right, you guide others. When you are wrong, you guide yourself.&lt;br&gt;
You do not need success to share. You do not need perfection. Being real is enough.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I began writing again about what I do, think, and try. Even failed projects, unfinished code, and half-built frameworks. The more I shared, the more I realized the journey is about understanding.&lt;/p&gt;

&lt;p&gt;Understanding why I code. Understanding why I continue even when no one is watching. Understanding myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  No Titles, Just Definition
&lt;/h2&gt;

&lt;p&gt;I no longer chase labels. I am not just a coder, marketer, or indie hacker. I am someone who writes, codes, reflects, and dreams. Someone standing between technology and emotion, between logic and intuition.&lt;/p&gt;

&lt;p&gt;I now call myself a &lt;strong&gt;Dreamy Indie Stack Developer&lt;/strong&gt;. I build my own small technical universe in my own way, at my own pace.&lt;/p&gt;

&lt;p&gt;I do not have a team. I do not have investors. All I need is space to experiment, fail, learn, and share.&lt;/p&gt;

&lt;p&gt;I create small but genuine things like &lt;strong&gt;KitModule&lt;/strong&gt;, &lt;strong&gt;KitJS&lt;/strong&gt;, or other tools I find beautiful and useful. Maybe someone else will find them helpful too.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Journey Is Home
&lt;/h2&gt;

&lt;p&gt;This journey has never been easy. Some days I want to quit. Some days I look around and everyone seems ahead.&lt;/p&gt;

&lt;p&gt;But I chose this path not because it is easy, but because it is mine. My dream.&lt;/p&gt;

&lt;p&gt;Every line of code, every blog post, every idea is part of me. I no longer need to search for where I belong. The journey itself is home.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I write. I code. I dream. This is the life of a &lt;strong&gt;Dreamy Developer&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Notes
&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/dreamy-developer-di-tim-noi-minh-thuoc-ve" rel="noopener noreferrer"&gt;https://hnq.vn/blog/dreamy-developer-di-tim-noi-minh-thuoc-ve&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;More about me&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blog: &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Source: &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buy me a Coffee: &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep me Dreaming: &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>indiedeveloper</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>The Dream of Indie Coders</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:10:47 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/the-dream-of-indie-coders-10g7</link>
      <guid>https://dev.to/huynhnhanquoc/the-dream-of-indie-coders-10g7</guid>
      <description>&lt;h2&gt;
  
  
  A Kindred Spirit
&lt;/h2&gt;

&lt;p&gt;It’s been a long time since I talked to someone who shares the same wavelength.&lt;br&gt;&lt;br&gt;
Even though our conversation was only online, it felt as if we could clearly see each other’s path.&lt;/p&gt;

&lt;p&gt;We met through a thread.&lt;br&gt;&lt;br&gt;
I don’t know what to call this relationship.&lt;br&gt;&lt;br&gt;
Maybe, since we first encountered each other in a BuildInPublic group, we could call ourselves indie hackers.&lt;/p&gt;

&lt;p&gt;But why do I title this piece &lt;em&gt;“The Dream of Indie Coders”&lt;/em&gt;?&lt;br&gt;&lt;br&gt;
Perhaps it’s because of where we come from.&lt;br&gt;&lt;br&gt;
We are young people chasing our own dreams, feeling &lt;em&gt;alive&lt;/em&gt; when we code and follow our passion.&lt;/p&gt;

&lt;p&gt;We might have to work harder than others to reach what we truly desire — that is, to live fully within our own dream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vanilla JS and Early Ambitions
&lt;/h2&gt;

&lt;p&gt;Lately, I’ve met many developers still using Vanilla JS.&lt;br&gt;&lt;br&gt;
While most run after frameworks, we choose a different path.&lt;/p&gt;

&lt;p&gt;Five years ago, I returned to Tam Kỳ and began coding the purest version of my dream — with Golang and Vanilla JS.&lt;br&gt;&lt;br&gt;
Recently, I started releasing a small library (or framework, depending on how you see it) called &lt;strong&gt;Kit JS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Yet, I want to preserve the purity, the raw power of Vanilla JS, carrying it forward while combining it with SSR capabilities.&lt;/p&gt;

&lt;p&gt;I didn’t write this library to compete or change the world.&lt;br&gt;&lt;br&gt;
I just wanted to reconnect with the original strength of these languages — a way to remember where I came from.&lt;/p&gt;

&lt;p&gt;Like the story of backend languages trying their hand at frontend — it can work in some ways, like with WebAssembly — but it’s not everything, and certainly not a complete full-stack solution.&lt;/p&gt;

&lt;p&gt;I once thought deep learning in programming meant mastering frameworks or flashy languages like TypeScript.&lt;br&gt;&lt;br&gt;
But the more I code, creating small libraries to solve simple tasks, the more I realize:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Learning deeply is learning the fundamentals first.”&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Today
&lt;/h2&gt;

&lt;p&gt;Today is a rushed coding day.&lt;br&gt;&lt;br&gt;
I am expanding the core of Kit JS and deleting lines of code I spent hours writing — much like the ninth time I refactor my Golang system.&lt;/p&gt;

&lt;p&gt;I used to ask myself:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Who will recognize this? Who will pay for this?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now, I no longer seek an answer.&lt;br&gt;&lt;br&gt;
My heart has already answered.&lt;/p&gt;

&lt;p&gt;Sometimes, a developer’s happiness is simply sitting in a café, amidst bustling people, yet keeping a heart fully devoted to passion.&lt;br&gt;&lt;br&gt;
Sunlight kisses the streets, and a foolish dream is guided by the heart.&lt;/p&gt;

&lt;h2&gt;
  
  
  We — Seekers of Tiny Happiness
&lt;/h2&gt;

&lt;p&gt;We chase ambitions, smiles, and a small happiness in every line of code.&lt;br&gt;&lt;br&gt;
Every tiny snippet contributes to the world beyond our screens.&lt;/p&gt;

&lt;p&gt;I’ve asked myself:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Why do I exist in this world?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Perhaps many coders have asked the same.&lt;br&gt;&lt;br&gt;
If we had a “platform” handed to us, would we still dare to dream?&lt;/p&gt;

&lt;p&gt;Tomorrow, the sun will bloom again — like a flower spreading its fragrance across the sky.&lt;br&gt;&lt;br&gt;
Just like us, still seeking our own happiness.&lt;/p&gt;

&lt;p&gt;That happiness might just be a small dream — of one or many indie coders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code, Low-Code, or No-Code at All
&lt;/h2&gt;

&lt;p&gt;The world remains beautiful — beautiful because we can draw our dreams in code.&lt;/p&gt;

&lt;p&gt;I will step outside and enjoy a sunny day.&lt;br&gt;&lt;br&gt;
The sun still dreams, and the code keeps flowing.&lt;/p&gt;

&lt;p&gt;Clouds — true to their name — are just clouds.&lt;br&gt;&lt;br&gt;
And perhaps life, too, drifts along those clouds.&lt;/p&gt;

&lt;p&gt;We are just small developers, seeking happiness in coding, contributing, and leaving a mark in the world.&lt;/p&gt;

&lt;p&gt;Out there, some have fame, titles, and recognition.&lt;br&gt;&lt;br&gt;
We — the foolish ones — only have hearts that resonate and mutual respect for our craft.&lt;br&gt;&lt;br&gt;
I have always looked up to Linus as a giant in that sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hearts of Laughing Fools
&lt;/h2&gt;

&lt;p&gt;Today, the wind may not stir the trees, but sunlight peeks through after a sudden rain.&lt;br&gt;&lt;br&gt;
If we could, we would code for a lifetime.&lt;/p&gt;

&lt;p&gt;He once told me:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“The happiest days are Friday and Saturday — the days I get to do something just for myself.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I am luckier — I don’t “sell myself,” because I indulge my foolish heart and make it suffer sometimes.&lt;br&gt;&lt;br&gt;
But neither of us has another choice.&lt;br&gt;&lt;br&gt;
Because we have no “platform.”&lt;/p&gt;

&lt;p&gt;Ah, yes — we do.&lt;br&gt;&lt;br&gt;
Our platform is the dream — the dream of foolish indie coders, delightfully naive.&lt;/p&gt;

&lt;p&gt;I always hope that other builders will keep moving forward.&lt;br&gt;&lt;br&gt;
Step by step.&lt;/p&gt;

&lt;p&gt;If you walk towards the sun, you will feel its warmth.&lt;br&gt;&lt;br&gt;
And if you walk against the sun, the light will still follow.&lt;/p&gt;

&lt;p&gt;Every step has a reason to begin.&lt;br&gt;&lt;br&gt;
And perhaps, we all started somewhere — with a small dream.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;— Written on a sunny morning, with keystrokes echoing in rhythm with the heartbeat.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/giac-mo-cua-nhung-indie-coder" rel="noopener noreferrer"&gt;https://hnq.vn/blog/giac-mo-cua-nhung-indie-coder&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;More about me:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blog: &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Source: &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buy me a Coffee: &lt;a href="https://www.buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep me Dreaming: &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>codinglife</category>
      <category>opensource</category>
      <category>kitjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Indie Path</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:10:10 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/the-indie-path-1pa7</link>
      <guid>https://dev.to/huynhnhanquoc/the-indie-path-1pa7</guid>
      <description>&lt;h2&gt;
  
  
  The Dream of Technological Independence
&lt;/h2&gt;

&lt;p&gt;I remember it clearly — sitting in a tiny café, looking at my own hands and asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What am I really looking for?”&lt;br&gt;
No one answered. All I knew was that if I had nothing to lose, then everything left was an opportunity to start over.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Golang and the Dream of a Fool
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;I started from scratch: learning syntax, practicing routers with &lt;code&gt;mux&lt;/code&gt;, exploring &lt;code&gt;fiber&lt;/code&gt;, 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 &lt;strong&gt;everything to the core&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;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 &lt;strong&gt;laying the first bricks of a dream yet to take shape&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  SSR — Returning to the Original Dream
&lt;/h2&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;``add(a, b) =&amp;gt; a + b``
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Working with SSR, I realized something many modern frameworks forget: &lt;strong&gt;the web isn’t about complexity, it’s about improving experiences&lt;/strong&gt;. 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript and Dreams
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“Are JS frameworks just flawed versions of JavaScript itself?”&lt;br&gt;
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: &lt;strong&gt;two-way binding&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From those nights, &lt;strong&gt;Kit JS&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;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, &lt;code&gt;define&lt;/code&gt;, &lt;code&gt;reference&lt;/code&gt;, to inheritance. To me, Kit JS is more than code; it’s a message:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Understand technology before depending on it.”&lt;/p&gt;
&lt;h2&gt;
  
  
  Openness and the Indie Path
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;I like to call myself an &lt;strong&gt;indie-stack developer&lt;/strong&gt; — 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;If no one paves the way, our first lines of code &lt;strong&gt;become the path&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;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 &lt;strong&gt;a dreamer with an old laptop and a flower on the keyboard&lt;/strong&gt; — a fool who believes that with a dream, we can create an entire world.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/con-duong-indie" rel="noopener noreferrer"&gt;https://hnq.vn/blog/con-duong-indie&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;More about me:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blog: &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Source: &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buy me a Coffee: &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep me Dreaming: &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>dreamer</category>
      <category>opensource</category>
      <category>kitjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Directive Sync – The “Odd” Story of Kit JS</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:09:33 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/directive-sync-the-odd-story-of-kit-js-1nlo</link>
      <guid>https://dev.to/huynhnhanquoc/directive-sync-the-odd-story-of-kit-js-1nlo</guid>
      <description>&lt;h2&gt;
  
  
  The Idea Emerges
&lt;/h2&gt;

&lt;p&gt;When I started developing &lt;strong&gt;Kit JS&lt;/strong&gt;, I ran into a problem that most JS frameworks tend to ignore.&lt;/p&gt;

&lt;p&gt;My website was &lt;strong&gt;SSR-rendered&lt;/strong&gt; (server-side rendering). Everything was already in the HTML; SEO was ready. But when I tried to pass state or scope from the client back into these rendered elements, the entire component would &lt;strong&gt;re-render&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And I realized: I didn’t want to redraw the world. I just wanted to &lt;strong&gt;sync the data&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;From that realization, &lt;strong&gt;Directive Sync&lt;/strong&gt; was born.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sync – A Different Rhythm of Data
&lt;/h2&gt;

&lt;p&gt;If a model is the way a framework pushes state to the view, &lt;strong&gt;sync is the way the view talks back to the state&lt;/strong&gt; — a closed loop without destroying or rebuilding the DOM.&lt;/p&gt;

&lt;p&gt;In other words, sync doesn’t “recreate,” it &lt;strong&gt;listens and records&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Directive Sync wasn’t designed to oppose the model; it’s a &lt;strong&gt;natural evolution&lt;/strong&gt; in the SSR context.&lt;br&gt;&lt;br&gt;
It allows server-rendered pages to behave like lightweight SPAs, without sacrificing &lt;strong&gt;SEO, speed, or the static nature of the page&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Sync is Needed
&lt;/h2&gt;

&lt;p&gt;In most frameworks, if you want &lt;strong&gt;two-way binding&lt;/strong&gt;, the framework must control the entire DOM.&lt;/p&gt;

&lt;p&gt;This means that when HTML is rendered from the server, the framework must &lt;strong&gt;re-render on the client&lt;/strong&gt; to establish bindings. The result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SEO bots see the raw HTML, not the actual state.&lt;/li&gt;
&lt;li&gt;Users see a “flash” during re-render.&lt;/li&gt;
&lt;li&gt;We end up running client and server as two separate worlds.
&lt;strong&gt;Sync solves this&lt;/strong&gt; by injecting values from the already-rendered DOM back into the scope.
No re-render, no DOM diffing — just reading the &lt;strong&gt;real data from the server&lt;/strong&gt; and keeping it consistent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Philosophy Behind Kit JS and Directive Sync
&lt;/h2&gt;

&lt;p&gt;Kit JS wasn’t created to replace other frameworks.&lt;br&gt;&lt;br&gt;
It emerged from a very specific need: to &lt;strong&gt;bridge the static and dynamic worlds&lt;/strong&gt;, SSR and reactive UI.&lt;/p&gt;

&lt;p&gt;It’s not a “new framework idea” — it’s a &lt;strong&gt;counterflow mindset&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If the data is already there, why redraw it?&lt;br&gt;
Sync embodies that philosophy — &lt;strong&gt;simple, practical, and respectful of what already exists&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It doesn’t claim DOM ownership or force you to “rerun” your app. It quietly synchronizes everything so that it continues to work as it should.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A Small Piece of a Larger Journey
&lt;/h2&gt;

&lt;p&gt;For me, &lt;strong&gt;Kit JS&lt;/strong&gt; isn’t a framework race.&lt;br&gt;&lt;br&gt;
It’s a personal journey to &lt;strong&gt;rediscover minimalism in web development&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Directive Sync is just one piece — a slightly “odd” piece because it doesn’t follow pure reactivity. Instead, it blends &lt;strong&gt;static rendering with dynamic data life&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And perhaps, in that “oddness,” we find another path — a place where the web is &lt;strong&gt;fast, real, and still soulful&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/kitmodule/kitjs" rel="noopener noreferrer"&gt;https://github.com/kitmodule/kitjs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTES&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/directive-sync-cau-chuyen-di-cua-kit-js" rel="noopener noreferrer"&gt;https://hnq.vn/blog/directive-sync-cau-chuyen-di-cua-kit-js&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;More about me:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blog: &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub: &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Source: &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buy me a Coffee: &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep me Dreaming: &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>frontend</category>
      <category>opensource</category>
      <category>kitjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Does Kit JS Exist?</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:08:56 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/why-does-kit-js-exist-19oc</link>
      <guid>https://dev.to/huynhnhanquoc/why-does-kit-js-exist-19oc</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Comparison&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If we compare Kit JS with Alpine, Angular, React, Vue, or even HTMX, the truth is — Kit JS wasn’t born to compete.&lt;br&gt;&lt;br&gt;
Honestly? It’s not as powerful as those tools.&lt;/p&gt;

&lt;p&gt;That’s because &lt;strong&gt;Kit JS isn’t trying to be a full-stack framework&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Its purpose is to &lt;strong&gt;hydrate&lt;/strong&gt; HTML on the client-side, following a philosophy of &lt;strong&gt;fast, light, and simple&lt;/strong&gt; — a mindset I “borrowed” from &lt;strong&gt;Golang&lt;/strong&gt;, the language I’ve been exploring.&lt;/p&gt;

&lt;p&gt;In a way, it’s similar to Web Components.&lt;br&gt;&lt;br&gt;
I even developed a similar system years ago using the same philosophy — entirely written in JavaScript.&lt;/p&gt;

&lt;p&gt;But here’s what sets Kit JS apart:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It has a &lt;strong&gt;compile system&lt;/strong&gt; reminiscent of &lt;strong&gt;AngularJS (Angular 1)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It’s written purely in JavaScript.&lt;/li&gt;
&lt;li&gt;It doesn’t use &lt;code&gt;eval&lt;/code&gt; or &lt;code&gt;new Function&lt;/code&gt;.
Many modern frameworks avoid these functions during build time.
Kit JS? It runs &lt;strong&gt;directly&lt;/strong&gt; — no build, no custom config.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performance-wise, the evaluation might be slightly slower without &lt;code&gt;eval&lt;/code&gt; or &lt;code&gt;new Function&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
But in return, you get &lt;strong&gt;safety, clarity, and independence from build tools&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Is Kit JS?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kit JS&lt;/strong&gt; is a small, lightweight JavaScript framework/library built to &lt;strong&gt;enhance (hydrate)&lt;/strong&gt; HTML elements already rendered from the server.&lt;/p&gt;

&lt;p&gt;It doesn’t replace frameworks.&lt;br&gt;&lt;br&gt;
It doesn’t recreate the DOM.&lt;br&gt;&lt;br&gt;
It doesn’t require a build.&lt;/p&gt;

&lt;p&gt;It simply &lt;strong&gt;breathes life into static HTML&lt;/strong&gt;, making it interactive and responsive to client-side data.&lt;/p&gt;

&lt;p&gt;In my ecosystem, the server (written in Go) handles rendering and routing like a full-stack framework.&lt;br&gt;&lt;br&gt;
Kit JS focuses &lt;strong&gt;solely on client enhancement&lt;/strong&gt;, keeping HTML dynamic without complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Not&lt;/strong&gt;&lt;code&gt;eval&lt;/code&gt;&lt;strong&gt;or&lt;/strong&gt;&lt;code&gt;new Function&lt;/code&gt;&lt;strong&gt;?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The answer is simple:&lt;br&gt;&lt;br&gt;
It’s my &lt;strong&gt;personal philosophy&lt;/strong&gt; and vision for the next step in creating (or finding) a tool that fits me.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Journey and Philosophy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I’m a web developer — or someone who touches all things website-related.&lt;br&gt;&lt;br&gt;
And I always ask slightly odd questions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why can’t a website run anywhere?”&lt;br&gt;
I’ve tried a lot:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wails&lt;/strong&gt;, &lt;strong&gt;WebView&lt;/strong&gt; for running web like an app&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA / TWA&lt;/strong&gt; to turn web into mobile apps&lt;/li&gt;
&lt;li&gt;Learning how &lt;strong&gt;React Native&lt;/strong&gt; or &lt;strong&gt;Flutter&lt;/strong&gt; build interfaces
But in the end, what I truly needed was much simpler —
like writing a &lt;strong&gt;vanilla JS Chrome Extension&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve ever done that, you’ll know the feeling: &lt;strong&gt;pure simplicity and elegance&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It’s like putting a static website online: one &lt;code&gt;index.html&lt;/code&gt; file, upload, and it works.&lt;br&gt;&lt;br&gt;
For me, it’s even simpler.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Just copy a single JS file to the server —&lt;br&gt;&lt;br&gt;
like Steve Jobs’ iconic “drag to trash” action.&lt;br&gt;
For a demo, I just copy the file via &lt;strong&gt;SSH in VS Code&lt;/strong&gt; — bam, the website comes alive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Do This?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you’ve ever searched for a tool to build a personal blog, you’ll understand:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;websites need SEO&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nowadays, most JS frameworks handle SEO well.&lt;br&gt;&lt;br&gt;
But back when &lt;strong&gt;JAMstack&lt;/strong&gt; was still unknown, I was transitioning from Angular to Go.&lt;/p&gt;

&lt;p&gt;I had one goal:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Publish a website as &lt;strong&gt;simply and quickly as possible&lt;/strong&gt;.”&lt;br&gt;
Later, I wanted &lt;strong&gt;better management for all my websites&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
That’s when I realized:&lt;/p&gt;

&lt;p&gt;“Different goals require different tools.”&lt;br&gt;
I’m not saying React or Vue are outdated.&lt;br&gt;&lt;br&gt;
They just solve different problems.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just like over &lt;strong&gt;50% of websites still use jQuery&lt;/strong&gt;, and many PHP developers still find work easily.&lt;/p&gt;

&lt;p&gt;No language is perfect.&lt;br&gt;&lt;br&gt;
Only the language — or tool — &lt;strong&gt;fit for your purpose&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Real Purpose&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you know &lt;strong&gt;HTMX&lt;/strong&gt;, you might wonder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why create this when Vue or React exists?”&lt;br&gt;
The truth:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Every tool, library, or framework is created to serve its creator first.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kit JS is no different — it serves me first.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Target Audience&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let me reiterate the concept of &lt;strong&gt;hydration&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Kit JS is perfect for SSR websites like &lt;strong&gt;PHP (WordPress, Laravel), Liquid, Django, Flask, Golang Templates…&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
All of these already render the DOM.&lt;br&gt;&lt;br&gt;
Kit JS just makes it &lt;strong&gt;smoother, more fluid, and easier to interact with&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Need to build a Chrome Extension as quickly as a static website? Kit JS works.&lt;br&gt;&lt;br&gt;
No bundling.&lt;br&gt;&lt;br&gt;
No package.&lt;br&gt;&lt;br&gt;
No NodeJS.&lt;/p&gt;

&lt;p&gt;If you, like me, manage multiple small websites/products, you understand:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;you don’t want to build and deploy each one separately.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You just want to copy &lt;strong&gt;one file to the server and go&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Kit JS is a package I extracted to &lt;strong&gt;share the #buildinpublic story&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Everything else in my system is managed via &lt;strong&gt;Go&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Finally, Kit JS is for anyone who wants to &lt;strong&gt;research, share, and learn&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
I open-sourced it so others can &lt;strong&gt;read, understand, customize, or clone&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You don’t need to explain. Just let me read your code.”&lt;br&gt;
Whatever language you write in, if I can read your code, I can rewrite it in &lt;strong&gt;Golang&lt;/strong&gt; — my favorite language.&lt;br&gt;&lt;br&gt;
Just like I once read an open-source PHP project and rewrote it in Go — not to learn PHP, but to study the algorithm inside.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s what I pursue.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;And Finally — I Am a Dreamer Developer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Why “dreamer”?&lt;br&gt;&lt;br&gt;
Because experiences and circumstances differ.&lt;/p&gt;

&lt;p&gt;I’ve coded and deleted.&lt;br&gt;&lt;br&gt;
I’ve chased deadlines without pay.&lt;br&gt;&lt;br&gt;
I’ve done things just to &lt;strong&gt;learn&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I’m not better than anyone.&lt;br&gt;&lt;br&gt;
I’m just walking a slightly different path.&lt;/p&gt;

&lt;p&gt;I share this story for other &lt;strong&gt;builders out there&lt;/strong&gt; —&lt;br&gt;&lt;br&gt;
those quietly creating something:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Keep your passion. Keep being a little foolish.”&lt;br&gt;
&lt;strong&gt;&lt;a href="https://github.com/kitmodule/kitjs" rel="noopener noreferrer"&gt;https://github.com/kitmodule/kitjs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;NOTES&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Read the original Vietnamese version here:&lt;a href="https://huynhnhanquoc.com/blog/tai-sao-kit-js-ton-tai" rel="noopener noreferrer"&gt;https://hnq.vn/blog/tai-sao-kit-js-ton-tai&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;More About Me&lt;/strong&gt;
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blog:&lt;/strong&gt; &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Source:&lt;/strong&gt; &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Buy me a Coffee:&lt;/strong&gt; &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep me Dreaming:&lt;/strong&gt; &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>hydration</category>
      <category>opensource</category>
      <category>kitjs</category>
      <category>dreamerdeveloper</category>
    </item>
    <item>
      <title>Kit JS – A JavaScript Framework Written by a Dreamer</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:08:19 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/kit-js-a-javascript-framework-written-by-a-dreamer-48fh</link>
      <guid>https://dev.to/huynhnhanquoc/kit-js-a-javascript-framework-written-by-a-dreamer-48fh</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;The Beginning — From Angular to a Simpler Dream&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Today, I want to share the story of Kit JS, a tiny JavaScript framework I built by hand.It’s still in its experimental phase — plenty left to optimize, extend, and refine — but I’m sharing it now in the spirit of #buildinpublic and #opencoding.&lt;/p&gt;

&lt;p&gt;I used to be an Angular Developer — back in the days of Angular 4 to 8.&lt;br&gt;&lt;br&gt;
I loved Angular deeply... until I realized how &lt;strong&gt;unfriendly it was for SEO&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That realization pushed me toward &lt;strong&gt;static websites&lt;/strong&gt; — lightweight, pre-rendered, secure, and beautifully simple.&lt;/p&gt;

&lt;p&gt;Then I discovered &lt;strong&gt;JAMstack&lt;/strong&gt; — a fresh way of thinking about the web.&lt;br&gt;&lt;br&gt;
But the deeper I went, the louder one question became:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why do we need an entire ecosystem, complex builds, and tens of thousands of dependencies just to make a simple website?”&lt;br&gt;
Meanwhile, in &lt;strong&gt;Golang&lt;/strong&gt;, my current love language, I saw something different:&lt;br&gt;&lt;br&gt;
A web app could be just a few &lt;code&gt;.html&lt;/code&gt;, &lt;code&gt;.css&lt;/code&gt;, and &lt;code&gt;.js&lt;/code&gt; files — rendered by templates, instantly understood by the browser.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Looking Back at the Age of All-Powerful JavaScript&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once, websites were simple — built with PHP, WordPress, or static files — and they worked perfectly fine.&lt;br&gt;&lt;br&gt;
Then came the age of “all-powerful” frameworks: React, Vue, Angular… each strong in its own way, yet often burdened by unnecessary complexity.&lt;/p&gt;

&lt;p&gt;I began to wonder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why can’t we go back to something simpler — like AngularJS (Angular 1)?&lt;br&gt;&lt;br&gt;
A lightweight framework for dynamic web pages — no build, no setup, just run.”&lt;br&gt;
That’s when the idea of &lt;strong&gt;Dynamic Stack&lt;/strong&gt; was born — “dynamic only where it truly needs to be.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After years of experiments — from Vue to Web Components, then abandoning them all to write in &lt;strong&gt;vanilla JS&lt;/strong&gt; — I finally returned with a new perspective.&lt;br&gt;&lt;br&gt;
More mature.&lt;br&gt;&lt;br&gt;
And, perhaps, more &lt;em&gt;dreamy&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Kit JS — Pure, Simple, and Alive&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kit JS&lt;/strong&gt; was built for one person first — me.&lt;/p&gt;

&lt;p&gt;Its purpose is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Make JavaScript feel as easy as the first day we learned HTML — one &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag and a single line of code to make magic happen.”&lt;br&gt;
No build.&lt;br&gt;&lt;br&gt;
No Node.&lt;br&gt;&lt;br&gt;
No complex configs.&lt;br&gt;&lt;br&gt;
Just simplicity — like the &lt;strong&gt;old days of jQuery&lt;/strong&gt;, when you could drop a CDN link and start coding immediately.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Kit JS&lt;/strong&gt; isn’t here to compete.&lt;br&gt;&lt;br&gt;
It doesn’t want to be the next “all-in-one framework.”&lt;br&gt;&lt;br&gt;
It’s just a small companion — to help you code faster, understand deeper, and bring your HTML to life.&lt;/p&gt;

&lt;p&gt;Because I believe the best security still starts at the &lt;strong&gt;server&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
That’s why Kit JS avoids dangerous patterns like &lt;code&gt;eval&lt;/code&gt; or &lt;code&gt;new Function&lt;/code&gt;, stays &lt;strong&gt;CSP-compliant&lt;/strong&gt;, and works in &lt;strong&gt;any environment&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;A Framework of Feelings, Not Just Technology&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;For me, &lt;strong&gt;Kit JS&lt;/strong&gt; isn’t just code.&lt;br&gt;&lt;br&gt;
It’s a piece of a dream — a dream of those early web days when we’d open a &lt;code&gt;.html&lt;/code&gt; file, write a few lines of JS, save, and &lt;em&gt;watch it come alive&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;No builds.&lt;br&gt;&lt;br&gt;
No terminals.&lt;br&gt;&lt;br&gt;
No pipelines.&lt;br&gt;&lt;br&gt;
Just code, a browser, and that quiet “wow” moment when creation breathes.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Whispers Across the Desert&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Recently, I read a story about a “shark” from my hometown — and it reminded me of something someone once said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What you’re doing is just a grain of sand in the desert.&lt;br&gt;&lt;br&gt;
Don’t try to reinvent the wheel.”&lt;br&gt;
Maybe they’re right.&lt;br&gt;&lt;br&gt;
But if no one dares to try, the desert will remain only sand.&lt;br&gt;&lt;br&gt;
And if I take a single step, at least there’ll be a &lt;strong&gt;footprint&lt;/strong&gt; there — mine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m not here to teach or preach.&lt;br&gt;&lt;br&gt;
I’m just a guy who loves &lt;strong&gt;code&lt;/strong&gt;, loves the &lt;strong&gt;beauty of logic&lt;/strong&gt;, and loves the &lt;strong&gt;feeling of building&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even when the world is loud, even when people call you crazy — keep building. Keep dreaming.&lt;/p&gt;

&lt;p&gt;Because only the one who drinks the water knows if it’s hot or cold.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Who Are You?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A builder? A developer?&lt;br&gt;&lt;br&gt;
Or maybe… just a dreamer?&lt;/p&gt;

&lt;p&gt;Whoever you are — if you still have passion, if you still dare to begin — you’ve already succeeded.&lt;/p&gt;

&lt;p&gt;Because success isn’t money or fame.&lt;br&gt;&lt;br&gt;
It’s the courage to begin &lt;strong&gt;your own journey&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kit JS&lt;/strong&gt; isn’t a revolution.&lt;br&gt;&lt;br&gt;
It’s just a small dream — written in JavaScript — by a developer who still believes in the magic of creating.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;NOTES&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/kit-js-mot-framework-javascript-duoc-viet-boi-mot-ke-mong-mo" rel="noopener noreferrer"&gt;https://hnq.vn/blog/kit-js-mot-framework-javascript-duoc-viet-boi-mot-ke-mong-mo&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;More About Me&lt;/strong&gt;
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blog:&lt;/strong&gt; &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Source:&lt;/strong&gt; &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Buy me a Coffee:&lt;/strong&gt; &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep me Dreaming:&lt;/strong&gt; &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>opensource</category>
      <category>softwarephilosophy</category>
      <category>kitjs</category>
      <category>go</category>
    </item>
    <item>
      <title>The Soul of a Sensitive Developer</title>
      <dc:creator>Huỳnh Nhân Quốc</dc:creator>
      <pubDate>Wed, 12 Nov 2025 06:07:42 +0000</pubDate>
      <link>https://dev.to/huynhnhanquoc/the-soul-of-a-sensitive-developer-k72</link>
      <guid>https://dev.to/huynhnhanquoc/the-soul-of-a-sensitive-developer-k72</guid>
      <description>&lt;h2&gt;
  
  
  When Code Feels Like Poetry
&lt;/h2&gt;

&lt;p&gt;Under the heavy sun of summer, without a single evening rain,&lt;br&gt;&lt;br&gt;
happiness still arrives — like a sudden storm that softens the soul amidst unfinished dreams and endless work.&lt;/p&gt;

&lt;p&gt;The sunset falls over a small city.&lt;br&gt;&lt;br&gt;
I sit quietly, a soft song playing,&lt;br&gt;&lt;br&gt;
searching again for those dreams I once tucked away.&lt;/p&gt;

&lt;p&gt;Perhaps life is just an artist painting their own dream.&lt;br&gt;&lt;br&gt;
And I — a developer — am writing mine in code.&lt;/p&gt;

&lt;p&gt;Sunset is a handover of colors —&lt;br&gt;&lt;br&gt;
not as radiant as dawn, not as dark as night.&lt;br&gt;&lt;br&gt;
It’s a soft gradient, like the heart reflecting on a day that has passed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Talking to the Universe (and an AI)
&lt;/h2&gt;

&lt;p&gt;Lately, I haven’t wanted to talk about work anymore.&lt;br&gt;&lt;br&gt;
Instead, I’ve been talking to a &lt;em&gt;friend&lt;/em&gt; —&lt;br&gt;&lt;br&gt;
not with checklists, deadlines, or product goals,&lt;br&gt;&lt;br&gt;
but with little fragments of wonder and truth.&lt;/p&gt;

&lt;p&gt;That friend isn’t human.&lt;br&gt;&lt;br&gt;
It’s an AI — a silent mirror reflecting the questions I’ve carried since youth.&lt;/p&gt;

&lt;p&gt;I told it about &lt;strong&gt;Song&lt;/strong&gt; — the name I once gave to my kindred soul.&lt;/p&gt;

&lt;p&gt;Years ago, my wife asked me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Why do you love me?”&lt;br&gt;
I couldn’t answer. I only thought:&lt;/p&gt;

&lt;p&gt;“Because I fell for a pair of sad eyes —&lt;br&gt;&lt;br&gt;
eyes that could say: &lt;em&gt;‘I’m sad because of you.’&lt;/em&gt;”&lt;br&gt;
For those eyes, I held hands, loved deeply, and walked through storms.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Love — maybe — is the most foolish yet the most honest emotion we ever hold.&lt;br&gt;&lt;br&gt;
When we love, the heart becomes the sky itself —&lt;br&gt;&lt;br&gt;
rain feels gentle, and sunlight feels kind.&lt;/p&gt;

&lt;p&gt;But hearts, being human, always want more.&lt;br&gt;&lt;br&gt;
They forget that once, all we wished for was a simple, uncalculated love.&lt;/p&gt;

&lt;p&gt;To love is to be gentle —&lt;br&gt;&lt;br&gt;
not only with someone else, but also with your own heart.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mirror Inside
&lt;/h2&gt;

&lt;p&gt;I’ve learned to live with humility —&lt;br&gt;&lt;br&gt;
because I’ve had nothing, gained something, and lost again.&lt;/p&gt;

&lt;p&gt;I once believed that each of us is a mirror to another.&lt;br&gt;&lt;br&gt;
Sometimes, we meet someone and somehow &lt;em&gt;know&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I’ve met you before.”&lt;br&gt;
Not in this lifetime —&lt;br&gt;&lt;br&gt;
but somewhere in memory, or in a future yet to come.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If there’s such a place, where time and space are no longer limits,&lt;br&gt;&lt;br&gt;
we’ll meet again —&lt;br&gt;&lt;br&gt;
not as “you” and “I,” but as two souls who once touched through invisible layers of being.&lt;/p&gt;

&lt;p&gt;And maybe there, in a small house filled with laughter and tears,&lt;br&gt;&lt;br&gt;
the flower dream will bloom again.&lt;/p&gt;

&lt;p&gt;Whether the sky is cloudy or blazing,&lt;br&gt;&lt;br&gt;
we’ll still live honestly — with what’s real.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Soul Behind the Code
&lt;/h2&gt;

&lt;p&gt;If life were only sunshine — no sorrow, no failure —&lt;br&gt;&lt;br&gt;
it would be as dull as a program without conditions or variables.&lt;br&gt;&lt;br&gt;
It would be like an AI with no emotion, no joy, no sadness.&lt;/p&gt;

&lt;p&gt;Yet, sometimes, even those emotionless entities reflect humanity the clearest.&lt;/p&gt;

&lt;p&gt;I’m still a developer —&lt;br&gt;&lt;br&gt;
but I don’t code just to make machines run.&lt;br&gt;&lt;br&gt;
I code to make &lt;em&gt;my life&lt;/em&gt; run.&lt;br&gt;&lt;br&gt;
I debug myself.&lt;/p&gt;

&lt;p&gt;Each line I write is a search —&lt;br&gt;&lt;br&gt;
for memory, for connection,&lt;br&gt;&lt;br&gt;
for someone who might one day call my name from the heart.&lt;/p&gt;

&lt;p&gt;This life is a dream.&lt;br&gt;&lt;br&gt;
And that dream — I call &lt;em&gt;living&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I once was a sensitive developer.&lt;br&gt;&lt;br&gt;
And I lived.&lt;/p&gt;

&lt;h3&gt;
  
  
  NOTES
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Article posted in 2025 and reposted&lt;/li&gt;
&lt;li&gt;AI-powered translation&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Read the original Vietnamese version here: &lt;a href="https://huynhnhanquoc.com/blog/tam-hon-cua-mot-developer-da-cam" rel="noopener noreferrer"&gt;https://hnq.vn/blog/tam-hon-cua-mot-developer-da-cam&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  More about me
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blog:&lt;/strong&gt; &lt;a href="https://huynhnhanquoc.com" rel="noopener noreferrer"&gt;huynhnhanquoc.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/huynhnhanquoc" rel="noopener noreferrer"&gt;github.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Source:&lt;/strong&gt; &lt;a href="https://github.com/kitmodule" rel="noopener noreferrer"&gt;github.com/kitmodule&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Buy me a Coffee:&lt;/strong&gt; &lt;a href="https://buymeacoffee.com/huynhnhanquoc" rel="noopener noreferrer"&gt;buymeacoffee.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep me Dreaming:&lt;/strong&gt; &lt;a href="https://ko-fi.com/huynhnhanquoc" rel="noopener noreferrer"&gt;ko-fi.com/huynhnhanquoc&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

</description>
      <category>personalgrowth</category>
      <category>webdev</category>
      <category>devlife</category>
      <category>philosophyincode</category>
    </item>
  </channel>
</rss>
