ここでは、実際に運用しているSNSアプリ「ぬい日和」で採用している技術スタックを紹介します。あわせて、どのくらいのコストがかかっているのかもお伝えします。SNS開発やiOSアプリ開発を考えている方は参考にしてみてください。
コーディングエージェント
コーディングエージェントには Claude Code を利用しています。ただし、Claude Codeではなく Codex を使っても構いません。
現在はどのモデルも十分に賢く、ほぼ横並びだと考えています。「GPT-5.6がすごい」「Opus 5がすごい」「Fableがすごい」といった議論はありますが、アプリで成果を出すという意味では、モデルの選択と成果の間にほとんど相関はありません。ここは気にしなくて大丈夫です。
フロントエンド:Expo
フロントエンドには Expo を採用しています。採用した理由は2つあります。
WindowsからiOSアプリを開発できる
通常、iOSのリリースはAppleの製品であるMacからしかできません。しかしExpoを使うと、Windows環境からでもiOSの審査に出すことができ、iOS開発が可能になります。現在はWindows環境でアプリ開発をしているため、これは大きなメリットです。
クロスプラットフォームに対応している
Expoはクロスプラットフォームに対応しているため、Android対応が進めやすくなります。実際、1日から2日程度である程度Androidでも動作する状態になりました。
Expoのデメリット
WindowsではiOSシミュレーターが使えない
MacBookであればiOSシミュレーターを立ち上げ、パソコン上で動かしながらデバッグできます。AIにシミュレーターを操作させてエンドツーエンドテストを行い、自動で動作テストをすることも可能です。
Windowsではこれができないため、すべて手動で一つひとつチェックしていく必要があります。なおMacの場合でもExpoを使った開発はできるため、今後もExpoを採用していく方針です。
iOS標準の機能に手を入れられない
Expoでは、iOS標準の機能をいじることができません。たとえば以下のようなものです。
- ウィジェット機能の追加
- ヘルスケアアプリとの連携(歩数など健康状態の計測)
SwiftやFlutterのようなネイティブに近い言語であれば、こうした機能を扱えます。ただし、これらがメインの機能でないアプリであれば問題ありません。SNSアプリのようにウィジェットを必要としないものであれば、Expoで十分です。
フォーム入力時に下線が表示されない
細かい点ですが、Expoでは文字を入力して確定する前の下線が表示されません。UXの観点で気になる方もいるかもしれませんが、現状1万人ほどのユーザーがいるなかで、この点に関する要望やフィードバックは届いていないため、それほど気にしなくてよいと考えています。
バックエンド
バックエンドはBaaS(Backend as a Service)を利用しており、構成は以下のとおりです。
- データベース:Convex
- 認証:Clerk
- 画像ストレージ:Cloudflare R2
アプリ運用でインフラコストがかかるのは、主にデータベース、認証、画像ストレージの3つです。
実際のインフラコスト
Clerk(認証)
月額25ドルがかかっています。
Convex(データベース)
1万ユーザーを捌く必要があるため、1日あたり平均15〜16ドルほどかかっています。日本円にすると1日およそ2,300円、月に直すと約6万9,000円です。これに加えて固定で25ドルを支払う形になります。
Cloudflare R2(画像ストレージ)
非常に良心的で、データ転送量に料金がかからないため、ほとんどコストが発生していません。月2ドル程度です。かなりの量の画像を投稿しているにもかかわらずこの金額なので、非常に優れた選択だと感じています。
なお、これは画像ファイルの保存に使っているもので、別講座で扱っている音声アプリと同じ構成です。
認証サービスの選択について
今回は認証にClerkを採用し、25ドルを支払っています。ただし、別のサービスのほうがよかった可能性もあります。ConvexにもConvex Authという認証機能があり、そちらのほうが安く済んだかもしれません。
どちらのコストパフォーマンスが良いかは、ユーザーが小規模な時点と、大きく増えたときとで変わってきます。そのため一概にどちらが良いとは言えず、比較してみないと分かりません。
なぜClerkで25ドルを課金する必要があったのかについては、次の記事で実際のデータを見ながら説明します。1日1万人のユーザーを捌くSNSにどのくらいのコストがかかっているのか、どこにお金がかかっているのかを見ていきましょう。