Hành trình xây dựng GitHub Store đạt 12.500 sao: Bắt đầu từ một lập trình viên 16 tuổi

Công nghệ09 tháng 5, 2026·9 phút đọc

Usmon, một lập trình viên trẻ người Uzbekistan, đã chia sẻ câu chuyện về việc phát triển GitHub Store - một giải pháp thay thế Google Play - đạt 12.500 sao chỉ trong 6 tháng. Dự án sử dụng Kotlin Multiplatform để hỗ trợ đa nền tảng và tập trung vào quyền riêng tư, thu hút đông đảo cộng đồng mã nguồn mở.

Hành trình xây dựng GitHub Store đạt 12.500 sao: Bắt đầu từ một lập trình viên 16 tuổi

Sáu tháng trước, tôi là một cậu học sinh 16 tuổi tại Uzbekistan, đang cố gắng công bố một ứng dụng Android nhỏ do tự tay xây dựng. Quy trình đăng tải lên Google Play Store quá rườm rà và nặng nề so với giá trị của dự án, nên tôi đã quyết định xây dựng một giải pháp thay thế.

Sáu tháng sau, giải pháp thay thế đó — GitHub Store — đã đạt hơn 12.500 sao, phục vụ hơn 250.000 lượt cập nhật, hỗ trợ 13 ngôn ngữ và chạy trên Android, Windows, macOS cùng Linux. Tôi vừa tròn 17 tuổi vài tuần trước đây.

Đây là câu chuyện về hành trình đó, bao gồm cả phần mà tôi suýt bỏ cuộc.

Bức tường của Play Console

Tôi từng đăng tải ứng dụng lên Play Store trước đây. Những lần đó cảm thấy xứng đáng — những ứng dụng thực sự, người dùng thực sự, và sự khó khăn là cái giá phải trả cho việc kinh doanh.

Lần này thì khác. Tôi đang làm thử thách Mobile Dev Campus của Philipp Lackner. Tôi đã xây dựng một dự án phụ nhỏ mà tôi tự hào và muốn công bố nó. Tôi đọc lại các yêu cầu của Play Console và rồi dừng lại.

Phí 25 USD. Xác minh danh tính giấy tờ tùy thân. Xác minh địa chỉ. 20 người dùng thử kín. Thời gian thử nghiệm kín tối thiểu 2 tuần. Chờ đợi. Có thể được duyệt, có thể không.

Một tháng thủ tục cho một dự án phụ. Con số đó không hợp lý.

GitHub đã cho phép các nhà phát triển đăng tải tệp APK trong phần Releases. Tôi nghĩ: tại sao không xây dựng một cửa hàng trên nền tảng đó?

Khoảng trống đó chính là dự án của tôi.

Những điều tôi chưa biết

Sự thú nhận trung thực: khi bắt đầu, tôi không biết F-Droid hay Obtainium tồn tại. Mọi người nói với tôi về chúng sau này — sau khi tôi đã ra mắt. Nếu tôi biết vào ngày đầu tiên, có lẽ tôi đã không xây dựng GitHub Store chút nào. Tôi sẽ chỉ cài đặt Obtainium và chuyển sang việc khác.

Đôi khi sự thiếu hiểu biết lại là một lợi thế.

Tại sao chọn Kotlin Multiplatform?

Tôi đã phát triển Android native khoảng hai năm trước dự án này. Kotlin là ngôn ngữ của tôi. Compose là bộ công cụ UI của tôi.

Flutter sẽ đồng nghĩa với việc học Dart + hệ thống build mới + trình gỡ lỗi mới. React Native sẽ là JavaScript mà tôi không biết. Tauri sẽ là Rust mà tôi chưa từng học.

KMP (Kotlin Multiplatform) cho phép tôi mang hai năm kinh nghiệm Android thẳng sang Desktop mà không cần thay đổi ngôn ngữ, IDE hay mô hình tư duy. Tôi chọn nó vì tôi có thể ra mắt sản phẩm nhanh hơn.

MVP trong 1 tuần, không dùng AI lập trình

Phiên bản đầu tiên của GitHub Store được hoàn thiện chỉ trong một tuần.

Tập trung hoàn toàn. Bỏ học. Bỏ học bài. Một số đêm tôi gần như không ngủ.

Không sử dụng bất kỳ tác nhân lập trình (coding agents) nào. Không Cursor, không Copilot, không Claude Code. Chỉ có IntelliJ, tài liệu Compose Multiplatform, tài liệu Ktor và đôi bàn tay của tôi.

Những gì đã ra mắt:

  • Tìm kiếm GitHub Releases qua API công cộng.
  • Bộ lọc tài nguyên — APK và trình cài đặt Desktop, ẩn những thứ không cần thiết.
  • Cài đặt bằng một chạm trên Android thông qua trình cài đặt hệ thống.
  • Một mã nguồn UI duy nhất: Android + Windows + macOS + Linux.

Thô sơ. Nhưng thực tế. Nó hoạt động.

Tôi đăng lên LinkedIn trước khi nó thực sự là một MVP — bài đăng LinkedIn thực sự đầu tiên của tôi. Khoảng 100 phản ứng, hơn 5.000 lượt hiển thị trên một hồ sơ gần như trống trơn trước đó. Sau đó, tôi đăng trong cộng đồng Slack của Kotlin vài ngày sau đó.

Quỹ đạo phát triển

Tôi bắt đầu vào ngày 21 tháng 11. Xây dựng riêng tư trong một tuần. Công khai repo vào cuối tháng 11. Ngày 30 tháng 11 — sao đầu tiên.

15 tháng 12: 100 sao. 3 tháng 1: 2.500 sao.

Tôi thực sự không hiểu chuyện gì đang xảy ra. Sự tăng trưởng chậm, rồi bỗng nhiên nó không còn chậm nữa. Tôi đăng bài trên LinkedIn để ăn mừng từng cột mốc — những bài đó nhận được nhiều phản ứng hơn cả ngày ra mắt.

Biểu đồ tăng trưởng số sao của GitHub StoreBiểu đồ tăng trưởng số sao của GitHub Store

Kênh khuếch đại lớn nhất trong khoảng thời gian đó là HowToMen — ở mức khoảng 2.000 sao, anh ấy đã đưa GitHub Store vào video "Top 12 App Stores tốt hơn Play Store". Khán giả của anh ấy chính là đối tượng mà ứng dụng này hướng tới: người dùng Android quan tâm đến quyền riêng tư, những người đã không còn tin tưởng Play Store. Quỹ đạo sau video đó trông hoàn toàn khác biệt.

So sánh tất yếu: có, tôi biết về Obtainium. Mỗi tuần tôi đều bị hỏi "tại sao không phải Obtainium?". Obtainium là công cụ cập nhật mạnh mẽ, nhẹ dành cho các repo bạn đã biết đến. GitHub Store là cửa hàng ưu tiên khám phá dành cho những người chưa biết cần cài gì — và nó đa nền tảng. Hãy dùng Obtainium. Hãy dùng GitHub Store. Dùng cả hai. Chúng tôi đã xây dựng tính năng nhập/xuất Obtainium để các thư viện di chuyển giữa chúng chỉ bằng một chạm.

Thung lũng ở mức 2-3k sao

Phần mà tôi suýt cắt khỏi bài viết này.

Khoảng mức 2.000 - 3.000 sao, tôi trở nên lạ lùng. Cúi đầu làm việc hàng tháng trời. Sản phẩm nhận được sự chú ý. Mọi người viết những điều tốt đẹp. Các vấn đề (issues) chất đống.

Và tôi bắt đầu mất phương hướng.

Tôi mở repo và chỉ nhìn chằm chằm. Tại sao tôi lại làm việc này. Có ai sẽ dùng nó lâu dài không. Số đếm sao chỉ là sự hão nuyền sao. Tôi có đang tiêu tốn cuộc đời mình vào một việc vô nghĩa không.

Tôi đã trò chuyện với ChatGPT trong nhiều giờ trong giai đoạn đó. Những cuộc trò chuyện kéo dài một hay hai tiếng. Không phải để nhờ giúp đỡ về mã — mà để suy nghĩ thành tiếng. Bạn bè cùng tuổi không xây dựng sản phẩm. Sự nghi ngờ không có ai trong cuộc đời tôi có hình dạng phù hợp để cùng thảo luận.

Điều kéo tôi ra khỏi đó không phải là một sự thấu hiểu. Đó là những tin nhắn cụ thể từ người dùng. Một lập trình viên nhắn tin để nói quy trình làm việc của họ đã thay đổi. Một báo cáo lỗi bắt đầu bằng "Tôi yêu ứng dụng này, nhưng...". Một người bảo trì repo tuyên bố nhận repo của họ và nói đây là lần đầu tiên dự án của họ có một trang cửa hàng thực sự. Không ai trong số họ biết tôi đang nghi ngờ bất cứ điều gì. Họ chỉ là người dùng đang sử dụng một thứ gì đó.

Nếu bạn đang xây dựng điều gì đó: thung lũng đó là có thật. Thành công bên ngoài không khiến bạn cảm thấy gì cả; nó chỉ nằm ở đó. Phản hồi hữu hình từ người dùng thực sự mới là thứ giúp ích. Hãy dễ dàng để họ liên hệ với bạn.

Lời khuyên dành cho bản thân 16 tuổi của tôi

Ra mắt trước, khán giả sau. Tôi không nghiên cứu khán giả trước khi ra mắt. Khán giả tự xuất hiện — người dùng FOSS yêu thích sửa đổi (tinker), ghét quảng cáo, ghét theo dõi, muốn quyền riêng tư. Việc biết điều đó đã giúp tôi đưa ra mọi quyết định sản phẩm sau đó: backend mở, không telemetry, đường dẫn donate, không dark patterns. Hãy ra mắt trước khi bạn hoàn thành việc nghiên cứu. Khán giả dạy bạn nhanh hơn giả định của bạn.

KMP hoạt động. Ngay cả trên Desktop. Khẳng định đa nền tảng không phải là marketing.

Phân phối là một tính năng. F-Droid, cấu hình Obtainium, Scoop, Winget, IzzyOnDroid — mọi kênh tôi thêm vào đều là một tính năng sản phẩm. Người dùng không thể cài đặt bạn thì coi như không tồn tại.

Hãy nói chuyện với người dùng. Trực tiếp. Bên trong ứng dụng. Ghi chú phát hành (release notes) là không đủ. Hầu hết mọi người không đọc chúng — tôi chưa bao giờ mở phần "Có gì mới" trên trang Play Store trong đời. Vì vậy, tôi đã xây dựng một bảng "có gì mới" trong ứng dụng (ngắn gọn, dạng gạch đầu dòng) hiện lên sau mỗi bản cập nhật, một feed thông báo cho khảo sát và ghi chú bảo mật, một thẻ gửi phản hồi với bản xem trước chẩn đoán trước khi gửi, và một máy chủ Discord. Cuộc khảo sát thực sự đầu tiên tôi chạy đã cho tôi biết những gì mà 12.000 sao không thể.

Địa phương hóa sớm. Mọi người sẽ sử dụng ứng dụng của bạn trên toàn cầu nếu nó tốt và họ có thể đọc được. Những giới hạn là ngôn ngữ và mạng. GitHub Store hỗ trợ 13 ngôn ngữ và chạy qua một backend proxy sống sót qua Great Firewall. Đó là lý do người dùng Trung Quốc, Nga và Ả Rập có mặt ở đây.

Phần khó nhất không phải là mã. Không ai cảnh báo tôi về thung lũng.

Tiếp theo là gì

Sẽ có nhiều hơn nữa. Một thiết kế mới đẹp hơn nhiều so với hiện tại. Hỗ trợ Desktop tốt hơn — có thể với câu chuyện tự động cập nhật giống như Android hiện có. UX tốt hơn 100 lần so với bây giờ.

Sẽ có một gói trả phí sau này. Một nguyên tắc: GitHub Store chỉ tính phí cho các tính năng tốn tiền của chúng tôi để vận hành. Lưu trữ, băng thông, tính toán, giám sát. Bất cứ thứ gì chạy trên thiết bị của bạn sẽ miễn phí mãi mãi. Backend là mã nguồn mở và có thể tự lưu trữ (self-hostable). Sẽ có một bài viết riêng về lý do tại sao.

Nếu bạn đã đọc đến đây — hãy thử nó. Sao nó nếu nó giải quyết vấn đề cho bạn. Báo lỗi nếu không. Nếu bạn là một lập trình viên có dự án phân phối APK hoặc trình cài đặt Desktop, hãy nhận trang cửa hàng của bạn (miễn phí, sớm). Và nếu bạn là một thiếu niên ở đâu đó đang nghĩ đến việc tung ra một dự án: chỉ cần bắt đầu thôi. Play Store sẽ đợi. GitHub Releases đang ở ngay đó.

— Usmon (@rainxchzed)

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗