Markdownエディタを作って月15万円稼ぐまでにやったこと — Inkdrop

Share
Markdownエディタを作って月15万円稼ぐまでにやったこと — Inkdrop

Markdownエディタを作って月15万円稼ぐまでにやったこと — Inkdrop

アイデア探しから最初の売り上げ、集客して成長させるまでの道のり

僕はフリーランスをしながら脱受託を目指してアプリを作って生活しています。だいたい1年のうち7割ぐらいをアプリ作りの時間に充てています。本稿では、Inkdropというマルチプラットフォーム対応のMarkdownエディタを一人で開発して月15万円の売上を達成するまでにやった事を包み隠さずにシェアしたいと思います。

Markdown好きのためのノートアプリ「Inkdrop」 — https://inkdrop.app/

アプリは一昨年前の暮れから作り始めて、今年7月時点の売上はまだ月4万円ほどでした。総売上は今月で約40万円になりました。この調子で成長させ続けられれば、来年には脱受託できそうな予感。

Inkdropの月間売上の推移
  1. 毎日感じるちょっとした問題を見つける
  2. 自分自身がこれだ!と思えるまでプロトタイプを作る
  3. プライベートβ期間でヘビーユーザを作る
  4. 継続性を重視して価格をつける
  5. 決済処理はStripeで楽に実装する
  6. 良いランディングページを作る
  7. ユーザサポートを最優先にする
  8. 自分の得た知見を惜しまずブログに書く
  9. クオリティで勝負する
  10. 批判を全て無視する

僕は別に特別でもなんでもありません。人は意外と同じ事を感じたり考えて生きています。だから、もし自分が何か解決したい問題を抱えていたら、そこには同じように悩んでいる人がごまんといます。僕は過去にもたくさんアプリを作りましたが、ウケたものは共通して自分の問題を解決するものでした。自分のマーケットは自分の中に眠っているという事です。

約2年前、僕は開発メモを取ることにすごく不満を感じていました。そこでいろんなMarkdownベースのアプリを試したのですが、結局気に入るものは見つかりませんでした。例えば、Wiki系のウェブサービスは大量のタブに埋もれますし、オフラインでは使えません。Dropboxなどのクラウドストレージで同期するアプリはCPUを激しく消費するし遅くて使い物になりません。僕が個人的にDropboxに大量のファイルを同期させているためです。

そのほか、機能が足りないもの、複雑すぎるもの、デザインがゴテゴテしているものなどばかりで、毎日使うにはどうもしっくりくるものが見つけられませんでした。探し疲れた僕は自分が思う最高のMarkdown専用ノートアプリを作ることにしました。個人の好みを極限まで突き詰めた先にマーケットがあると考えたからです。

アプリの価値とは問題を解決することです。まずは MVP (Minimal Viable Product — 最低限の価値を提供する製品)を作るにあたって、僕は浮かんでくる全ての余計な「あったらいい機能」を省いて、自分の問題を解決することだけに集中しました。もし出来上がったものが心から「これだ!」と思えなければ、それは問題が解決できていないという事です。自分が心から愛せるものが出来るまでスクラップ・アンド・ビルドを繰り返しました。

ノートアプリのMVPの要件は以下のとおりです:

  • GitHub-Flavored Markdown対応のエディタ
  • シンプルであること
  • UIが美しいこと
  • デバイス間ですばやく同期されること
  • オフラインでも使えること

開発にあたって、ウェブ技術でクロスプラットフォームのデスクトップアプリが作れるElectronを採用しました。以後、偶然にもモバイル版のためにReact Nativeを使うことになるので、ここでフレームワークとして採ったReactJSは良い選択でした。また、すばやく安定した同期を実現するためにCouchDBとPouchDBを選択しました。CodeMirrorのおかげでMarkdownエディタは比較的すぐに構築できました。UIデザインについては、Airmailなどの素晴らしいアプリを参考にしました。

実はここで挙げた技術を使うのは全て初めてでした。学習が面倒だったので、KitematicというオープンソースのDockerコンテナマネージャ(Apache License)をフォークして開発を始めました。まともなアプリを作るための実用的な知見がそこにあらかじめ詰まっているからです。

ダークテーマを適用したUI

満足の行くMVPが作れたので、実際に人に使ってもらってフィードバックを得たいと思いました。そこでプライベートβでの公開に踏み切りました。パブリックβにしなかった理由は、DHH が彼の著書 Getting Real で以下のように述べていたからです:

「ベータ版」をスケープゴートにしない — ベータ版は顧客に責任を転嫁します。自分達のリリースに自信が無いのなら、どの様に世間が認めてくれるのですか?個人レベルでのベータ版は良しですが、一般公開のベータとなれば話は別です。人々の利用に十分ではないのなら、提供しない方がましです。

ローンチ時にHacker Newsにリンクを投稿すると、幸運なことにトップページに掲載されて結果的に1,000を超えるテスター登録がありました。このベータユーザは沢山の提案やバグ報告をして下さり、正式リリースまでアプリ改善に大いにご協力頂きました。

Hacker Newsの生んだトラフィック

この段階で僕は頻繁に利用統計データをチェックして、毎日のように利用するヘビーユーザが現れないか見ていました。なぜなら、それがアプリ成功の見込みを示す重要なバロメータだからです。利用分析にはMixpanelを利用しました。もしヘビーユーザがまだ現れていないのなら、アプリの完成度が不十分であるという事です。

何より重要な事は全てが持続可能であることです。買い切り価格は定期的なメジャーバージョンアップを強いて、無理矢理にでも何か目新しい機能を追加し続けなければなりません。サブスクリプションモデルは、ただ継続して価値のあるサービスを提供するだけでいいのです。

僕は 4.99ドル/月 または 49.9ドル/年 で販売することにしました。60日間のフリートライアル付きです。これは次のGoogleを狙うようなスタートアップではないので、何百何千万のユーザを獲得する必要はありません。これは大企業が投資したがらないニッチな「小商い」の領域です。だから価格を決めるにあたって、たとえそれがちょっと高くなろうとも市場価格に倣う必要はないと考えました。ターゲットにしたのは、自分と同じような価値観で仕事道具にはお金を惜しまない人です。

一部にはこの価格を見て憤慨する人がいました。でも一方でアプリの売上は徐々に上がっていきました。つまり、自分がユーザとしてこれぐらいなら払ってもいいと思える価格を付けるのは間違っていないという事です。なぜなら、自分と同じ予算を持ち合わせた人は必ず存在しているからです。更に、僕は価格の理由をウェブサイトに掲載して、自分の考えと方針を登録前に理解してもらえるようにしました。

Stripeは去年から日本でも正式に使えるようになったクレジットカード決済プラットフォームです。USドルでの請求や海外からの支払いにも対応しています。デベロッパーフレンドリーなAPIを備えていて個人的にとても気に入っています。例えば:

  • 任意の試用期間をサブスクリプションに設定できる
  • クーポンで割引を適用できる
  • webhook経由で試用期間終了3日前に通知を受け取れたりできる
  • Eメールレシートの自動発行
  • プランの変更時に未使用分の料金を次の支払いから自動で差し引いてくれる
  • クレジットカード情報はクライアントライブラリによってトークン化されて自前のサーバに送られる

これらの便利な機能のおかげで迅速に支払いシステムを組むことが出来ました。おすすめ。

ランディングページを構築するにあたって、自分の大好きなサービスを沢山参考にしました。SketchやStripe、Mixpanel、Airmail、Basecampなどなど。彼らがそこでどんな情報を提供しているのかを調べて、より良いランディングページを作るためのチェックリストを作りました:

  • 💡 簡潔な説明
  • 👀 デモ(スクリーンショット、ビデオ、サンプル、登録なしで試用できるバージョンなど)
  • 💪 主要な特徴と利点
  • 💵 価格
  • 💬 ユーザからの推薦文
  • 📣 行動喚起(登録やダウンロードへの誘導)

プロモーションビデオは訪れた人の手を煩わせること無く実際の利用イメージを伝える強力な方法です。クオリティは問いません。僕はAfter EffectsとiMovieを使って自分で簡単なビデオを作りました。以下の動画に出てくる髭もじゃのお兄さんは友達ではありません。これはVideoHiveで購入したビデオクリップです。BGMはAudioJungleで購入しました。このようにして、少ない予算と日数だけでいい感じのPVが作れました。

After Effectsは利用画面のダイナミックなトランジションを表現するために使ったのですが、僕の非力なPCでは処理が重すぎたので素材の繋ぎあわせはiMovieでやりました。

完成したランディングページ

問い合わせに対する迅速な返答はサービス運営での最優先事項です。どんな事であろうと人は待たされるのが好きではありません。でも大企業は平気で何日も利用者を待たせます。小回りの効く個人制作者の強みは、迅速丁寧なサポートの提供によって競合と一線を画せる事です。

僕はメールやフォーラム、Twitterなどで問い合わせを受けると、可能な限りすぐに作業を中断して返信するようにしています。さらにバグ報告に対しては数日以内でだいたい直しています。すると以下のようにユーザさんはとても驚いた様子で喜んでくれます:

喜ぶ反応を見るのが楽しい

ユーザのロイヤルティを高めるための手段として、迅速丁寧な対応の効用はいくら強調してもしきれません。

結果がどうあれ、全ての経験は共有する価値があります。マーケティングの観点では、ブログは無駄にお金を浪費することなく存在感を高めて集客できる方法です。なぜなら教えることは贈与であり、それが有益なほど、読んだ人によるソーシャルメディアへの拡散が見返りとなって現れるからです。広告は要りません。

3ヶ月前、「MarkdownノートアプリInkdropで家賃の半分が賄えるようになりました」という記事が約800件の「はてブ」を獲得してバズりました。この記事からアプリを知った400人以上がユーザ登録をして、更にその一部の方々が課金してくださりました。

記事のアクセス数

以下は同じ内容の英語版の記事のアクセス数です。今ならもうちょっとわかりやすく書いてアクセスを集められたかもしれませんが、それでも充分多くの人に読んでもらうことが出来ました。

ちなみに内容が硬くなりがちなので、最近はかわいい犬のイラストを描いてアイキャッチに添えて中和するようにしています。中和大事。

ビットコインが育つのをじっと見つめるいぬさん

ポール・グレアムの定義によれば、スタートアップとは急速に成長する会社のことです。起業家の観点で言えば、僕のやり方はお金を稼ぐにはすごく要領が悪くて遠回りに見えるでしょう。確かに、無料プランを作ったり値段を下げてプレスリリースを打ちまくればもっと話題になって、額面上は稼げるかもしれません。

僕はいわゆる「成功」を求めているのではなく、ただ今をより楽しく生きようとしているだけです。尊敬しているハッカーの一人の TJ Holowaychuck が以下のように述べていてとても共感しました。彼はいわゆる成功に向かって奔走するのではなく、健康的なペースで好きなことをするというライフスタイルに重きを置いています:

Lifestyle is also increasingly important, the more I work, the more I realize I should be doing things I enjoy, at a healthy pace, and not worry about the other kinds of “success”.

同様に、僕は自分が最高だと思えるプロダクト作りにこだわりをもっています。それが自分の好きなことだからです。いいものを作れば売り上げは後から付いてくると信じています。

正式リリースの後、アプリはプライベートβの時のようにはバズりませんでしたが、少数のヘビーユーザが使い続けていました。その結果、リリース後の数ヶ月で最初の10万円の売上を達成できました。ゆっくりとした成長ペースは、アプリが改善されるに従って少しずつ加速しています。

急成長を狙ってウェブライターに大量のPRメールを送り続ける代わりに、とにかく開発に集中しました。その努力が口コミを生んで広まったのは間違いありません。「同僚に教えたよ」とわざわざ言ってくれるユーザさんもいました。この小さな輪を大事にしたいです。

万人を喜ばせようとすると、結局誰も喜ばせられません。

プライベートβのローンチ当時から沢山の批判をもらいました。「アプリがクローズしたらどうすんだよ」「Electron製アプリはパフォーマンスもメモリ使用量もヒドいからダメだ」「50ドル/年とかふざけてる」「サーバが全く信用できない」「継続課金ですか。じゃあ、さようなら」「哀れなアプリだ。消えてくれ」←ひどい。笑

批判は常に情熱的で声高く響きますが、不満の無い人は基本的に何も言いません。なのであたかもネガティブな反応ばかりに思えてしまいます。でも見方を変えれば、批判が来るのは良いサインです。なぜなら、そもそもアプリに興味がなければ何も言ってくることは無いからです。一番怖いのは、リリース後に全く何も起こらないことです。ネガティブな反応は、あなたが正しい問題に取り組んでいる証明なのです。

僕は批判への対応に右往左往せず、今満足してくれている人を更に満足させることに集中しました。それが信じて進むべき方向だからです。

ちょっと記事が長くなってしまったので、技術的な話はまた別の記事に分けたいと思います。どうやってデスクトップ版とモバイル版を効率的に開発したか、サーバサイドはどうしたのかといった話を書ければと思います。よろしければ Twitterアカウント をフォローして下さい。

あなたの個人開発の参考になれば幸いです。

本稿は保存版まとめのような内容ですが、個別の事柄を掘り下げていくつか既に書いています。よろしければご参考下さい。

Read more

個人開発で日本から海外へ、10年間の歴史 — ひろしさんとの対談(前編)

個人開発で日本から海外へ、10年間の歴史 — ひろしさんとの対談(前編)

数週間前、ひろしさんのポッドキャストにゲストで出演しました。お互いの長い個人開発の経験について語り合いました。英語版を作成する過程で、日本語でも綺麗に整形した書き起こしが出来たので、こちらに掲載します。お楽しみください。 ※ギアアイコンをクリックして、音声と字幕を日本語に変更できます。 00:00 イントロ:TAKUYAさんようこそ 01:32 TAKUYAさんの自己紹介:WalknoteからInkdropまで 04:54 独立への踏み切り方:慎重派と勢い派 06:51 個人開発がフリーランス案件につながった 09:17 Inkdropで食えるようになるまで 12:15 なぜ最初から海外市場を狙ったのか 14:54 AI登場前、英語コピーに苦戦した話 16:18 AIバイブコーディング時代をどう見ているか 17:24 全てのコードを一行ずつレビューする使い方 21:06 AIは新幹線:速さの先にあるもの 25:53 AI時代に「感性」が大事になる 27:

By Takuya Matsuyama
「一汁一菜」にAI時代の生き方が詰まっている

「一汁一菜」にAI時代の生き方が詰まっている

どうも個人アプリ作家のTAKUYAです。 今回は、AI時代を開発者・クリエイター・表現者としてどう健やかに生きるか、について考えていることをシェアしたいと思います。ここでの「健やかに生きる」とは、心身の健康を保ちながら、ものづくりを楽しみ続けるという意味です。 読者の中にも、最近のAIの急速な進化の中でどう生き残り、さらに活躍していくかを悩んでいる方は多いのではないでしょうか。正直、すべてに対する正解はわかりません。未来を正確に予測できる人はいないからです。 でも自分は、ソフトウェア寄りのアーティストとして生きる上で大事なのは、「戦略」や「堀(moat)」を築くことよりも、「生きる方向性」 だと思っています。 人生とは速度ではなく方向である – ゲーテ 自分はどこに行きたいのか?何を見たいのか?それが大事です。戦略は状況に合わせて柔軟に変えればいいからです。 今回は、日本の文化からいくつかの生き方の原則を探ってみたいと思います。 最近、料理研究家の 土井善晴 さんの 「一汁一菜でよいという提案」 を読んで、日々のリズムを健やかに保つためのヒントがたくさん詰まっていると感じまし

By Takuya Matsuyama
Claude Codeをtmuxのポップアップウィンドウで継続的に走らせる方法

Claude Codeをtmuxのポップアップウィンドウで継続的に走らせる方法

💡本記事は英語ブログの日本語訳です。 どうも、TAKUYAです。 AIコーディングでは専らClaude Codeを使っています。最初はtmuxでターミナルの右側にペインを分割して使っていたのですが、幅が狭すぎてメッセージやdiffがまともに表示できず、使いづらかったです。 <Prefix>+zでペインを最大化すればいいのですが、毎回やるのは面倒でした。 そこで、ポップアップウィンドウでClaude Codeを起動するようにしました。キーバインドを押せばセッションが開き、閉じてもバックグラウンドで動き続けるので、すぐに再開できます。 この記事では、それを実現するためのtmuxの設定方法を紹介します。 動画で見る(英語): ポップアップウィンドウはサブプロセスを維持できない tmuxのdisplay-popupコマンドを使うとポップアップウィンドウを表示でき、ちょっとしたツールにすぐアクセスするのに便利です。 僕はlazygitでgitの状態をサッと確認するのに使っています: bind -r g display-popup -d '#{pane_current_path}'

By Takuya Matsuyama
Keychron K2 HEを無刻印化する手順

Keychron K2 HEを無刻印化する手順

どうもTAKUYAです。KeychronさんにK2 HEをお願いしたら音速で送ってくれたので、無刻印化してみました。どうやったのか過程をシェアします。 Unboxing 上はKeychron Q1です。これは3年間ぐらい使ってきました。キーキャップが若干くたびれていますね。でも問題なく今まで使えていました。そろそろ飽きてきたので新しいキーボードを試したいと思い、前から気になっていたK2 HEを試すことにしました(写真下)。 Amazon | 【国内正規品】Keychron K2 HE ラピッドトリガー ワイヤレス カスタムキーボード、ホールエフェクトGateronダブルレール・マグネットスイッチ、2.4GHz・Bluetooth無線対応、QMKプログラム可能、アルミ+ウッドフレーム、USレイアウト、RGBライト、Mac Windows Linux対応 (ブラック) | Keychron | パソコン用キーボード 通販【国内正規品】Keychron K2 HE ラピッドトリガー ワイヤレス カスタムキーボード、ホールエフェクトGateronダブルレール・マグネットスイッチ、

By Takuya Matsuyama