個人でローンチしたサービスの技術スタック整理 第一部
動機
個人開発で少し収益が出始めたので備忘録兼ねて状況を大まかに整理します
3月にリリースしました
アプリの概要
- ユーザーに特定のエディタを提供
- 無料会員は一部機能が制限される
収益状況
- 月間アクティブユーザー: 19人
- 月額3$ユーザー: 11人
- 無料ユーザー: 8人
維持費
ドメイン代: 年約10$
利用しているサービス/技術と各々の責務
バックエンドはこんな形
NeonのDBブランチを使いつつ
markdownファイル
フロントエンドはCloudflare PagesをGitHubに繋いでブランチプレビュー使っているだけで、特筆することはありません。
開発フロー
フロントエンド
- developブランチ、その他開発ブランチは開発バックエンドに接続したbranch preview機能を用いている
- deployブランチにPRマージすることでリリースする
バックエンド
- wrangler publish --env dev/prodでデプロイ
- stripeとclerkをラップしてテストを書いている
- 決済はテスト不能なのでdevでテストカードを使い出来る限りテストする
- webhookで取れるイベントはすべてSlackに飛ばしている
いいんじゃないかと思っているところ
- 課金ユーザーの8割が面識あり、忌憚ない意見が来る
- 週に一度以上のリリース
- それなりのクリーンアーキテクチャ
- プロダクト譲渡も検討している&パフォーマンスは求められないのでRustではなくTypeScriptで妥協
課題(技術的)
- 開発ペイン
- 自明なtry catchが多すぎる
- EffectTSかnever throwの導入検討中
- 課金状態等のenum管理周りで冗長なコードが多い
- stripe cliを使いこなせていない
- フロントのテスト方針が固まりきっていない&不足している
課題(技術的以外)
- マーケティング不足
- ユーザー数が少ない
- 自分自身が技術的な観点に囚われがち