Hành Trình Của Một Golang Indie Hacker: Xây Dựng Web Framework Từ Số Không
Tôi muốn xây dựng một hệ thống có thể thay thế WordPress, Odoo, Shopify hay Một nền tảng thương mại điện tử cho người Việt, nơi các doanh nghiệp có thể hoạt động độc lập, không phụ thuộc vào Shopee hay các sàn thương mại điện tử khác.

Huỳnh Nhân Quốc
@huynhnhanquoc
6 phút đọc
10 tháng 02 năm 2025

10 Năm Học Lập Trình – 5 Năm Tự Xây Nền Tảng
Trong thế giới đầy rẫy các web framework như WordPress, Django, Laravel, Rails..., tại sao tôi lại chọn con đường xây dựng một nền tảng của riêng mình? Đã không ít lần tôi tự hỏi điều đó.
10 năm trước, khi tôi bắt đầu biết lập trình và làm web, tôi từng khao khát hiểu những dòng code phức tạp mà người khác viết. Ngày đó, tôi mày mò trên Blogspot, tải về các theme rồi chỉnh sửa chút ít, tự cho rằng mình đã biết lập trình web. Nhưng đó chỉ là bề nổi.
Sau này, tôi học Angular và dần nhận ra rằng website không chỉ là giao diện đẹp, mà còn có thể phát triển thành những ứng dụng mạnh mẽ. Tôi cũng bắt đầu hiểu về SEO và trải nghiệm người dùng (UX) – thứ không chỉ đơn thuần là đặt một nút đúng chỗ để tăng tỷ lệ chuyển đổi, mà là giá trị thực sự mà website mang lại cho người dùng. Không cần đẹp hào nhoáng, chỉ cần giải quyết được nhu cầu.
Tại Sao Không Dùng Framework Có Sẵn?
Hiện tại, tôi sử dụng Fiber (Golang) – một framework lấy cảm hứng từ Express.js – nhưng tôi không dùng nó một cách nguyên bản. Tôi viết lại một số phần quan trọng, đặc biệt là template engine, xây dựng theo nguyên tắc ánh xạ vào database. Nó giúp tôi truy xuất dữ liệu giống như cách Liquid của Shopify hoạt động, nhưng theo cách tôi mong muốn. Tôi không cho rằng mình giỏi hơn người khác, nhưng tôi muốn hiểu và kiểm soát mọi thứ mình viết ra.
Tại sao tôi không sử dụng JavaScript framework?
Trước đây, tôi từng tự viết một JavaScript framework, nhưng nhận ra rằng nó tiêu tốn quá nhiều thời gian mà không hiệu quả bằng việc phát triển web framework từ server-side. Viết từ backend giúp tôi kiểm soát bảo mật tốt hơn. Tôi cũng phát triển một hệ thống web component dựa trên Vanilla JS, vì tôi thích sự nhanh – gọn – nhẹ. Tôi muốn một thứ chỉ cần nhúng một đường link là có thể hoạt động, không rườm rà như các framework JS hiện đại.
Bắt Đầu Lại Từ Đầu (2020)
Năm 2020, tôi quyết định bắt đầu lại từ con số không.
Những dòng code viết rồi xóa, xóa rồi viết. Không tiền bạc, không công việc ổn định, không quan hệ. Chỉ có một giấc mơ độc lập công nghệ.
Tôi dành 6 tháng để viết một hệ thống DNS, rồi khoe với một người bạn trong ngành:
"Nè, xem thử ID này: 2wjqpur0ife35a49yklnxbc6g1dohz78vstm"
Chỉ là một ID đơn giản, nhưng tôi vui sướng tột độ, dù nó chưa có cả giao diện.
Sau đó, tôi đối mặt với bài toán kế thừa cấp quản lý node – một vấn đề mà khi làm nhiều mới gặp. Trong JavaScript, thao tác này đơn giản, nhưng trong Golang, việc quản lý con trỏ là một thử thách thực sự. Tôi đụng phải The Diamond Problem và phải tìm cách giải quyết nó sao cho các node kế thừa nhau mà không bị lỗi vòng lặp tham chiếu.
Rồi tôi viết template engine cho web, nghiên cứu Shopify Liquid, ASP.NET, Angular Pipe, Vue/React Router... Cuối cùng, tôi tạo ra một hệ thống riêng, không hoàn hảo nhưng giải quyết bài toán của chính mình.
Trong lập trình, không có gì là hoàn hảo. Chúng ta chỉ có thể viết mã => sinh ra vấn đề => giải quyết hoặc cải thiện.
Sau khi xây dựng nền tảng backend, tôi phát triển các API, web component, hệ thống tìm kiếm, QR Code generator, URL shortener... Tôi liên tục mở rộng hiểu biết về database, indexing, tối ưu truy vấn... Không giỏi tất cả, nhưng đủ để tự xây dựng một hệ thống.
Những Hy Vọng Của Một Indie Hacker
Sau khi hoàn thành nền tảng cơ bản, tôi viết một thuật toán thu thập dữ liệu tự động, phát triển UI nguyên thủy, dùng nội suy string, rồi chuyển sang template Golang.
Nếu bạn biết Golang, bạn sẽ thấy nó có nét tương đồng với Hugo. Tôi thích những gì mình viết, vì nó giúp tôi hiểu hệ thống từ gốc rễ.
Khi tôi xuất bản sản phẩm đầu tiên – một website so sánh giá, tôi đã lọt vào top 100 website thương mại điện tử lớn nhất Việt Nam chỉ trong thời gian ngắn.
Nhưng tôi chỉ là một indie hacker, vận hành trên một VPS nhỏ bé (1 core CPU, 2GB RAM, 20GB SSD). Dù đạt được thứ hạng tốt, tôi thất bại trong việc duy trì nó vì server quá yếu.
Tuy vậy, trải nghiệm đó là vô giá.
Sau đó, tôi tiếp tục xây dựng công cụ rút gọn liên kết, phục vụ affiliate marketing. Tôi muốn đo lường hiệu quả chiến dịch, tính CPC, EPC, đánh giá khả năng scale. Công cụ này giúp tôi tối ưu nhiều chiến dịch và mang lại những kết quả nhất định.
Tầm Nhìn Và Chiến Lược Của Web Framework
Tôi là một Golang Indie Hacker – một lập trình viên độc lập, không nhóm, không vốn đầu tư, không marketing rầm rộ. Nhưng tôi vẫn hy vọng một ngày có thể gọi vốn để phát triển nền tảng này.
Tôi muốn xây dựng một hệ thống có thể thay thế WordPress, Odoo, Shopify. Một nền tảng thương mại điện tử cho người Việt, nơi các doanh nghiệp có thể hoạt động độc lập, không phụ thuộc vào Shopee hay các sàn thương mại điện tử khác.
Tôi tin rằng mỗi doanh nghiệp nên sở hữu website riêng, kiểm soát hoàn toàn dữ liệu và thương hiệu của họ.
Đó là lý do tôi đã dành 5 năm (từ 2020) để phát triển framework này.
Tôi không biết tương lai sẽ ra sao, nhưng hiện tại tôi đang yêu thích những gì mình làm. Tôi có một mindset lập trình mạnh mẽ, không vì danh vọng hay lợi nhuận trước mắt, mà vì đam mê với những dòng code. Tôi không phải chuyên gia, chỉ là một đứa trẻ dại khờ yêu lập trình.
Lập trình với tôi không chỉ là viết code, mà là tạo ra giá trị thực sự cho xã hội. Tôi tin rằng tự động hóa có thể rút ngắn thời gian cho những công việc thủ công, và tôi muốn trở thành một phần của sự thay đổi đó.
Cảm ơn bạn đã đọc đến đây.
Đây là ký sự của Huỳnh Nhân Quốc – một Golang Indie Hacker
Tags:
91
lượt xem
Bài Viết Liên Quan

Cả cuộc đời này, con người không ngừng đi tìm cái gọi là "lý tưởng sống". Suy cho cùng, đó chính là hạnh phúc. Với mỗi người, hạnh phúc có một định nghĩa riêng—tiền bạc, danh vọng, hay đôi khi chỉ đơn giản là tình yêu. Tôi gọi tình yêu đôi lứa là "đơn giản", bởi lẽ, nó không nằm trong tầm kiểm soát của mình.

Hạnh phúc nhé đêm đông không lạnh nữa.Bình minh lên nhìn biển lúc trời xuân.

Đoạn khúc này viết cho người, anh hùng khí chất hiên ngang ngất trời.

Có thể gọi vốn được 1 triệu đô.

Tôi đã từng, chưa từng hoặc đã từng có thể hack một hệ thống nào đó. Tôi không phải là một hacker. Tôi là một developer.

Xin trời hoa chết về tay. Để tôi biết được kiếp đây đọa đầy.

Đôi lúc ta sai vì đứng quá lâu trước những ngã rẽ nhưng từ đó ta hiểu được rằng:"Những ngã rẽ sẽ quyết định con đường ta đi"

Tôi không nhớ chính xác mình bắt đầu yêu lập trình từ khi nào, nhưng tôi vẫn còn cảm giác lần đầu tiên viết một đoạn code chạy thành công. Đó không chỉ là một thành tựu nhỏ, mà còn là khoảnh khắc tôi nhận ra mình có thể tạo ra thứ gì đó từ con số không. Từ đó, tôi bước đi trên con đường mà nhiều người gọi là Indie Hacker – đơn độc, đầy thử thách, nhưng cũng tràn ngập đam mê.

Tôi vẫn nhớ những ngày đó với những dòng code đầu tiên. Tôi không biết đã xóa đi và viết lại những dòng code của tôi bao nhiêu lần. Dù đôi lúc là ngu ngốc nhưng vẫn vui vì nó.

Lập trình viên là những đơn giản nhất mà từng con người có thể đạt được. Không bằng cấp, không tuổi tác, không quá muộn. Lập trình là thế là chỉ cần có đam mê và viết vài thứ hay ho cho cuộc đời.