Claude Codeで、実際にサービスを作って公開するまでの記録
このスクールの申込・決済の仕組みを、実際にClaude Codeで作った記録です。どこで時間がかかり、どこでつまずいたのかを、そのまま公開します。
この記事は、実際にあった作業の記録です。いま読んでいるこのサイトの申し込み・決済・アカウント発行の仕組みを、Claude Codeで作りました。うまくいった話ではなく、5か所でつまずいた話を書きます。そのうち2か所は、AIに聞いても気づけないものでした。
まず結論
作ること自体は、思ったより早く終わりました。時間がかかったのは、その周辺です。
内訳はこうです。
| 作業 | かかった時間の感覚 |
|---|---|
| 決済の仕組みを作る | 短い |
| メールを送る仕組みを作る | 短い |
| 外部サービスの設定(決済・メール・ドメイン) | 長い |
| 確認と修正 | 長い |
| 法律上必要なページの用意 | 中くらい |
「コードを書く」以外の部分が、全体の大半を占めました。 これは自分たちにとっても発見でした。
何を作ったか
作ったのは、次の一連の流れです。
- 1
申し込みフォームでプランを選ぶ
- 2
決済ページで支払う
- 3
支払いの完了が、システムに通知される
- 4
アカウントが自動で作られ、パスワードが発行される
- 5
ログイン情報がメールで届く
- 6
運営にも申込通知が届く
- 7
受講者はすぐログインして学習を始められる
3〜6は、人が一切関わりません。深夜に申し込みがあっても、その場でアカウントができます。
つまずいた場所
正直に書きます。5か所でつまずきました。
1. メールが届かない設定(いちばん時間がかかった)
メールを送るには、「このメールは確かにこのサイトから送られた」と証明する設定が必要です。これをしないと、届いたメールが迷惑メール扱いされます。
この設定は、ドメイン(サイトの住所)の管理画面で行います。ここで間違えました。
設定する項目の「名前」欄に、何も入れずに登録してしまったのです。本来は特定の名前を入れる必要がありました。
結果、証明用の情報がまったく違う場所に登録され、いつまで待っても認証が完了しませんでした。
教訓: 画面に「自動でドメインが追加されます」と書いてある場合、名前欄にはサブドメイン部分だけを入れます。フルで入れると二重になります。
2. 決済のテストで、メールが送れなかった
決済のテストをするとき、宛先を test@example.com にしました。すると、メール送信サービスがそのアドレスへの送信を拒否しました。
example.com は説明用に予約されたドメインで、多くのサービスが送信をブロックします。
教訓: テストでも、実際に届くアドレスを使ってください。自分のアドレスに +test を付ける方法が便利です(yourname+test@example.com のような形)。
3. 51人目以降が見つからないという不具合
これは公開前に見つけられた、危ない不具合でした。
すでに登録済みの人が、別のプランを追加で購入したときの処理です。「このメールアドレスの人はもう登録済みか」を確認する必要がありました。
ここで、登録者の一覧を取得して探すという作りになっていました。問題は、この一覧が一度に50件までしか返ってこないという点です。
つまり**受講者が51人を超えると、それ以降の人が「登録済みなのに見つからない」**という状態になります。決済は完了しているのに、処理が止まります。
受講者が50人以下のうちは、絶対に発覚しません。 順調に増えてから起きる不具合です。
教訓: 「一覧を取ってきて探す」という作りを見たら、件数の上限がないか確認してください。 AIはこういう作り方をすることがあります。
4. 大事な鍵が、パソコンの中に平文で残っていた
作業の途中で、データベースを自由に操作できる鍵が、設定ファイルの中に文字のまま保存されていることに気づきました。
外部に漏れてはいませんでしたが、そのままにはできません。鍵を無効にして、新しいものに入れ替えました。
教訓: 便利さのために、鍵を一時的にどこかへ貼ることがあります。作業が終わったら消す、これを習慣にしてください。
5. 通知が届かない設定
決済の仕組みでは、「支払いが完了した」という通知を受け取る必要があります。
検証用の環境でこれを試したところ、通知が届きませんでした。 原因は、検証環境にアクセス制限がかかっていたことです。人が見るには便利な設定ですが、機械からの通知も同じように弾いてしまっていました。
教訓: 検証環境に制限をかけるときは、外部サービスからの通知が通るかも確認してください。
AIだけでは解決できなかったこと
ここが、この記事でいちばん伝えたい部分です。
上の5つのうち、AIに聞いても気づけなかったものが2つあります。
1つ目は、51人目の不具合です。 これはコードを読んで「この作り方だと件数の上限に引っかかる」と気づく必要がありました。AIは自分が書いたコードを自分で確認するので、この見落としに自分では気づきません。
2つ目は、鍵が残っていた件です。 「鍵が漏れていないか探して」と明示的に指示しなければ、探しません。
48%
AIが書いたコードを「必ず確認している」開発者の割合です。今回の2件も、確認する工程がなければ見逃していました。
AIは「頼まれたこと」は非常によくやります。でも「頼まれていないこと」は考えません。 この記事で挙げた5つは、全部その性質から生まれた問題です。
実際に使った指示
記録として、要所で打った指示をそのまま残しておきます。
決済の仕組みを作るとき
申し込みフォームから決済までの流れを作りたいです。
・プランを選んで、名前とメールアドレスを入力する
・決済ページに移動して、カードで支払う
・支払いが完了したら、自動でアカウントを作る
・ログイン情報をメールで送る
決済は Stripe、データの保存は Supabase を使ってください。
カード情報は自社で保持しない形にしてください。
**「カード情報は自社で保持しない形に」**と明示しました。これを言わないと、自前で扱う実装を提案されることがあります。カード情報を自社で持つと、必要な安全対策の水準が跳ね上がります。
51人目の不具合を見つけたときのやり取り
既存ユーザーかどうかを判定している部分を見せてください。
利用者が増えたときに問題が起きないか、確認したいです。
一覧を取得して探す形になっている場合、
取得件数に上限がないかを確認してください。
「取得件数に上限がないか」と具体的に聞いたことで見つかりました。 「問題ないか確認して」だけでは出てこなかった可能性が高いです。
鍵が残っていないか確認したとき
このプロジェクト全体で、APIキーやパスワードが
コードや設定ファイルに直接書かれていないか探してください。
過去のコミット履歴も含めて確認してください。
「コミット履歴も含めて」が重要です。 ファイルから消しても履歴に残るため、そこも見る必要があります。
公開してわかったこと
作る時間より、確認の時間のほうが長い
これが最大の発見でした。コードを書く作業は、全体のごく一部です。
外部サービスの設定、テスト、不具合の修正、法律上必要なページの用意。こちらのほうが、はるかに時間を使いました。
法律上の準備を忘れがち
有料でサービスを売るには、特定商取引法に基づく表記が必要です。これがないまま販売を始めると法令違反になります。
作ることに集中していると、こういう準備を忘れます。公開の直前ではなく、早い段階で確認しておくべきでした。
検証用の環境を作っておくべきだった
最初、本番の環境で確認していました。途中で検証用の環境を分けて作り、そこで自由に試せるようにしました。
これを最初からやっておけばよかったというのが、率直な反省です。
これから作る人へ
自分とAIでできることが多い
- 自分や友達だけで使うツール
- 学校や会社の中だけで使うツール
- アイデアを試すための試作品
- 利用者が少ない小さなサービス
専門家の知識が重要になる
- 他人の個人情報を預かる
- お金のやりとりをする
- 利用者が一気に増えたとき
- 動かなくなったときの復旧
今回作ったのは、右側に入るものでした。個人情報を預かり、お金のやりとりが発生し、止まると受講者が困ります。
だから慎重に進めましたし、確認に時間をかけました。
もしあなたが作ろうとしているものが左側なら、もっと気軽に進めて大丈夫です。まず作ってみてください。
右側に入るなら、公開前の確認項目を必ず見てから公開してください。
よくある質問
Q. どれくらいの期間で作りましたか? A. 作る作業自体は短時間でした。ただし外部サービスの設定と確認を含めると、その何倍もかかっています。
Q. プログラミングの知識がなくても同じことができますか? A. 決済や個人情報を扱う部分は、知識がないまま公開するのは勧めません。ただし、動くものを作るところまでは十分できます。
Q. いちばん時間がかかったのは何ですか? A. メールの認証設定です。設定を1か所間違えたせいで、原因の特定に時間を使いました。
Q. 同じことをやってみたい場合、何から始めればいいですか? A. まず自分だけが使う小さな道具から始めてください。プログラミング未経験から、自分のサービスを公開するまでの進め方に手順をまとめています。
まとめ
- 決済からアカウント発行まで、自動で動く仕組みをClaude Codeで作った
- 作る時間より、外部サービスの設定と確認の時間のほうが長かった
- つまずいたのは5か所。メール設定・テスト用アドレス・件数上限の不具合・鍵の管理・通知の遮断
- そのうち2件は、指示しなければAIは気づかないものだった
- 法律上の準備と検証環境は、早い段階でやるべきだった