TinyPilot: Month 6

Michael Lynch

TinyPilot:6ヶ月目

原文は Michael Lynch により に公開されました。 このブログを購読する

ひとことで言うと

偶然、過去最高の売上を叩き出してしまった。

ハイライト

  • TinyPilotは今月も過去最高を更新し、売上は1万5,000ドルに達した。
  • 初の動画コースで1,100ドルの予約販売を売り上げた。
  • 売上を抑えようとした試みが、逆に売上を押し上げる結果になった。

目標の自己採点

毎月のはじめに、達成したいことを宣言している。今月、その目標をどれだけ達成できたか振り返る。

TinyPilot Proの初回バージョンをリリースする

  • 結果: TinyPilot Proのベータ版をリリースした
  • 評価: B

TinyPilot Proのリリースで一番大変なのは、有料ユーザー向けに別の配布チャネルを用意することだと思っていた。v1の機能は簡単そうに見えたが、予想以上に手こずった。

正式版をリリースするつもりだったが、リリースの数日前に自分以外誰もベータテストしていないことに気づいた。数人のユーザーに先行アクセスを打診してみたが、ちょうど年末年始の休暇期間で、あまり進展はなかった。そこで「ベータ版」として公開し、50%割引で提供することにした。

関連する視聴者を持つブロガーまたはYouTuberからTinyPilotのレビューを2件獲得する

  • 結果: 2人のYouTuberがレビューに同意してくれたが、まだ公開されていない
  • 評価: D

この件ではTinyPilot Proが計画を狂わせた。TinyPilotのレビューに興味を持ってくれていた大手YouTubeチャンネルと話を進めていたのだが、ある日「サイトに『TinyPilot Proを近日リリース』とありますが、あれは何ですか?」というメールが届いた。

彼らは1週間後に古くなってしまうレビューを撮りたくなかった。そこで、ロードマップ上の次の機能であるリモートドライブマウントにTinyPilot Proが対応してからレビューすることになった。

別のYouTuberもレビューに同意してくれたが、無償のデバイスを送ったきり連絡が途絶えた。単に立て込んでいるだけだといいのだが。

Hacker Newsコースの全7パート中5パートを収録する

  • 結果: 5つのパートを収録し、予約購入者に公開した
  • 評価: A

ギリギリで達成できた。大晦日の午後5時に最後の動画を送ったが、なんとか間に合った。予約購入者は最初の5本の動画に先行アクセスできるようになった。

統計

TinyPilot

指標2020年11月2020年12月増減
ユニークビジター3,1183,486+368 (+12%)
合計ページビュー9,0215,785-3,236 (-36%)
販売売上$12,313.25$15,358.31+$3,045.06 (+25%)
寄付$0.00$9.00+$9.00 (+inf%)
合計売上$12,313.25$15,367.05+$3,053.80 (+25%)

TinyPilotは今月も好調で、売上が25%伸びた。2020年の目標が年間で2万ドルの売上だったことを考えると信じられない。今ではほぼ毎月それに近い額を稼いでいる。

成長はしているものの、まだ手探り感は拭えない。12月はYouTuberへのレビュー依頼がうまくいかなかった以外、マーケティングらしいことは何もできなかった。開発作業も、自分のリソースが足りずペースが落ちた。売上は十分に安定してきたので、パートタイムの開発者を雇うことにし、すでに採用活動を始めている。

Hit the Front Page of Hacker News

指標2020年12月
合計ページビュー2,243
注文数30
合計売上$1,181.40

12月は、ブログ講座『Hit the Front Page of Hacker News』の予約販売を始めた最初の月だった。

販売初日は少しパニックになった。予約はわずか2件、合計160ドルしか売れなかったからだ。先行きは暗いかと思ったが、その後は少額ながらもコンスタントに注文が入り、12月の売上は1,000ドルを超えた。

新規顧客にリーチする最良の方法の一つは、舞台裏をTwitterでシェアすることだと気づいたのだが、あまりに忙しくて投稿する時間をなかなか確保できなかった。

偶然、過去最高の売上を記録した

TinyPilotの最初の数ヶ月は、在庫が追いつかず、しばしばすべての製品を入荷待ちとして販売機会を逃さざるを得なかった。ありがたいことに2ヶ月間は入荷待ちを回避できていたが、その記録は12月に途切れた。

HDMIキャプチャチップの入荷が遅れており、それがないとハイエンドモデルであるVoyagerを組み立てられなかった。

さらにTinyPilot Voyagerを組み立てるには、中国からの輸送途中で止まっていたHDMIキャプチャチップの入荷が必要だった。

月曜日のことだった。チップは土曜日に届く予定だった。手元にはVoyagerが6台残っていた。普段は1〜2日に1台売れるペースなので、なんとか持ちこたえると思っていた。するとその日に2人の顧客が購入した。

残りは4台。まだいけるかもしれない…

火曜日にも、さらに2人の顧客がVoyagerを購入した。利益率が最も高い製品が売れるのに、これほどがっかりしたことはない。

残り2台となり、販売の勢いを抑えようとした。Voyagerの価格を249ドルから299ドルに引き上げたのだ。その2時間後、ある顧客から「7台買いたい」というメールが届いた。

在庫状況を説明すると、顧客は「2台はすぐに発送し、残り5台は数日待つので構わない」と言ってくれた。幸いチップは翌週に届き、顧客は7台すべてを期日通りに受け取ることができた。これで1人の顧客から2,093ドルの売上となり、その日の合計売上はTinyPilot史上最高の3,298ドルに跳ね上がった。

Voyagerを50ドル値上げした日に、1日で過去最高となる3,298ドルの売上を記録した。

性善説によるソフトウェアライセンスの運用

TinyPilot Proの作業は何ヶ月も先延ばしにしていた。最初のステップがあまりにも退屈だったからだ。それは「配布」の問題だった。

無料版のTinyPilotの配布は簡単だ。ソフトウェアがすべてオープンソースなので、顧客もそうでない人も同じインストールスクリプトで済む。

TinyPilot Proはもっと複雑になる。もしソースを公開してしまえば、顧客は「ネットで無料で手に入るのに、なぜお金を払う必要があるのか?」と思うかもしれない。有料顧客だけがアクセスできるようにする必要があった。

ライセンスシステムの設計を始めた。たいして難しくないように思えた。顧客のデバイスIDを元にハッシュか何かを生成して、サーバー側で照合すればいい。でもライセンスの有効期限はどうする? となると、有効期限付きのライセンスデータベースが必要になる。でもそのデータベースを失ったらどうなる? うーん…

TinyPilot用のライセンスキーサーバーの設計を6割ほど終えたところで、やりすぎだと気づいた。

明らかにオーバーエンジニアリングに感じた。Shopifyのデジタルライセンス用プラグインも調べてみたが、どれも質が低く、必要な機能を備えていなかった。それらを統合するより、自分で作った方が早そうだった。

そこで気づいた。ライセンス認証自体をなくしてしまえばいいのではないか、と。

友人であるCory ZueがDjango向けスターターキットPegasusを販売したときの経験を思い出した。Pegasusでは顧客は1つのウェブサイトを構築できることになっているが、Coryにはそれを強制する手段がない。顧客が一度Pegasusのソースコードをダウンロードしてしまえば、それを何百ものサイトで再利用できてしまうのだ。

Pegasusの販売開始から数ヶ月後、Coryは顧客が新しいサイトのためにPegasusを再購入しているのを見てほっとした。技術的には、彼らは以前買ったのと同じコードに対して再び支払っていることになる。しかし顧客はPegasusのライセンスを誠実に守り、製品に対して正当な対価を支払っていたのだ。

Coryはより良い解決策に気づいた。無制限ライセンスだ。不誠実な顧客ならシングルサイトの料金を払ってコードを再利用することでごまかせるにもかかわらず、顧客はわざわざ無制限ライセンスを購入してくれるのだ。

顧客は、シングルサイト向けのライセンスを再利用してごまかすこともできるのに、わざわざ無制限ライセンスを購入してくれる。

性善説がCoryにとって十分に機能するなら、自分にも十分機能するはずだ。ライセンスサーバーの計画は棚上げにし、TinyPilot Proは見つけにくいURLに置くだけにした。

不誠実な顧客が1つのライセンスを複数のデバイスで再利用したり、URLを非購入者と共有したりする可能性はあるが、そのリスクも影響も小さい。TinyPilot Proの販売を開始して1週間も経たないうちに、すでに4つのライセンスを別々に購入してくれた顧客もいる。

締め切りを設定しすぎた

12月は明らかに詰め込みすぎた。

普段は顧客に「いつまでに製品を出す」と約束することは避けている。TinyPilotはまだ若く、状況は急速に変わるからだ。一方で、この6ヶ月間「TinyPilot Proを近日公開」と言い続けながら、実際にはまったく進捗がないことをだんだん恥ずかしく感じるようになっていた。そこでついに「年内に初回バージョンをリリースする」と顧客に伝えた。

プレミアム機能を待ち望んでいた顧客向けに、TinyPilot Proをベータ版としてリリースした。

同時に、初めての動画コースの制作も始めた。執筆、収録、編集、公開までで約40時間かかると見積もっていた。普段のブログ記事1本を書くのと同じくらいの時間なので、ブログの代わりにそれをやればいいと考えた。リリース日は1月13日に設定した。数時間の動画を作るには、非常に余裕のあるスケジュールに思えた。

ブログ講座Hit the Front Page of Hacker Newsの一場面

コース完成に必要な作業量を大幅に過小評価していた。実際には150〜200時間はかかりそうで、TinyPilotに充てる時間を大量に奪われている。

さらに、毎年2月1日、つまりGoogleを辞めて独立した記念日に年次振り返りを公開するのが恒例になっている。その伝統は続けたいし、毎回大きな反響がある。となると、2月1日までにブログ記事を用意しなければならない。

つまり、1ヶ月の間に4つものタイトな締め切りを、自分でも気づかないうちに設定してしまっていたのだ。今後は公開する締め切りをもっと慎重に設定しようと思う。

既存プロジェクト

ここでは、現在も維持しているものの、開発の主軸ではないプロジェクトについて簡単に近況を報告する。

Is It Keto

指標2020年11月2020年12月増減
ユニークビジター43,91149,373+5,462 (+12%)
合計ページビュー102,14393,242-8,901 (-9%)
ドメイン評価(Ahrefs)10.010.00
AdSense収益$357.51$334.72-$22.79 (-6%)
Amazonアフィリエイト収益$74.01$149.99+$75.98 (+103%)
合計売上$431.52$484.71+$53.19 (+12%)

1月には新年の健康志向の高まりで大きな伸びを期待している。来たる繁忙期に収益を最大化するため、Amazonアフィリエイトのリンク更新に1時間ほど費やした。それ以外は、Is It Ketoは裏側で自動運転のまま置いてある。

Zestful

指標2020年11月2020年12月増減
ユニークビジター484507+23 (+5%)
合計ページビュー1,3931,511+118 (+8%)
RapidAPI収益$28.37$103.33+$74.96 (+264%)
エンタープライズプラン収益$872.63$0.00-$872.63 (-100%)
合計売上$901.00$103.33-$797.67 (-89%)

Zestfulも静かだ。エンタープライズ顧客の1ヶ月プランは予定通り終了し、更新はなかった。RapidAPIの収益は跳ね上がったが、その95%は1人のユーザーが一度きりの大量パースで使ったものだったようだ。

まとめ

何ができたか?

学んだこと

  • 締め切りは絞り込む。
    • 特に1ヶ月の間に4つもタイトな締め切りを設定しない。
  • サイドプロジェクトを販売する際は、事前販売ではなくウェイトリストを使う。
    • 事前販売の利点は、顧客に購入意思があることを早期に確認できることだ。
    • 一方で欠点は、すでに特定のトピックを特定の期日までに提供すると約束して販売してしまっているため、スコープを変更したりリリース日を延期したりしにくく感じることだ。
    • 今後ebookやコースを販売する際は、事前販売ではなくウェイトリストを作るつもりだ。
    • Adam WathanがこのMicroconfトークで事前販売とウェイトリストについて詳しく語っている。
    • こうして書き出してみると、宣伝した概要に厳密に従わなければというプレッシャーを、必要以上に自分にかけている気もしてきた。概要と完全に一致させることをそこまで気にする人はそういないはずだ。もし気になる人がいても、簡単に返金に応じている。

来月の目標

  • TinyPilotの開発を手伝ってくれるフリーランスの開発者を雇う。
  • 関連する視聴者を持つブロガーまたはYouTuberからTinyPilotのレビューを2件獲得する。
  • Hit the Front Page of Hacker Newsで4,000ドルの売上を上げる。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント