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

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

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
ノート駆動AIコーディング術の提案

ノート駆動AIコーディング術の提案

どうもTAKUYAです。みなさんはAIエージェントを普段のコーディングで活用されていますか。ちょっと面白いワークフローを思いついたのでシェアします。それは、ノート駆動のエージェンティック・コーディング・ワークフローです。最近Claude Codeのプランモードを使っていたら、ターミナル内で生成されたプランを読むのが辛かったんです。それで、じゃあMarkdownノートアプリであるInkdropをプランの保存先バックエンドとして使えば解決するんじゃないかと思って、 試してみました。こちらがそのデモです(英語): こちらがClaude Codeの設定ファイル群です: GitHub - inkdropapp/note-driven-agentic-coding-workflow at devas.lifeComplete Claude Code configuration collection - agents, skills, hooks, commands, rules, MCPs. Battle-tested configs from an Anthropic hackathon w

By Takuya Matsuyama
2025年個人開発活動の振り返り

2025年個人開発活動の振り返り

どうもTAKUYAです。もう1月も半ばに差し掛かっているけど、2025年の自分の活動の振り返りをしたい。去年を一言で言うなら、本厄を満喫した年だった。 厄年とは、人生の節目にあたって、体調不良や災難が起こりやすいと経験的に言われる年齢のこと。数え年で42歳、確かにもう若さに任せた事は出来ないなと痛感した年だった。(ところであなたの国ではこのような年はありますか?) 夏に体調を崩して2~3ヶ月動けなくなった 暖かくなり花粉が飛び出した頃に、持病のアトピーが悪化しだして、まともに生活出来なくなってしまった。酷さで言うと、2019年に脱ステした時と同じぐらい。 脱ステに無事成功したから、この地獄は二度と味わうことはないだろうと高を括っていたが、まさか7年後にまた味わうとは思わなかった。当時の独身時代と違い、妻も子供もいる中で、周りに多大な迷惑をかける事となった。夏の子供との思い出が全く無い。悲しい。 現在はQoLもほとんど元の状態まで復活できた。写真を撮って症状の変化を記録したので、機会があればシェアしたい。食事療法など色々試したが、結局歩くのが一番自分に効いた。それ以来、一日一万歩

By Takuya Matsuyama
書いて、歩け!なぜノートアプリはシンプルで充分なのか

書いて、歩け!なぜノートアプリはシンプルで充分なのか

どうもTAKUYAです。今回はノートやメモから新しい発想を生むための考え方についてシェアします。 自分はシンプルさをウリにした開発者向けのMarkdownアプリInkdropを作っています。なので、どうしても「ノートアプリの作者」としてのポジショントークが含まれてしまいますが、逆に言えば、「ノートアプリを約10年間作り続けてきた人間が、どうやってアイデアを生み出しているのか」 という実際的な体験談として読んでもらえれば幸いです。 結論から言うと、僕は「アプリ上でノート同士を連携させる必要はない。繋げるのはあなたの脳だ」と考えています。本稿では、ノートアプリの機能に溺れずユニークなアイデアを考え出すために僕が実践している事をシェアします。 TL;DR * ノート整理に時間をかけるな。グループ化で充分だ * すごい人はアイデアが「降りてくる」のを待つ * プログラミング × 料理動画 という有機的な掛け合わせ * ノートは「忘れる」ために書く * 歩け! ノート整理に時間をかけるな。グループ化で充分だ 巷ではZettelkastenなどが流行っているようですね。これ

By Takuya Matsuyama