TinyPilot: Month 6

Michael Lynch

TinyPilot:6か月目

一行まとめ

意図せず過去最高の売上を記録しました。

ハイライト

  • TinyPilotはまたしても記録を更新し、売上は1万5,000ドルになりました。
  • 初めてのビデオ講座を先行販売し、1,100ドルの売上がありました。
  • 売上を抑えようとしたら、逆に売上が伸びました。

目標の達成度

毎月の初めに、その月に達成したいことを決めています。目標に対してどこまで進められたかは、次のとおりです。

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

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

TinyPilot Proのリリースで大変なのは、有料顧客向けの別の配布経路を用意することだと思っていました。Proのv1に必要な機能は簡単そうに見えましたが、実際には予想以上に難しいものでした。

正式版のTinyPilot Proをリリースしてもよかったのですが、リリースの数日前になって、ベータテストをしたのが自分だけだったことに気づきました。何人かのユーザーに連絡して、先行アクセスに興味があるか尋ねましたが、ちょうどホリデーシーズンだったため、あまり進みませんでした。そこで「ベータ版」として公開し、50%引きで提供することにしました。

関連する読者を持つブロガーまたはYouTuberからTinyPilotのレビューを2件受ける

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

TinyPilot Proのせいで、ここでの計画が狂いました。TinyPilotのレビューに興味を持っている大手YouTubeチャンネルと、以前から話を進めていました。ところが先方から、「ところで、サイトにもうすぐリリースすると書いてあるTinyPilot Proって何ですか?」というメールが届きました。

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

もう1人の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万ドルの売上を上げることだったのに、今ではほぼ毎月それだけ稼いでいると考えると、なんとも現実離れした気分です。

これだけ成長しているにもかかわらず、TinyPilotでは今も手探りで進めているように感じます。12月に行ったマーケティングは、YouTuberからレビューをもらおうとして失敗したことくらいです。手が回らなかったため、開発作業も滞りました。売上は十分に伸びたので、パートタイムの開発者を雇えると判断し、すでに採用活動を始めています。

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キャプチャチップの出荷が遅れており、TinyPilotのハイエンドモデルである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用のライセンスキーサーバーの設計を60%ほど進めたところで、解決策を過剰に複雑化していると気づきました。

これは過剰設計に思えました。デジタルライセンスを提供するShopifyのプラグインも調べましたが、どれも品質が低そうで、必要な機能もありませんでした。そうしたソリューションと統合するより、自分で作ったほうが時間がかからなさそうです。

そのとき、あることに気づきました。ライセンスの強制を完全にやめたらどうだろう?

友人のCory Zueが、DjangoのスターターテンプレートPegasusを販売したときの経験を思い出しました。顧客はPegasusを使って1つのWebサイトを構築できますが、Coryにはそれを強制する方法がありません。顧客がPegasusのソースコードをダウンロードすれば、何百ものサイトで再利用するために必要なものがすべて手に入ります。

Pegasusの販売を始めて数か月後、Coryは顧客が新しいサイト用にPegasusを再購入していることを知り、ほっとしました。技術的には、以前に購入したものと同じコードに対して料金を払っていることになります。それでも顧客はPegasusのライセンスを正直に守り、製品に対する対価をCoryに支払っていたのです。

Coryは、もっとよい方法を提供できることに気づきました。無制限ライセンスです。不正を働く顧客なら、1サイト用の料金だけを払ってコードを再利用し、Coryに損をさせることもできます。それでも顧客は無制限版を定期的に購入しています。

1サイト用のライセンスを使い回して不正を働くこともできるのに、顧客はCoryから無制限ライセンスを購入しています。

Coryのケースで紳士協定が十分に機能しているなら、私の場合もうまくいく可能性が高いでしょう。ライセンスサーバーの計画はいったん棚上げし、TinyPilot Proを見つけにくいURLに置くことにしました。

不誠実な顧客なら、同じライセンスを複数のデバイスで使い回したり、URLを料金を払っていないユーザーと共有したりできます。しかし、どちらもリスクと影響は小さいものです。TinyPilot Proの販売を始めてからまだ1週間も経っていませんが、すでに4つの別々のライセンスを購入した顧客が1人います。

締め切りを設定しすぎた

12月は、明らかに予定を詰め込みすぎました。

私は通常、特定の日までに製品を提供すると顧客に約束することを避けています。TinyPilotはまだ始まったばかりで、状況がすぐに変わるからです。一方で、TinyPilot Proを「すぐに」リリースすると6か月も言い続けてきたのに、何も進んでいないことを、だんだん恥ずかしく感じるようになりました。ついに、年末までに最初のバージョンをリリースすると顧客に伝え始めました。

新しいプレミアム機能を早く使いたい顧客に向けて、TinyPilot Proをベータ版としてリリースしました。

同じ頃、初めてのビデオ講座にも取りかかりました。執筆、収録、編集、公開までに約40時間かかると見積もっていました。新しいブログ記事を書くのにかかる時間とだいたい同じなので、次の記事を書く代わりに講座を作ればいいと考えたのです。数時間分の動画を制作するには非常に余裕のあるスケジュールに思えたので、1月13日をリリース日に設定しました。

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

講座を完成させるために必要な作業量を、大幅に見誤っていました。この講座の制作には、おそらく150~200時間かかります。そのせいで、TinyPilotに割ける時間が大きく削られています。

それだけではありません。私は、Googleを辞めて自分で仕事を始めた日の記念日である2月1日に、毎年振り返り記事を公開する伝統があります。いつも大きな反響があるので、この伝統は続けたいと思っています。そのためには、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%は、Zestfulを一度だけ大量データの解析に使ったと思われる1人のユーザーによるものです。

まとめ

できたこと

学んだこと

  • 締め切りを減らす。
    • 1か月の間に厳しい締め切りを4つも設定するのは、絶対に避ける。
  • サイドプロジェクトを販売するときは、先行販売ではなくウェイトリストを使う。
    • 先行販売には、顧客が早い段階で購入する意思があるとわかるという利点があります。
    • 先行販売の欠点は、特定の内容を特定の日までに提供すると約束して販売してしまうため、内容の範囲を変更したり、リリース日を延期したりすることに気が引けることです。
    • 今後、電子書籍や講座を販売するなら、先行販売ではなくウェイトリストを作ります。
    • Adam Wathanが、こちらの役に立つMicroconfの講演で、先行販売とウェイトリストの違いについて詳しく話しています。
    • とはいえ、こうして書き出してみると、告知した講座の構成に厳密に従おうとして、自分で無用なプレッシャーをかけている気がしてきました。誰も、私が構成どおりに完全に一致させることをそこまで気にしてはいないでしょう。もし気にする人がいても、返金は簡単にできます。

来月の目標

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

原文は Michael Lynch により に公開されました。

この記事は「gpt-5.6-luna」を使用して翻訳されました。