Đem sản phẩm đến với thế giới Hacker
Bài viết này là phần tiếp theo của bài viết Tôi đã xây dựng một phần mềm mã nguồn mở như thế nào. Cách sử dụng từ "Hacker" là thống nhất với phần 1. "Đem sản phẩm đến với cộng đồng" luôn là phần khó đối với một người làm kỹ thuật. Chúng ta có thể say mê, thức ngày thức đêm để viết lib, ...
Bài viết này là phần tiếp theo của bài viết Tôi đã xây dựng một phần mềm mã nguồn mở như thế nào. Cách sử dụng từ "Hacker" là thống nhất với phần 1.
"Đem sản phẩm đến với cộng đồng" luôn là phần khó đối với một người làm kỹ thuật.
Chúng ta có thể say mê, thức ngày thức đêm để viết lib, viết tool, hoàn thành đoạn code mà bản thân cảm thấy tâm đắc. Tuy nhiên mọi chuyện thường kết thúc ở đó. Thiếu quảng bá và truyền thông sẽ khiến sản phẩm chỉ loanh quanh ở mức bạn bè dùng thử rồi bạn bè cho ý kiến, sản phẩm làm ra chẳng bao giờ thực sự đến được với cộng đồng.
Xây dựng xong Rainbow Stream. Tôi đã bắt đầu đi học hỏi và tìm cách quảng bá, giới thiệu. Bỏ bên lề những vấn đề kỹ thuật đã trình bày trong phần 1, phần 2 này sẽ tập trung nói về quá trình quảng bá và giới thiệu đó.
Người dùng của sản phẩm mã nguồn mở được xác định sẽ là chính những hacker như bản thân tác giả. Bước đầu tiên tôi đã thực hiện là tìm hiểu xem cộng đồng hacker trên thế giới đang đọc gì ? ở đâu ? Bản danh sách tóm tắt dưới đây sẽ đưa ra những câu trả lời theo thứ tự.
- Hacker News là nơi tập trung nhiều view nhất. Lên được front page của Hacker News là ước mơ của mọi dự án mã nguồn mở, và featured trên front page là cột mốc đáng nhớ đối với mọi hacker. Thuật toán ranking của Hacker News đã được đề cập trong một bài viết khác của blog KTMT, có đặc điểm là sẽ đào thải những item cũ rất nhanh dù upvote có nhiều thế nào đi nữa.
- Reddit là nguồn thông tin tiếp theo. Reddit có rất nhiều sub nhưng dành cho hacker thì chúng ta có r/programmingp, r/coolgithubprojects, v.v... Nếu giữ được upvote cao thì thời gian trên front page của Reddit sẽ dài hơn Hacker News. Tuy nhiên Reddit có rất nhiều downvoter (những user/bot chuyên đi downvote).
- Github Trending tổng hợp những project có lượng star tăng nhanh trong ngày, trong tuần và có thể chia theo ngôn ngữ. Nếu một ngày tăng khoảng 50 star thì ngay lập tức sẽ "lên trend", kéo theo hàng loạt các newsletter đưa tin, bạn "tự nhiên" sẽ nổi tiếng :D
- Twitter của những blog/tạp chí/hacker nổi tiếng. Kênh này tỏ ra hiệu quả bát ngờ so với dự tính.
- Các blog kỹ thuật - trang chủ của những tài khoản Twitter đề cập ở trên.
Những kênh ở phần trước có thể đem lại cho bạn lượng view đầu vào rất lớn, nhưng để user nán lại và đọc hết, dùng thử sản phẩm và tốt hơn nữa là đi giới thiệu lại sản phẩm hộ bạn, bạn cần chuẩn bị thật tốt những chỉ mục sau đây
Một cái tên tốt
Một cái tên dễ nhớ, dễ đánh vần, và quan trọng hơn là chưa thuộc về một sản phẩm khác là điều đầu tiên cần thiết. Hãy dùng Chrome incognito mode để kiểm tra mọi ý tưởng.
Source code được open trên Github.
Hoặc Bitbucket hay Google Code. Tuy nhiên cộng đồng trên Github đang phát triển mạnh mẽ và nhanh chóng hơn cả. Host source code trên Github sẽ nhận được nhiều phản hồi và Pull Request.
Official homepage
Thực tế Github Project đã có thể làm official homepage. Tuy nhiên tôi vẫn mua thêm domain rainbowstream.org, làm một cái Github Page, lấy một cái theme đẹp và trỏ vào domain làm homepage thứ 2. Tại sao ư ? 2 link homepage sẽ đem lại 2 cơ hội giới thiệu trên Hacker News. Theme đẹp cho một trang homepage đơn giản có thể tìm thấy ở HTML5up.
README.md
README.md là cái đầu tiên đập vào mắt user khi họ đến homepage. Một file README tốt sẽ nói với user :
- Project của bạn tạo nên cái gì và tại sao user cần dùng nó.
- Hướng dẫn cài dặt.
- Hướng dẫn sử dụng.
- Đường dẫn đến full document. Document cần phải làm riêng trên một file khác hoặc một dịch vụ khác.
- License. License là một điểm rất quan trọng trong cộng đồng mã nguồn mở. Rất tiết bài viết này không có điều kiện trình bày cụ thể về các loại license. Ở đây Rainbow Stream dùng MIT license.
- Nơi user có thể nhận được sự giúp đỡ của bạn (đặt câu hỏi, yêu cầu tính năng hay báo cáo bug).
- Cách user có thể đóng góp cho project.
- Ảnh minh hoạ. Đối với các sản phẩm về UI, ảnh minh hoạ sẽ gây ấn tượng mạnh nhất về thị giác. Tôi thậm chí đã dùng ttygif tạo ảnh gif để cho ấn tượng mạnh hơn nữa.
Viết UT cho project
Chưa cần nói đến chất lượng sản phẩm, source code được viết test sẽ có độ tin tưởng khác hẳn với những source code không có. Đặc biệt nếu project của bạn là một library với mục đích được dùng lại, không có testcase là đồng nghĩa với không có người dùng.
Một tài khoản Twitter
Đối với cộng đồng hacker thì Twitter gần như trở thành định danh chính thức vậy. Twitter dùng để giao tiếp với user, phát đi thông báo nâng cấp hay tương tác với các tài khoản của người nổi tiếng.
Twitter và các blog kỹ thuật
Xác định được các tài khoản Twitter nổi tiếng là bước quan trọng đầu tiên. Bạn cần tìm ra keyword thể hiện được lĩnh vực mà sản phẩm của bạn đang hướng đến, lên FollowerWork và tìm kiếm account của các blogger xếp theo số lượng follower. Tìm được profile rồi, hãy google ra homepage của họ (hoặc của trang tin kỹ thuật), mở phần contact để lấy email. Bước tiếp theo là soạn một email để nhờ họ giới thiệu về sản phẩm của bạn. Hãy nhớ, nội dung phải lịch sự và nhã nhặn, tóm gọn được sơ lược về sản phẩm và có đường link đến homepage. Đừng tỏ ra ngại ngùng ở tư thế người đi nhờ. Bản thân các blogger cũng cần những sản phẩm hay để thu hút view cho trang web của chính họ.
Đến khi sản phẩm được nhắc đến trong 1 tweet hoặc được viết hẳn thành 1 bài trên trang tin thì bạn sẽ ngạc nhiên với độ lan truyền của nó.
Github Trending
Nếu bạn dồn đủ số star tăng xấp xỉ 40~50 trong 1 ngày, Github sẽ liệt kê sản phẩm của bạn vào Trending list, là nơi rất nhiều các newsletter nhìn vào để gửi mail cho user của họ. Python Weekly sẽ nhìn Python Github Trending, Ruby Weekly sẽ nhìn Ruby Github Trending. Tương tự đối với IOS hay Android.
Tôi không biết chính xác tên của các newsletter nhiều người đọc nhất, nhưng biết chắc chắn tất cả đều lấy trên trang trending của Github. Hãy cố gắng giữ được độ tăng đều trong thời gian càng lâu, độ phủ sóng của sản phẩm lên các newsletter sẽ càng lớn.
Giới thiệu sản phẩm mã nguồn mở trên Reddit là cách dễ dàng ở mức tiếp theo. Reddit được chia thành rất nhiều các subreddit(kênh nhỏ) về các chủ đề cụ thể khác nhau. Bạn cần tìm kênh đông thành viên và liên quan đến chủ đề của sản phẩm. Sau đây là danh sách các subreddit tôi đã thử với Rainbow Stream
- r/programming
- r/coolgithubprojects
- r/Python
- r/commandline
- r/linux
- r/unixporn
Muốn tin đăng trông bắt mắt và gây ấn tượng với người đọc, bạn nên post kèm 1 ảnh được up thông qua Imgur. Một tin được tỉ lệ upvote cao (>70%) có thể ở nguyên trên frontpage của subreddit khoảng vài ngày.
Hacker News
Chúng ta sẽ nói về phần khó nhất. Đã có vô số bài nghiên cứu về traffic của Hacker News, thời gian nào up lên là tốt nhất, chiến thuật lên front, bám front (lên được trang chủ và trụ lại trang chủ) trong thời gian dài. Bất kỳ ai cũng có thể post link lên Hacker News, tuy nhiên để post link có phần đầu là "Show HN" thì đòi hỏi phải có account đăng ký được một thời gian. Tôi đã lập account và đọc Hacker News trước khi làm Rainbow Stream, nên may mắn có thể gửi link luôn khi hoàn thành sản phẩm.
Lên front được khoảng 20 tiếng đã đem lại 5000~6000 view và ít nhất 300+ star trên Github, rất ấn tượng phải không :) Sau đây là một vài lời khuyên nhỏ
- Tiêu đề đăng link cần thể hiện được khả năng của sản phẩm theo một góc nhìn sáng tạo. Hãy tham khảo Show HN page
- Cần điểm nhấn về thị giác khi user click vào link điến trang chủ của bạn (Ảnh gif trên README.md hay trang Github Page ấn tượng)
- Cần phâi post link vào 1 giờ chiều giờ Mỹ.
- Cần vận động bạn bè khoảng 5~10 người upvote luôn trong 10 phút đầu tiên Hãy nhờ bảo bạn bè của bạn vào thẳng trang chủ của Hacker News để vote, không thông qua link gửi trực tiếp.
Tổng kết
Bài viết này đã tổng kết các kinh nghiệm quảng bá của một sản phẩm mã nguồn mở đối với cộng đồng hacker trên thế giới. Mặc dù chúng ta có thể áp dụng rất nhiều các mẹo vặt, hướng dẫn để tăng view cho sản phẩm, nhưng bạn hãy nhớ, điều cốt yếu nhất vẫn là chất lượng sản phẩm của bạn.
Chất lượng bao gồm cả chất lượng trong quá trình làm ra và chất lượng support trong cả thời gian phát triển. Hãy cố gắng fix hết bug, trả lời mọi câu hỏi và review mọi Pull Request một cách cẩn thận. Bạn sẽ nhận lại không chỉ sự tôn trọng trong giới hacker mà cả những cơ hội từ trước đến nay chưa bao giờ nghĩ tới. Happy hacking!