Con đường Indie
Năm năm trước, tôi trở về Tam Kỳ với hai bàn tay trắng, một chiếc laptop cũ kỹ và một trái tim đầy những ước mơ chưa gọi thành tên. Tôi không có tiền, không có công cụ, cũng chẳng biết con đường phía trước sẽ dẫn mình đi đâu. Tôi chỉ có một niềm tin mơ hồ rằng, đâu đó trong thế giới này, sẽ có một hướng đi dành cho kẻ muốn tự do trong công nghệ.

Kit Module
@kitmodule
6 phút đọc
17 tháng 10 năm 2025

Giấc mơ độc lập công nghệ
Tôi vẫn nhớ rất rõ ngày ấy, ngồi trong một quán cà phê nhỏ, nhìn vào đôi tay mình và tự hỏi: “Mình đang đi tìm gì?” Không ai trả lời. Tôi chỉ biết, nếu không có gì để mất, thì tất cả những gì còn lại chính là cơ hội để bắt đầu lại từ đầu.
Ban ngày tôi đi giao hàng, ban đêm tôi viết code. Mỗi đơn hàng hoàn thành, tôi nhận được mười lăm ngàn đồng – đủ để mua một ly cà phê và tiếp tục viết những dòng code vụng về. Cứ thế, một vòng lặp diễn ra mỗi ngày: giao hàng, code, giao hàng, code. Cuộc sống lúc ấy tuy nhỏ bé nhưng lại trong trẻo lạ thường.
Khi nhìn lại, tôi nhận ra chính những ngày đó đã dạy mình bài học quan trọng nhất: giấc mơ lớn không bắt đầu bằng những bước nhảy vọt, mà bắt đầu từ những bước đi nhỏ và thật chậm.
Golang và giấc mơ của kẻ khờ
Tôi từng loay hoay giữa nhiều ngôn ngữ lập trình: Rust, Python, hay JavaScript. Nhưng rồi tôi chọn Golang. Không phải vì nó mạnh mẽ nhất, mà vì nó đơn giản và thật. Tôi chọn nó vì trong cái giản đơn ấy, tôi thấy mình – một kẻ khờ tin vào những điều bé nhỏ.
Tôi bắt đầu lại từ đầu: học cú pháp, tập viết router bằng mux, làm quen với fiber, thử viết DNS, nghĩ về con trỏ và cách nó chạy qua template. Có những đêm tôi nằm trên chiếc ghế cũ, nhìn trần nhà và nghĩ về cách một biến pointer có thể giữ nguyên giá trị giữa các page layout. Tôi không biết vì sao mình lại suy nghĩ đến mức đó, chỉ biết rằng tôi muốn hiểu mọi thứ đến tận cùng.
Không có mentor, không có hướng dẫn, chỉ có tôi và chiếc máy tính. Mỗi dòng code sai, mỗi bug sửa được là một bài học. Dần dần, tôi nhận ra điều quan trọng nhất không phải là kết quả, mà là cảm giác đang từng ngày tự mình xây lên những viên gạch đầu tiên cho một giấc mơ chưa thành hình.
SSR – trở về giấc mơ ban đầu
Tôi bắt đầu với web. Và có lẽ web cũng là thứ đã giữ tôi lại với lập trình đến tận bây giờ. Từ những thẻ HTML đầu tiên, vài dòng CSS vụng về, những đoạn JS copy từ mạng, rồi đến Angular, Firebase... Tôi đã đi một vòng và rồi quay trở lại điểm khởi đầu, nơi mọi thứ chỉ còn lại một dòng hàm giản đơn:
add(a, b) => a + b
Tôi bắt đầu viết hệ thống SSR bằng Golang template, thử nghiệm việc kế thừa con trỏ giữa các trang, giữa page và layout. Có lần, tôi ngồi trong một quán cà phê, vừa cười vừa khoe với thằng em về hệ thống DNS mình vừa viết xong. Nó chỉ trả về một ID, vậy thôi. Nhưng trong ID đó, tôi thấy cả một giấc mơ.
Tôi mơ về một hệ thống có thể quản lý hàng nghìn, hàng triệu website, tất cả được kết nối, tập trung, và tối ưu cho SEO. Tôi mơ về một nền tảng có thể đưa nội dung đến với mọi người, một cách nhẹ nhàng và hiệu quả.
Khi làm việc với SSR, tôi nhận ra điều mà nhiều framework hiện đại đã vô tình quên đi: bản chất của web không phải là phức tạp hóa, mà là giúp trải nghiệm trở nên tốt hơn. Lập trình không nhất thiết phải to tát. Đôi khi, nó chỉ là hành trình đi tìm lại sự thuần khiết của “thêm một cái gì đó” lên một trang web đã tồn tại.
JavaScript và những giấc mơ
Tôi không nhớ chính xác mình học JavaScript từ khi nào. Có thể là sau Golang. Trước đó, tôi biết TypeScript, tôi từng làm với Angular, nhưng chưa bao giờ hiểu JS thật sự. Cho đến khi tôi gặp Web Components.
Tôi bắt đầu thấy một thế giới khác. JS không cần framework để mạnh mẽ. Vanilla JS – thứ ngôn ngữ đơn giản mà tự do – cho tôi cảm giác làm chủ thật sự. Tôi từng tự hỏi: “Có phải các framework JS là một phiên bản lỗi của chính JavaScript?”
Tôi thấy mình mệt khi một chương trình nhỏ lại cần đến cả nghìn node modules. Tôi bắt đầu viết các web component của riêng mình, dùng chúng để tăng cường trải nghiệm cho website render từ server. Rồi đến một lúc, tôi quay lại với ý tưởng ban đầu khi học C#: two-way binding.
Từ những đêm đó, Kit JS ra đời.
Kit JS không phải framework để cạnh tranh với ai. Nó là cách tôi kể câu chuyện của chính mình. Là nơi tôi gói lại tất cả những gì đã học, đã tin, và đã sống cùng – từ reactive programming, define, reference, đến inheritance. Với tôi, Kit JS không chỉ là code, mà là lời nhắn gửi: “Hãy hiểu công nghệ trước khi phụ thuộc vào nó.”
Mở lòng và con đường indie
Khoảng hơn một năm trước, tôi mới nghe đến khái niệm “indie hacker”. Tôi không hoàn toàn là một indie hacker, vì tôi không đặt mục tiêu kiếm tiền lên đầu. Tôi chỉ muốn được code, được chia sẻ, được kết nối với những người cũng mang trong mình ngọn lửa giống mình.
Tôi thích gọi mình là indie-stack developer. Một người đi con đường độc lập, tự học, tự xây, tự viết lại những gì mình cần. Tôi bắt đầu open source những đoạn code trích từ dự án thật, viết lại chúng thành các package nhỏ, để người khác cũng có thể dùng.
Tôi bắt đầu viết blog, chia sẻ nhiều hơn. Mỗi bài viết, mỗi dòng code, mỗi package đều là một phần trong giấc mơ đó – giấc mơ rằng ở đâu đó, sẽ có ai đó tìm thấy cảm hứng từ hành trình của tôi và tiếp tục viết tiếp giấc mơ của họ.
Nếu không ai mở đường, thì chính những dòng code đầu tiên của chúng ta sẽ là con đường.
Giấc mơ độc lập công nghệ không phải là tạo ra một sản phẩm triệu đô, mà là hiểu công nghệ, tự do với nó, và để nó trở thành cầu nối giữa đam mê và giá trị thật.
Tôi vẫn đang đi trên hành trình ấy. Mỗi dòng code, mỗi dòng chữ tôi viết đều là một bước tiến nhỏ, nhưng chắc chắn. Và tôi biết, dù thế giới có thay đổi thế nào, tôi vẫn sẽ là kẻ mộng mơ với chiếc laptop cũ và một bông hoa bên bàn phím – kẻ tin rằng chỉ cần có một giấc mơ, ta có thể tạo nên cả một thế giới.
Tags:
5
lượt xem
Người viết bài
Được đăng trên
Nền tảng kit module của chúng tôi giúp bạn xây dựng sản phẩm nhanh chóng và linh hoạt. Từng module được thiết kế để tích hợp dễ dàng, mở rộng mượt mà, và tùy biến theo nhu cầu thực tế – từ những nhu cầu thực tế nhỏ đến hệ thống quy mô lớn.
Bài Viết Liên Quan

Chỉ là mình thích cách lập trình web của mình. Có thể tùy chỉnh theo ý thích và không phụ thuộc vào framework.

Cuối cùng, tôi vẫn tự hỏi: “Nếu có một dự án lớn, mình sẽ làm gì?”. Tôi chẳng có gì ngoài những nợ nần và niềm đam mê. Nhưng tôi biết, chỉ cần còn đam mê, tôi vẫn sẽ bước tiếp. "Coding and life" - đó là cách mà kẻ dại khờ này tiếp tục.

Hôm nay, mình muốn kể cho mọi người nghe về Kit JS, một framework JavaScript nhỏ bé mà mình tự tay viết nên. Nó vẫn đang trong giai đoạn thử nghiệm – còn nhiều điều phải tối ưu, mở rộng – nhưng mình muốn chia sẻ nó với tinh thần #buildinpublic và #opencoding. Nó chưa hoàn hảo để ứng dụng vào sản phẩm thật, nhưng nó đủ để học hỏi, để mơ mộng và để nhớ lại tại sao ta yêu lập trình đến thế.

Hành trình của tôi không bắt đầu ở một công ty lớn, cũng chẳng gắn liền với những startup gọi vốn hàng triệu đô. Nó bắt đầu từ một chiếc laptop cũ, từ căn phòng nhỏ ở quê nhà Tam Kỳ, nơi tôi vừa làm việc, vừa tự học code – và mang trong mình một khát khao duy nhất: “ Làm chủ công nghệ. Tạo ra giá trị thực bằng chính đôi tay mình.”

Mười năm mơ kết mây thành hoa trắng. Mây vỡ, hoa tan – tàn giấc mơ hoa. Nhưng giấc mơ hoa này, ta xin mơ một lần... Vì đời này, ta chỉ có một giấc mơ. Và một cuộc đời.

Sau hơn 1 năm chật vật với kinh tế. Tôi chỉ có 2 khách hàng đầu tiên từ website và ads. Tôi ngồi nói chuyện vu vơ với vài người bạn, tôi nhận ra rằng? Tại sao mình không sử dụng các data của mình đã thu thập để làm affiliate. Vậy là samdy ra đời, tôi viết một website về tìm kiếm sản phẩm giá tốt trên 3 nền tảng lazada, tiki và shopee.

Lại là mình, và hôm nay mình muốn nói về Kit JS — tại sao nó ra đời, tồn tại và phục vụ mục đích gì. Vì bài trước mình đã nói về câu chuyện, nhưng chưa thật sự target vào mục đích người dùng.

Có vẽ dạo gần đây có nhiều câu chuyện về quảng cáo Youtube và sự can thiệp của Server Side Render từ sever của youtube đang dần trở nên phổ biến. Bài viết này sẽ chia sẽ những điều tôi biết vê Server Side Rendering...

Thế giới công nghệ phát triển nhanh chóng, và một trong những bước tiến thú vị mà tôi có cơ hội tiếp cận là hệ giao thức phân tán. Cơ hội này mở ra từ những nhu cầu tưởng chừng đơn giản như xây dựng một ứng dụng chat trực tiếp giữa các thiết bị mà không cần máy chủ trung gian. Điều này đưa tôi đến với các giao thức phân tán như WebRTC và các phương pháp truyền dữ liệu ngang hàng (Peer-to-Peer, hay P2P).

Khi bản thân tự định hướng cho mình một lối đi. Một con đường và một ánh sáng thì cứ đi theo ánh sáng đó.