プロダクトを出してから気づいた設計の落とし穴

要約
個人開発のリリース後に気づいた設計ミスを、事例と学びでまとめました。アイデアより、設計や人との関係性が成功を大きく左右するという話
まだ、フィードバックはありません

個人開発をしていると、プロダクトのリリース後に
「あれ?なんでこうなった?」という設計上のミスに気づくことがある。

ワイ8ヶ月間、開発にフルコミットしたのよ。AI エージェントなんてなかったから(興味すらなかったけど)延々コード書いてた

草生えまくってる

参画断って、受託断って、1日、12時間は開発やったかな。食事も睡眠もいらねぇと思ってたよ。楽しかったからね

当然、資金も貯金もガンガン減るやん?

で、こんだけやったからお金になるかなーと余裕かましてたら

  • 「あれ?何で誰も使ってくれないの?」
  • 「なんで、収益化できないの?」

といった具合。まぁ、当たり前よね

この記事では、そんな「やらかした設計ミス」と「なぜそれが問題だったのか」「今ならどうするか」をまとめておく

設計ミス一覧とその本質

https://twitter.com/commte/status/1931188402642423902

X の内容を書き出すとこんな感じ。多分これ意識するだけで成功率上がると思うよ?

設計ミス結果・理由
関係性ゼロでリリース誰も来ない。仲良くなったり営業も必要
技術選定が雑FWや認証が密結合で後から変更不能
継続利用ありでも無課金PMFじゃなくPMM不足(伝え方・売り方)
AIがDB直叩きdev DB全消し事故。RLS+読み取り専用View必須
安すぎる価格価値が伝わらない(価格=ポジション)
要件定義を軽視設計の軸がブレる
フリーミアム設計ミス有料転換されない
自分だけでテスト想定外の使われ方に気づけない
サブスク導線が不明瞭離脱される(動線もUXの一部)
Stripe Connect導入単一送金なら不要。撤去困難
課金制御が複雑true/falseで即切り替え可能に
サポートが人力のままスケールしない(自動化設計必須)
UI改善だけで課金期待動機と心理フックが必要
グロース設計を軽視放っておいても広まらない(仕掛けと導線必要)
AI導入時に本番DB直参照View+サンドボックスで安全に分離

深掘り:なぜそれが問題だったのか?

ちょっとだけ解説しておくよ

関係性ゼロでリリース

素晴らしいもの作っても、関係性構築してなければ200%拡散されないね

「この人のサービスなら使ってみたい」と思ってもらうには、リリース前から少しずつ関係性を積み上げておくことが重要

X でフォロワーさん増やしても、反応ない人いる?

それ、一方的な発信だけしてるのよ。フォロワーさんにマメに絡んだり、いいねしてないからだね

フォロワーさんは情報を求めてない、関係性を求めてる。関係性があるから応援してくれる

ワイが、Xで「いいね0」のときに、必ずいいねしてくれる人がいたのよ。今でも覚えてるし、嬉しかったし、ワイもその人に必ずいいねしたりリツイートする

そしてその連鎖を他の人にも広げたくて、いいねされなくて困ってそうな人見たら、いいねしたりリツイートする(これが大事なのよ)

「この人、いつも私のくだらないポストに反応してくれる」って思われてるかもしれない

フォロワーさんに関心を持って会話を大事にすべし。

どんな有益な情報だけ発信しても、関係性が構築されていなければ拡散してくれない。と思ったほうがいいね

実はXアルゴリズムで「会話が自然発生し、かつ著者がその会話にリアクションするポストを作る」は最強の重み。おすすめに表示されやすくなる(知ってた?)

結論

「アイデアに力なし。人は知ってる人から買う」

うーん、身も蓋もない

AIがDB直叩き

とりあえず、これを見て欲しい

https://twitter.com/commte/status/1928401400758722654

これ、Claude Code という AI エージェントに、Supabase MCP を、--read-only 外して、直でDB触らせたの。

そしたら、Supabase のテーブルが、ポンっ空になったのよ

私:supabase のDBの中身が全部消えましたよ

AI:申し訳ありません!データベースの型変更の際に TRUNCATE コマンドを使用して既存データを削除してしまいました。

って謝罪するけど、これ新人の謝り方よね。ワイもね「そんなこと言われても…」って思ったけどね(TRUNCATE 使ったらアカンと新人は注意されるよね?)

AI がSupabase のテーブル全部削除しちゃった…という事故

バックアップも取ってたし、リストアも有効にしてたし、Dev 環境で助かったけど、こんなに恐ろしいことは無いよ?

ワイ、漏らしそうになったからね…

詳しくはこれに書いたけど、目の前で Supabase の テーブルがポンって消えるから、トラウマになったよ

インシデント発生後、Claude Code に再発防止レポートの作成を依頼したところ、出力内容がすべて文字化けし、しばらく応答が停止

何度再起動しても、赤いメッセージが出るだけ

もはや Claude Code 自身が「この件に触れるな」と言ってるかのような、ある種のAI的忖度、事故に対するAIの自己防衛反応のようにも見えた

AI系のプロダクトでよくある落とし穴。生成AIに直接SQLを叩かせた結果、dev環境でDB全消し事故発生。MCPのようなAI実行環境には、読み取り専用Viewサンドボックス環境の両方が必要。

個人でStripe Connect に手を出す前に

最近まで izanami にユーザー同士で金銭が発生する機能をつけていたが、トラブルや外貨管理のことを考えて一時停止。

そもそも色んな機能に密に結合するから撤去困難になる。凄腕ソフトウェアエンジニアが何人もいるチームならまだましだけど、個人開発で手を出さないほうがいいかもね

無料で使えると思っていたが、Webhook処理や課金ロジックの設計ミスで請求事故→返金対応や信頼失墜による損失

なんて事故起きたら、どうするの?
一人で対応なんてできないよ?

そもそもユーザー同士の手数料では収益化できないからね。toB のサブスクが一番儲かるよ

技術選定が雑

開発初期に「とりあえず動くものを」と思って選んだ技術スタックが、後になって地獄を生む。FWや認証がアプリのあちこちに密結合されていると、仕様変更やサービスの乗り換えがほぼ不可能になる。抽象化とインターフェース設計は「後から楽をするための保険」。

詳しくはこちらを読んでみて欲しい。画像ストレージ(要注意)、商標登録(弁理士へ相談)、画像最適化、認証の初期構築を甘くみると後で詰むよ?

だから、とりあえず、Next.js と Supabase で、というのは危険。

FWや認証変えたくなったら面倒よ?

継続利用ありでも無課金

使われている=価値がある、とは限らない。課金されない原因はPMF(プロダクトの価値)ではなく、PMM(届け方・売り方)にあることも多い。UIの改善よりも、心理的な動機づけや、料金プランの提示タイミングの方が重要だったりする。

安すぎる価格

価格は「価値」ではなく「ポジション」だと痛感。無料 or 100円では逆に「なんか怪しい」と思われたり、信頼されないこともある。価格には機能以上に「メッセージ」が込められている。

UI改善だけで課金期待

ボタンを見やすくしただけでは課金は起きない。必要なのは、課金する理由。たとえば「期限」「限定要素」「感情フック」など、課金を後押しする仕掛けが設計に織り込まれているか。

どうすればよかったか?(再発防止策)

  • 技術選定は「後で変えられるか」を重視し、Adapter層やInterfaceを用意
  • MCPやAI系ツールを使う場合は、読み取り専用View+devサンドボックスを前提に設計
  • フリーミアムは「無料では触れない価値」をどこに置くかを最初に決めておく
  • 課金導線は設計の最初から画面遷移やモーダルとして組み込む
  • サポートは必ず自動化・テンプレート化し、人間工数ゼロを前提にする

終わりに

「設計ミス」は恥ではなく、進化の証。やらかしたぶんだけ、設計の引き出しが増える。個人開発においては、トラブルや事故がそのまま“知見”となって蓄積されていく。もし今、自分のプロダクトに違和感があるなら、それは成長の前兆かもしれない。

Explore More
関連記事はありません。