プロダクトをすべて手元で処理する理由
Sonir、Pixmend、gpdf は、どれも利用者のデータをサーバーに送りません。理由はプライバシーではなく、サーバー代と、サーバーを持つことで失われる自由度です。
わたしがいま個人で運営しているプロダクトは三つあります。macOS の再生音に DSP をかけて DAC へ出す Sonir、ブラウザで動く画像修復ツールの Pixmend、Go の PDF 生成ライブラリの gpdf です。分野はばらばらですが、設計には共通点がひとつあります。どれも、利用者のデータをわたしのサーバーに送らずに処理します。
- Sonir は、部屋の測定データを端末の外に出しません。
- Pixmend は、Real-ESRGAN を WebGPU でブラウザの中だけで動かします。
- gpdf は、呼び出し元の Go プロセスの中で PDF を組み立てます。
プライバシーへの配慮に見えますが、出発点は別のところにあります。理由は二つで、サーバー代と、サーバーを持つことで失われる自由度です。
サーバー代は、一人では払い続けられません
処理をサーバーで行うと、利用者が増えるほど費用が増えます。画像の拡大や音声の処理のように計算の重い処理なら、なおさらです。本業を持ちながら一人で運営している以上、利用者が増えることがそのまま負担の増加になる構造は、長く続けられません。
手元で処理すれば、計算するのは利用者の端末です。利用者が何人増えても、わたしの側の費用はほとんど変わりません。配るのは静的なファイルだけで済みます。
費用を回収する仕組みが、プロダクトの形を決めてしまいます
サーバー代そのものより大きいのは、その費用を回収するための仕組みのほうです。
サーバーで処理するなら、使いすぎを防ぐために回数制限が要ります。回数を数えるにはアカウント登録が要ります。費用を賄うには有料プランが要ります。どれも、利用者のために足す機能ではありません。サーバー代を払い続けるために足す機能です。そして一度入れると、プロダクトの形はそれに合わせて決まっていきます。
Pixmend が登録なし、回数制限なしで使えるのは、気前がいいからではありません。処理が手元で完結していて、制限を設ける理由がそもそもないからです。Sonir のベータを無料で出せているのも、同じ理由です。
自由度は、作る側にも残ります
自由度が残るのは、利用者の側だけではありません。サーバーを持たなければ、障害対応も、データの保管も、容量の見積もりも抱えずに済みます。空いた時間と注意を、プロダクトそのものに使えます。
もちろん、手元処理にも制約はあります。使える計算資源は利用者の端末しだいで、ブラウザや OS の仕様にも縛られます。Sonir では、macOS の再生音を受け取るために仮想オーディオデバイスから作る必要がありました(仕組みは Zenn に書きました)。それでも、端末の制約の中で設計するほうが、費用の回収に合わせて設計するよりも、作りたいものに近いものが作れると感じています。
質問への応答
プライバシーのためではないのですか
結果として、データは利用者の手元から出ません。ただ、それは目的ではなく、サーバーを持たないと決めたことの帰結です。理由を後から整えて書くと実際の判断とずれるので、ここでは順番どおりに書いています。
どんなプロダクトでも手元で処理できますか
できないものもあります。複数の利用者のデータを集めて初めて成り立つサービスは、サーバーなしには作れません。一人の利用者の手元で完結する問題を選ぶ、というのがいまの方針です。