※この記事は、Claude Codeで1人開発しているSNS運用SaaS「ThreadPost」の開発日記です。
AIに「いい感じのデザインにして」と頼んだ。それが地獄の始まりだった。画像にラベルを付けるだけの簡単なタスクだ。気づけば2時間、5回のデザイン変更を繰り返し、画面は極彩色のバッジで埋め尽くされた。
SNS運用を自動化しませんか?
ThreadPostなら、投稿作成・画像生成・スケジュール管理まで全てAIにお任せ。
AIと5回戦った画像ラベルUI
AIに画像生成のUI改善を任せた。生成した画像がどのモデルで作られたか、ひと目でわかるようにしたかった。僕は「AI生成画像の選択状態管理とラベル表示機能を追加」と指示した。
Claude Codeは数秒でコードを吐き出した。動かすと、画像の下に巨大なラベルが付いていた。実装は完璧で、データもDBに保存されている。企業開発ならデザイナーが数日かけるモックアップが、数秒で目の前にある。
でも「なんか違う」。画像よりラベルが目立ちすぎている。僕は「画像ラベルを上部に表示するよう変更」と指示した。AIは即座にラベルを上に移動させた。でも、今度は画像の上部が隠れて見えない。
情報量と視認性のトレードオフだ。人間のデザイナーなら、ここで引き算をする。AIは要素を足すことで解決しようとした。「AI画像ラベルを3バッジシステムに改善」を提案してきた。AI、スタイル名、モデル名を別々のバッジに分割した。
画面がバッジだらけになった。紫のグラデーションで視覚的階層を表現しているらしい。SaaSのUIとしてはうるさすぎる。さらにAIは「モデルとスタイルごとに色分けしよう」と言い出した。DALL-E 3は紫、Fluxは緑、Stable Diffusionはインディゴ。画面がゲーミングPCの光り方になった。
しんたろー:
5回のデザイン変更で約2時間消費した。AIのコード生成は1回10秒。残りの1時間59分は、僕が画面を見て「うーん」と唸っている時間だった。
結局、僕の直感的な一言で決着がついた。「画像ラベルを左上角の三角リボンに変更」と指示した。Claude Codeは一発で出してきた。画像が主役。ラベルは左上の小さなリボン。ホバーした時だけ詳細が出る。最初からこの選択肢はAIの中にあった。僕が言語化できなかっただけだ。
泥沼のデバッグと「保存しました」の嘘
UIの迷走から一転、今度はデバッグにハマった。投稿候補画面の画像ドラッグ&ドロップを簡素化したい。並び替えの処理をDB保存と同期させる。「画像ドラッグ&ドロップ機能を元の動作する実装に復元」というコミットから地獄が始まった。Claude Codeは自信満々に「保存しました」とログを出す。画面上の画像は綺麗に並び替わっている。
リロードした。並び順が元に戻った。お前、保存してないだろ。非同期処理における状態管理の典型的な罠だ。Reactの状態更新は非同期で走る。ドラッグ中の頻繁なイベント発火と、DBへのAPIリクエストが完全に競合していた。
「ドラッグ中のチカチカを解消し、保存を安定化」を試みた。AIは複雑なキュー管理のコードを書いてきた。フックを使ってインデックスを追跡するらしい。動かした。今度は画面がフリーズした。楽観的UI更新を実装する際、状態の整合性を保証するのは至難の業だ。
イベントの発火頻度を制御しないと、古い状態が上書きされ続ける。企業開発ならRedisなどのキューイングシステムを入れる場面だ。1人開発のSaaSでそんな重い仕組みは入れたくない。
しんたろー:
修正コミットが7回連続で発生した。AIが書いた複雑な非同期処理のコードを読んで理解するのに30分かかった。自分で書いた方が早かったんじゃないかと思う瞬間。
ここまで読んだあなたに
今なら無料で全機能をお試しいただけます。設定後は完全放置でプロ品質の投稿を毎日生成。
落とし穴
AIが「保存しました」とログを出すたびに、DBの中身が古い順序で上書きされる無限ループに陥った。最新の状態を取得する前に、次の保存処理が走ってしまう。AIは競合を防ぐために、どんどん複雑なロック機構を提案してきた。コードの行数が倍に膨れ上がった。それでもリロードすると画像は元の順番に戻る。
結局、AIが書いた複雑なロジックをすべて消した。一番最初のシンプルなコードに戻した時が一番安定していた。「最新の順序を確定させてから保存する」という原始的な同期処理だ。AIは優秀だが、ブラウザのレンダリングサイクルと非同期APIのタイミングのズレまでは、コードを見ただけでは予測できない。
しんたろー:
複雑なコードはバグの温床。結局、一番シンプルな実装が最強だった。
今日の数字
| 項目 | 数字 | 比較対象 |
|------|------|----------|
| コミット数 | 38件 | 先週の1日平均は12件 |
| UI試行錯誤 | 5回 | 企業なら数日。僕は2時間 |
| 実装コスト | 約$1.5 | 外注なら数万円 |

AIによる実装速度は人間単独の約5倍だ。でも、修正コストを含めると「判断の質」がボトルネックになる。実装コストは限りなくゼロに近いが、意思決定コストは下がらない。AIは無限の選択肢を出す。その中からプロダクトの文脈に合うものを選ぶのは僕だ。迷えば迷うほど、時間は溶けていく。
よくある質問
Q: AIの非効率な実装を防ぐには?
AIにデザインシステムや制約を先に渡す。抽象的な指示は、要素の過剰な追加を招く。引き算のルールを明文化しておく。
Q: ドラッグ&ドロップのバグを再現しないためには?
UIの状態更新とDBの永続化を完全に分離する。ドラッグ中はUIの更新のみにとどめる。ドロップが完了したタイミングで、最終的な配列だけをDBに送信する。
Q: AIと人間の最適な役割分担は?
AIを優秀なジュニアエンジニアとして扱う。無限の選択肢を提示させるのはAIの仕事。プロダクトの文脈に合わせて最終的な一つを選ぶのは人間の仕事。
ThreadPostは今日も進化した。SNS運用の自動化を加速させるための機能改善を続けている。詳細は以下から確認してほしい。

この記事が参考になったら、ThreadPostを試してみませんか?
投稿作成・画像生成・スケジュール管理まで、全てAIにお任せできます。
ThreadPostをもっと知る