<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SaaS on Claude Code 始めました</title><link>https://kitepon-rgb.github.io/WebAICoding/tags/saas/</link><description>Recent content in SaaS on Claude Code 始めました</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Wed, 01 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kitepon-rgb.github.io/WebAICoding/tags/saas/index.xml" rel="self" type="application/rss+xml"/><item><title>5年育てた自分専用Botを、SaaSにして売り出した話</title><link>https://kitepon-rgb.github.io/WebAICoding/post/discord-bot-to-saas/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://kitepon-rgb.github.io/WebAICoding/post/discord-bot-to-saas/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;俺はMMOゲームのギルドで、オークションBotを5年間使ってきた。&lt;/p&gt;
&lt;p&gt;Lineage2Mが2021年にリリースされた頃から、ギルドのボスドロップ分配を自動化するために作ったDiscord Botだ。HIT The Worldでも使った。メンバーが入札して、最高額をリアクション参加者で割って分配する。手作業でやるとスプレッドシートとにらめっこになるやつを、Botに全部やらせていた。&lt;/p&gt;
&lt;p&gt;5年間、自分のギルドでずっと動いていた。便利だった。でも、あくまで自分専用だった。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="自分専用の実態"&gt;「自分専用」の実態&lt;/h2&gt;
&lt;p&gt;5年も育ててきたとはいえ、中身はひどいものだった。&lt;/p&gt;
&lt;p&gt;ギルド名がハードコードされている。タイムゾーンは決め打ち。言語は日本語しかない。設定ファイルなんてものはなく、変えたい値はソースコードを直接書き換える。&lt;/p&gt;
&lt;p&gt;複数のサーバーで使いたい時は、&lt;strong&gt;コンテナごとコピーしていた。&lt;/strong&gt; 同じBotをもう一個立てて、トークンだけ変えて動かす。マルチテナント？ なにそれ。&lt;/p&gt;
&lt;p&gt;課金システムなんてもってのほかだ。サブスクリプションも、利用規約も、決済画面もない。誰かに売るなんて想定していない。自分が使えればそれでよかった。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="saas化を決めた理由"&gt;SaaS化を決めた理由&lt;/h2&gt;
&lt;p&gt;ふと思った。&lt;strong&gt;このBot、売れるんじゃないか。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;多くのMMOギルドが同じ課題を抱えている。ボスのレアドロップが出た。誰が取る？ オークションで決めよう。でもオークションの管理は面倒すぎる。入札を手動で集計して、分配金額を計算して、結果を全員に通知する。やりたいけど、手作業じゃ無理——そういうギルドは多い。&lt;/p&gt;
&lt;p&gt;ただ、自分専用Botをサービスにするには巨大な改修が必要だ。マルチテナント化、課金、管理画面、多言語対応、法的対応。自分の手でやる気力はまったく起きない。&lt;/p&gt;
&lt;p&gt;でも今はAIコーディングの時代だ。不確定要素がない決まった作業なら、AIに一気に終わらせてもらえる。研究や実験と違って「調べてみないとわからない」がないやつ。そう踏んで、やることにした。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="コードの改修"&gt;コードの改修&lt;/h2&gt;
&lt;p&gt;マルチテナント化、Stripe課金連携、OAuth2認証、Web管理画面、4言語対応。やることリストは長かったが、どれも定型作業だ。パターンは決まっているし、公式ドキュメントもある。ゴールは明確だ。&lt;/p&gt;
&lt;p&gt;設計方針を決めて、実装はAIに任せた。一つ一つは別に難しくないが、量が膨大で、手作業で片付ける気にはならない類の作業だ。&lt;/p&gt;
&lt;p&gt;最初にClaudeが出してきた方針が「856行のserver.jsを8モジュールに分割して、ギルドごとに設定を持てる構造にする。大改修です」だった。脅されたが、もともと動いていたプログラムで動作のロジックは明確だし、上に書いた通り不確定要素がない。案外あっさり終わるんじゃないかと期待していた。AIが得意な仕事なんじゃないかと。&lt;/p&gt;
&lt;p&gt;実際、コードの改修は1日で終わった。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="大変だったのはコードの外側"&gt;大変だったのはコードの外側&lt;/h2&gt;
&lt;p&gt;コードの改修より、&lt;strong&gt;「商品にする」ための作業&lt;/strong&gt;のほうがよほど考えることが多かった。&lt;/p&gt;
&lt;h3 id="法律"&gt;法律&lt;/h3&gt;
&lt;p&gt;サブスクリプションでお金を取るなら、特定商取引法に基づく表記が必要になる。利用規約も書かなきゃいけない。消費者契約法に配慮した免責条項、返金ポリシー、個人情報の取り扱い。個人開発者がサービスを売る時に避けて通れない部分だ。&lt;/p&gt;
&lt;p&gt;これもAIと一つずつ潰していった。「特商法に何を書くべき？」「この条項いる？」と相談しながら、最終的に全17条の利用規約ができた。法律の専門家ではないから正確さの保証はできないが、少なくとも「何も考えてない」状態からは脱出できた。&lt;/p&gt;
&lt;h3 id="stripeの審査"&gt;Stripeの審査&lt;/h3&gt;
&lt;p&gt;決済にStripeを使っているが、本番環境で動かすにはStripeの審査を通す必要がある。セキュリティがちゃんとしているかもチェックされる。&lt;/p&gt;
&lt;p&gt;そこでAIにプロジェクト全体のセキュリティ監査をさせた。13件の指摘が出た。JWT有効期限チェックの欠落、OAuth2のオープンリダイレクト脆弱性、オークション終了の二重通知、APIのレート制限なし——自分では気づけなかったものも含めて、全部その場で修正させた。&lt;/p&gt;
&lt;p&gt;5年間「自分しか使わないから」で見て見ぬふりをしてきた部分が、商品にする段階で一気に表面化した。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="デプロイ"&gt;デプロイ&lt;/h2&gt;
&lt;p&gt;Botの本番デプロイには、自宅サーバーを使っている。&lt;a href="https://kitepon-rgb.github.io/WebAICoding/post/claude-code-deploy/"&gt;以前の記事&lt;/a&gt;で書いた通り、AIにSSHでサーバーを直接触らせるスタイルだ。deploy.shを一発叩けば、ビルドからコンテナ更新まで全部終わる。&lt;/p&gt;
&lt;p&gt;Web管理画面はVercelにデプロイ。こっちはgit pushだけ。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="auctionbot"&gt;AuctionBOT&lt;/h2&gt;
&lt;p&gt;5年間、自分のギルドだけで動いていたBotが、今日からサービスとして公開された。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://web-quo-lu.vercel.app/"&gt;AuctionBOT&lt;/a&gt;&lt;/strong&gt; — DiscordでギルドオークションをBotが全自動管理する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/setup&lt;/code&gt; でチャンネルを自動作成、&lt;code&gt;/auction&lt;/code&gt; でオークション開始&lt;/li&gt;
&lt;li&gt;メンバーがリアクションで参加登録、数字を投稿して入札&lt;/li&gt;
&lt;li&gt;終了後、落札額 ÷ 参加人数を自動計算して分配結果を通知&lt;/li&gt;
&lt;li&gt;スナイプ防止（終了間際の入札で自動延長）&lt;/li&gt;
&lt;li&gt;4言語対応（英語・日本語・韓国語・中国語）&lt;/li&gt;
&lt;li&gt;Free（1同時オークション）/ Pro（月500円、無制限）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ボスドロップの分配で揉めてるギルド、手作業の集計に疲れてるギルドリーダーがいたら、試してみてほしい。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="おわりに"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;コードの改修は、正直AIに任せたら終わる時代になった。マルチテナント化も課金連携も多言語対応も、パターンが決まっている作業は一気に片付く。&lt;/p&gt;
&lt;p&gt;でも「商品にする」のは、コードだけじゃ終わらない。法律、セキュリティ、値付け、ランディングページ。自分で判断しなきゃいけないことが山ほどある。AIは相談相手にはなるが、最終的に決めるのは自分だ。&lt;/p&gt;
&lt;p&gt;5年間、自分だけが使ってきたツールが、今日から他の誰かに使ってもらえるものになった。売れるかどうかはわからない。でもまあ、出さなきゃ始まらない。&lt;/p&gt;</description></item></channel></rss>