ハコヅミを作る #44:フリーと有料の違いを、どこに置くかを決める

前回(#43)の最後に、GitHub Actions の障害でデプロイが止まりました。待っているあいだに、コードを書かない相談を進めています。

今回は、その1つ目です。

  • フリーと有料の違いを、どう考えるか(#184)
  • フリーの上限の数を、決め直す
  • ベータ版のあいだは、どうするか

仮の数のままだった

登録数の上限は、#29 で作りました。そのときの目的は、1人が大量に登録して、データベースや画像の置き場を使い切るのを防ぐことです。数は「仮」として、ギア 300・消耗品 100・画像 300 などと入れていました。

ベータ版では、テスタがこの上限の中で使います。仮のままでは、何を確かめているのか分かりません。始める前に、考え方から決め直すことにしました。


2つの考え方

最初に頭にあったのは、次の2つです。

  1. 試せる程度の上限にする。使い勝手が分かるくらいは登録できる。ちゃんと使うと決めた人に、有料会員になってもらう
  2. ふつうに使う分には、フリーで足りる上限にする。道具が多い人、キャンプの回数が多い人が、有料会員になる

どちらがよいか、Claude Code に意見を聞きました。


1つ目が、合わない理由

返ってきた答えは、2つ目に近いものでした。1つ目が合わない理由は、こうです。

ハコヅミの価値は、持ち物を全部入れて、はじめて出ます。

ギアを 30 個までしか入れられないと、残りは頭で覚えることになります。半分だけのチェックリストは、信じてよいか分かりません。ないより悪い、とも言えます。

つまり、上限を低くすると、「使い勝手が分かる」前に、「これでは忘れ物がなくならない」と分かってしまいます。お金を払う前に、いちばんの売りを体験できません。

自分のデータを見ると、ギアは 56 件です。ファミリーなら、100 件を超える人もふつうにいるはずです。

費用の面でも、絞る理由がありませんでした。ギアやプランの行は、いくら増えても、ほとんど費用がかかりません。費用に効くのは、画像だけです。


2つ目にも、弱点がある

では、2つ目でよいかというと、こちらにも弱点がありました。数の上限だけだと、ほとんど誰も当たらないのです。

  • キャンプ 100 回は、月に1回行く人でも、8 年かかる
  • ギア 300 件に届く人は、かなり少ない

「たくさん持っている人が、いつか払う」は、起きるとしても何年も先で、人数も少ない。数の上限は、有料にする理由としては弱い、という指摘でした。

言われてみれば、そのとおりです。どちらの案も、「数」で分けようとしていたのが、合っていませんでした。


「積み込み」と「楽しみ」で分ける

落ち着いたのは、数ではなく、ものの種類で分ける考え方です。

分け方 中身 フリー
積み込みに要るもの ギア、消耗品、コンテナ、プラン、持ち物チェックそのもの ふつうの人が困らない数。絞らない
楽しみ・記録のもの 画像、料理 一通り試せる数
これから作る機能 共有、コミュニティ 差を置く(具体的には、あとで決める)

守る線は、1つです。忘れ物をなくす、という中心は、フリーで全部使える。

差を置くのは、「もっと楽しむ」側です。ギアの写真を全部に付けて、カード表示で眺める。料理をたくさん持つ。こういうところは、好きな人ほど欲しくなります。

なかでも、画像を、いちばんの差にすることにしました。増えると費用がかかる、ただ1つのものです。ここに差を付けるのは、筋が通ります。

これから作る共有の機能についても、1つだけ先に決めました。「見ること」は、有料にしない。見る人が減ると、共有そのものが育ちません。差を付けるなら、出す側の上乗せに置きます。


数を決める

考え方が決まると、数はすぐに決まりました。

対象 今まで(仮) 決めた数 考え方
ギア 300 300 ファミリーでも足りる。絞らない
消耗品 100 200 料理の食材が、消耗品として増える
コンテナ 50 50 ふつうは 5〜15
プラン 20 20 ふつうは 2〜6
キャンプ 100 100 何年分も入る。記録が消える心配をさせない
料理 30 20 一通り試せる数
画像 300 50 いちばんの差

消耗品の 100 は、#42 で料理を入れたことで、ふつうの人でも当たる数になっていました。料理 20 品に、食材が5つずつあれば、それだけで 100 です。ここは、考え方がどちらでも、直す必要がありました。

画像の 50 は、ギアとキャンプの画像の合計です。確かめたのは、この数え方でした。合計なら、「主なギアと、行ったキャンプの写真には付けられる」くらいの数になります。

アカウントの画面の「使っている数」。ギア 64 / 300、消耗品 47 / 200、料理 9 / 20、コンテナ 7 / 50、プラン 4 / 20、キャンプ 12 / 100、画像 46 / 50 と並んでいる

アカウントの画面の「使っている数」。この例では、画像だけが上限に近い

上限に達したときの扱いは、今までどおりです。新しい登録だけを止めます。超えている分は消しません。画像の差し替えも、できます。


ベータ版も、この数で

テスタには、上限をゆるめて使ってもらう手もありました。選んだのは、フリーの数のまま使ってもらうほうです。

ベータ版は、数が合っているかを確かめる場でもあります。ゆるめてしまうと、確かめられません。テスタへの案内には、「数の上限は、ちょうどよいかを確かめているところです。足りないと感じたら、教えてください」と入れます。

テスタには、有料のプランを始めた日から1年間は無料、と約束しています(#37)。上限に当たっても、損はさせません。


数は、コードに書いていない

決めた数を入れるのは、すぐでした。上限の数は、コードには書かず、データベースのテーブルに持っています。変えるのは、マイグレーションの SQL が1行です。

UPDATE `plan_limits`
SET `max_supplies` = 200, `max_dishes` = 20, `max_images` = 50
WHERE `plan` = 'free';

アプリのコードは、1行も変えていません。紹介のページや利用規約にも、数は書いていなかったので、直すところはありませんでした。

「数は、あとで変わる」と考えて、#29 で外に出しておいたのが、ここで効きました。


正直なところ

相談の最後に、Claude Code はこう書いていました。

1人で運営する、趣味の強いサービスなので、有料会員の数は、多くは見込めない。「元を取る」より、「続けるための足し」と「応援してくれる人への上乗せ」くらいに置くのが合っている。その前提なら、フリーを広くして、使う人を増やすほうが、長い目で見て得になる。

耳の痛い話ですが、そのとおりだと思います。この前提を、料金を決めるときにも持っておきます。


おわりに

  • 「どこまで無料か」を決める前に、「このサービスの価値は、どこで出るか」を考える。全部入れてはじめて役に立つものは、入り口を絞ると価値が見えない
  • 数の上限は、有料にする理由としては弱い。ほとんどの人は、何年も届かない
  • 差は、費用がかかるところに置くと、説明がつく
  • 変わりそうな数は、コードの外に持つ。決め直したときに、SQL が1行で済む

次回は、同じく止まっているあいだに決めた、公開のあとの道のりです。

← トップページに戻る