NHN Cloud NHN Cloud Meetup!

3年目のオープンソースが1週間で3,000GitHubスターを獲得

#はじめに

TOAST UI Editorは、2015年3月に初回コミットし、およそ3年が経ったプロジェクトです。2017/12/30、プロジェクトのバージョンを1.0にアップグレードし、npmに展開しました。3年間で獲得したGitHubスターは160個、PRは期待しませんでした。このようなオープンソースの姿は特別なものではありません。GoogleFacebookのオープンソースでさえ閑静なプロジェクトはいくらでもあります。私たちはGitHubを無料で利用できるストレージ程度と考えていませんか?

#TOAST UI Editorの開始。そしてDooray!


はじめにTOAST UI Editorを作るきっかけになったDooray!の話をしよう。Dooray当社で運営している協業ツールです。UXの大部分を占めるのがエディタです。早くて簡単にドキュメントを作成できること、開発者に馴染みのあるMarkdownモード、Markdownに慣れていない人にはWYSIWYGモードが必要でした。さらにセルの結合が可能なテーブルとCode Blockを通じたチャートとUMLなど。すでに偉大なエディタはたくさんありますが、私たちのニーズを満たす拡張可能なMarkdown WYSIWYG Editorを念頭に作成されたものはありませんでした。これがTOAST UI Editorの始まりです。もし、この記事を読んでTOAST UI Editorに興味を持たれたら、Doorayもきっと好みに合うので、一度見てみてほしいです。
私たちが開発したエディタは、すぐに社内の様々なサービスで使用されるようになり、抽象化して1つの個別プロジェクトとして取り組むことになりました。GitHubをリポジトリとして使用するため、GitHubに公開し、オープンソースとしての姿を持ち始めます。

#オープンソースでの開始。README

以降、地道にTOAST UI Editorを開発し、エディタの形を整えていきました。開発を始めてほぼ3年が経過しましたが、イシューもPRもほとんどありませんでした。ドキュメントも貧弱でREADMEも全く魅力的ではありませんでした。追加機能のロードマップは決定し、バグリストはたまっていますが、ドキュメントを追加する余裕がありませんでした。社内で必要とする開発者のために簡単なTutorialとAPIドキュメントを少し作っておいただけという状態でした。

もし、あなたがプロジェクトを引き継ぐことになれば、おそらく前任者に様々なドキュメントを要求するでしょう。ところが前任者からソースしか渡されなかったらどう思うでしょうか?オープンソースも同様です。むしろ複数の開発者にオンラインでたくさんの内容を十分に伝える必要があり、さらに難しいことになると思います。核心をうまく表すREADME、すぐに確認できるDEMO、訪問した開発者が自分の要求事項に見合うか確認できる様々なサンプル、試作を手助けするTutorialなど。ドキュメントのうち、どれかが足りなければ、あなたのオープンソースは無視されるでしょう。

ただソースを公開してもオープンソースにはなりません。

ドキュメントの中でも表紙の役割をするREADMEは最も重要です。あなたのストアを訪れた開発者に、なぜあなたのオープンソースを使うとよいか、核心のある表現が必要です。複数のドキュメントを羅列するだけでは不十分です。あなたは念入りにドキュメントを作成したでしょうが、訪問者が意図するリンクをすべてクリックするとは限りません。ほとんどはスクロールを2回程度して興味がなければ離れるでしょう。したがってREAMEは特に注力して作成する必要があります。

あなたのオープンソースが開発者からの関心を集めているか確認できる代表的な数値は、スターの数です。GitHubスターは、実際のところブックマーク機能の程度で特に役には立ちません。しかしスターの数は、あなたのオープンソースがどの程度有用で、信頼できるかを示す指数となります。以下は、私たちがTOAST UI Editor 1.0を配布する前後に記録したスター数と訪問者数です。TOAST UI Editor1.0は新機能が全く追加されていない状態で、ドキュメントもアップデート以外はリファクタリングが主でした。下の数値は完全にドキュメントとデモの変化で得られたものと見做してよいでしょう。

これらの数値を確認すると、ドキュメント更新前は、約4%の訪問者がスターをつけました。驚くべきことにドキュメント更新後は約20%の訪問者がスターをつけました。これはものすごい違いです。READMEとDEMOを更新したことで、ほぼ5倍の訪問者が興味を示しました。READMEをうまく作成する方法は、検索するといくつかのサンプルがヒットします。代表的なものとしてAwesome Readmeがあります。上手に書かれたREADMEを探して参考にしよう。

#コミュニティ

ドキュメントができたら次はユーザーに周知する番です。もちろん、あなたのプロジェクトを気に入っている誰かが他の人に伝播してくれるのが一番良いシナリオでしょう。しかし、あなたが何もしなければ、誰もあなたが何をしているのか分かりません。スターもほとんどなく、インターネットのどこにもリンクされていません。あなたのプロジェクトがGoogle検索の上部に突然現れることもありません。

そこで宣伝活動が必要です。機会があるたびに、あなたのオープンソースを周知する努力をしよう。StackOverflowQuoraにコメントをつけ、Facebook Groupの活動をしてみよう。HackerNewsRedditにも周知して、あなたが購読しているWeeklyにもメールを送ろう。しかし入念な準備をせず、このような活動を突然開始してもあまり効果はないでしょう。上述したコミュニティはそれぞれ異なる性格を持っています。コミュニティの特性を理解しないままコメントを書いても、広報担当に削除されたり、無視されたりするでしょう。最悪のケースではアカウントが追放されたり、プロジェクトのイメージを損なう可能性もあります。時間をかけて研究しよう。コミュニティ活動から得た知識は、オープンソースをより良いプロジェクトにするのに役に立つでしょう。

あなたの仕事に顧客を参加させることが、ロイヤリティの高い顧客を得る最良の営業方法です。

知人のセールスマンが私にくれた言葉です。これは私たちのオープンソースにも見事に適用できる言葉だと思います。コミュニティを促進目的でのみ使用する必要はありません。あなたのオープンソースの問題をコミュニティに共有し、サポートを得ることもできるでしょう。参考までに、今回の記事を更新しながらコミュニティにREADMEのドキュメント校正を依頼しました。そして2人のユーザーが喜んでTOAST UI EditorのREADMEを修正してくれました。スターをたくさんくれた訪問者よりも、その2人の方が私のオープンソースにより大きな関心を持ってくれていると確信しています。

 

#GitHubを調べる

オープンソースのContributorを得るのに最適な場所は、GitHubです。GitHub上には、常にかわいいオクトキャットが一緒について回るメニューがあります。その中で注目すべきはExploreです。Exploreは有用であなたの興味を引くようなプロジェクトを紹介してくれます。あなたが作っているオープンソースの特徴やメリット、最近のトレンド情報などを学ぶことができます。

ここでは、2400万GitHubユーザーにあなたのプロジェクトを紹介できるチャンスがあります。あなたがオープンソースを別の場所(GitLabBitBucketなど)ではなく、GitHubに配置する理由がそれです。他のサービスも素晴らしいものだから誤解してないでください。しかし、オープンソースはGitHubに展開する必要があります。Exploreを通じて圧倒的に多くの開発者にあなたのオープンソースを紹介できるからです。

このページをみるとCollections、Topics、Trendingの部分で、オープンソースを紹介しています。CollectionsはGitHubでキュレーティングして管理するオープンソースリストです。Topicsはテーマごとに合計スター数が多いものを、Trendingはスター数とは関係なく、言語/期間別に人気のあるものを紹介します。このうち注目すべきはTrendingとTopicsです。

## GitHub Trending

Trendingは全体のスター数とは関係なく、言語/期間別に人気のあるオープンソースを紹介します。 Exploreメインに紹介されるオープンソースは、週間ベースですべての言語で最も多くのスターを受けたものが表示されます。ここにランキングされるのは非常に難しいでしょう。しかし諦めることはありません。See more trending repositoriesから、期間と言語を選択して、Trendingプロジェクトを確認することもできます。ここに露出されるだけでも、十分多くのGitHubユーザーに紹介できます。Date rangeをTodayにして、言語をあなたのオープンソースの言語に変更してリストを確認してみよう。上位には多くのスターを獲得したプロジェクトがありますが、サブにはあなたも十分に獲得できるスター数になっています。つまり、あなたのプロジェクトをGitHubで紹介したい場合は、少なくとも1日はTrendingリストに入るだけのスターを獲得する必要があります。ここでコミュニティの力を借りよう。新しいオープンソースをリリースしたり、興味が持たれそうな機能をアップデートしたときは、あなたが活動するコミュニティを総動員してTrendingにリストされるようにしよう。

上図はTOAST UI Editor 1.0を配布した後、1/10午後に関連コミュニティにコメントを書き込み、GitHub Insightからの訪問者を分析したものです。(GitHub Insightで表示されるReferring sitesは2週間の合計。適切に計算すれば希望する値を得られます。)コメントを載せた1/10は、当然ほとんどすべてのトラフィックが対象コミュニティで発生しました。GitHubが16%を占めていますが、これは幸いなことに初日からTrendingにランキングしたためです。翌日1/11には、すでにGitHubが半分を占めています。Trendingへのランキングが重要なことは一目瞭然です。

1/12には、Trending Todayで1位を獲得しました。この時からコミュニティからの訪問数がほとんどなくなっていくのが分かります。ほとんどがGitHubからで、直接コメントを載せていない場所からも訪問者が生まれています。


1/14も前日と同じ傾向でGitHubからの訪問者数が多いです。TOAST UI Editorは幸運なことにコミュニティに周知してから4日後に2,000スターを獲得できました。この後、増加傾向は減少しましたが、1ヵ月が経過した今でもGitHub Trendingから新しい訪問者を得ています。

## GitHub Topics


Topicsはテーマ別に全体のスター数が多いプロジェクトを表示しています。 Exploreメインでは、いくつかのトピックを交互に見せて、それ以外のトピックは、See more topicsから確認できます。1つのトピックを選択すると、トピック内でスター数が多いプロジェクトを順番に表示しています。つまり、あなたのオープンソースがスターを十分に獲得できれば、Trendingからランクダウンしても、確実にTopicsを通してGitHubユーザーに紹介できます。

下図からTopicsの位置を確認しよう。自由に書き込むことも可能です。GitHubはFeatured、Popularトピックを選定してリストにしています。Topicsにどんなコメントを書いても問題ないが、なるべくGitHubがリストにしているFeatured Topicsを選定して入れることが有用です。またTopicによってプロジェクトのスターの数は千差万別です。人気のあるjavascript topicに入ってみると、なんと292kスターのプロジェクトがあり、リストをスクロールしても20k以上のプロジェクトが並んでいます。このトピックでは、vuereactのようなBigプロジェクトに勝利しなければリストに載らないということです。一方、比較的緩いTopicもあります。Markdown Topicは1位が21kで、TOAST UI Editorも5.1k、10位に露出しています。Topicを選定することも重要です。

## Project Description

上図からDescriptionが何か分かるでしょうか?
下図をみてみよう。TrendingとTopicsに記載された私たちのプロジェクトをキャプチャしたものです。自分のプロジェクトのアイコン、組織、プロジェクト名などが表示されます。そして開発者たちはこの情報だけであなたのプロジェクトが役立つかどうかを判断することになります。
Trending、Topicsに露出されるDescriptionには、GitHubユーザーに向けて最高の一行を紹介しよう。

おわりに

この記事で共有したちょっとしたアイデア(適切なドキュメントを作成すること、コミュニティで活動すること、GitHubが提供するツールを積極的に活用すること)はみなさんのオープンソースの価値を高めることに役立つでしょう。いくらREADMEをきれいに飾っても、コミュニティにコメントを載せても、開発者たちがあなたのオープンソースの価値を見つけられなければ、スターは獲得できません。みなさんの宝石のようなオープンソースが、たくさんの開発者に共有されて輝くことを願っています。

PS.1 TOAST UI Editorをまだご存知でない方は、ぜひアクセスして閲覧してください。気に入ったらスターも忘れないで!
PS.2 Dooray!は、現在100名以下の組織は無料でご利用いただけます。ぜひお試しください。

NHN Cloud Meetup 編集部

NHN Cloudの技術ナレッジやお得なイベント情報を発信していきます
pagetop