ブラウザ拡張開発日記

作ってるもの→ https://chrome.google.com/webstore/search/cside?_category=extensions

拡張機能の有料機能を、買い切り or サブスク どちらで提供するか、悩んだメモ

実装はあらかた終わったが、最後の最後に、買い切りかサブスクかで迷いが生じてしまった。

相談できる同僚もいないので、ここで自分の考えを整理したい。

対象のプロダクト

chrome.google.com

一見簡単そうに見えるが、パーサーが非常に複雑で、コード行数 5,000 行超えの大作となっている。これだけ手間隙かけて無料はちょっとなぁ、と思い始め、一部の機能を有料で提供する決断をした。

リスク要因

2 つある。

1. 拡張が、Notion の「非公式」API に依存していること

  • Notion が公式に 3rd に向けて提供されている API ではなく、Notion の Web ページで使われている非公式な API を勝手に使っている
    • つまり、 公式が API の仕様を変更して、ある日突然 拡張が動かなくなる可能性がありうる
    • その場合は当然、新バージョンの API に対応する改修を行なう必要がある。

2. 僕の体調が不安定であること

  • 現在は 1 週間に平均して 4〜5 日くらいは(短い時間ながらも)コードを書けている
  • しかし、体調が悪化したり、強い副作用の薬を服用するようになった場合、1〜2 ヶ月、最悪それ以上の期間、コードが書けなくなる可能性がありうる。(過去にもそういう事があった)

最も悪いケースを考えれば、 「僕が体調不良でコードを書けない期間」と「 Notion の API の(後方互換性を壊す)仕様変更」が同時に起こった場合、その期間はサービスが停止する ことになる。

サービスが当面の間 停止する場合の対応

上記の最悪ケースが起こり、当面の間サービスが停止する緊急事態になった場合。(しかも、いつコードを再び書けるようになるかも見通せない場合)

買い切りの場合

  • 有料プランの導線をいったん閉じ、場合によっては、つい最近お金を払ってくれたユーザーに対して返金対応をする

サブスクの場合

  • 有料プランの導線をいったん閉じ、 サービスが再開できる日まで、サブスク加入ユーザーに対して「毎月」払い戻しの対応をする
    • 「サービスを再開できるまでの間、サブスク加入ユーザーにはいったん解約してもらう」ということは ExtensionPay / Stripe の仕様上できなさそう(せいぜい、お願いのメールを一件一件手動で送るくらい)なので、毎月払い戻しをする以外無いだろう

以上を踏まえ、買い切りか、サブスクか

  • サブスクはやめておいたほうが良さそう
    • コードか書けないくらい病気が悪化しているときに、払い戻しというタスクが毎月発生するのは、(1) 既存のサブスク加入ユーザーへの罪悪感 (2) 早く回復しなければ、という焦りが生じる という 2 点から、ただでさえ病気で余裕の無くなっている精神状態にさらに追い打ちをかけることになる 。それはかなり危険
  • よって、消去法的に、買い切りに決定する。

終わりに

  • 上記の 2 つのリスク要因が無ければ、迷わずサブスクにしていただろう
    • 生活上、一度しかお金が入ってこないよりも、毎月お金が入ってきた方が嬉しいに決まっている
    • それに、メンテナンスに今後も継続的に時間を取られるだろうし。
    • ユーザーとしても、無名の僕にいきなりまとまった額を支払うのには抵抗があるはずなので、試しやすい少額で使い始められるサブスクリプションが嬉しいユーザーはいるだろう
  • しかし、リスク要因を無視することは出来ないので、今回は買い切りという選択を選ぶこととする。
----------------- 価格・課金スキームを考えるにあたり、モリゴンさんの [課金術 - portal shit!](https://portalshit.net/2023/10/04/how-to-charge-fees) を大変参考にさせていただきました(結果的に、彼の薦めるサブスク型は選べなかったけれど)。この場を借りて改めてお礼を申し上げます。