取り組みの背景: なぜ「90日」なのか
個人開発者にとって、アイデアを収益化するまでの道のりは長く感じられます。しかし現実には、多くのSaaSプロダクトが初収益を得るまでに1年以上かかっている理由の大半は「実装の遅さ」ではなく、「方向性の迷い」と「完璧主義」にあります。
Antigravityを活用することで、実装速度は従来比で3〜5倍に向上します。かつて3週間かかっていた認証基盤が3日で、Stripe決済統合が1日で完成する時代です。しかし、速く作れるようになった分だけ、「何を作るべきか」という判断の重要性が増しています。
単なる技術チュートリアルではなく、ビジネス判断と技術実装の両輪を回す実践的な内容です。
Phase 1: アイデア検証フェーズ(Day 1〜14)
Day 1〜3: 問題の言語化とターゲット設定
最初の3日間は、コードを1行も書いてはいけません。この段階での最重要タスクは**「解くべき問題を正確に定義すること」**です。
Antigravityのチャット機能をリサーチパートナーとして活用しましょう。以下のプロンプトが有効です。
あなたは経験豊富なプロダクトマネージャーです。
私は[業界/職種]の人々が抱える[問題]を解決するSaaSを作ろうとしています。
以下の質問に答えてください:
1. この問題が本当に存在するかを検証する方法を5つ挙げてください
2. 競合サービスとその弱点を3つ分析してください
3. このSaaSの初期ターゲット(最初の10人の顧客像)を具体的に描いてください
Antigravityが提示するリサーチフレームワークをもとに、Reddit、Twitter/X、Discord、Slackコミュニティでの声を収集します。この段階で「お金を払ってでも解決したい」と言う人が10人見つかれば、十分なシグナルです。
Day 4〜7: 競合分析とユニークポジションの確立
Antigravityを使って競合サービスの機能一覧を整理します。
以下の競合サービス[A, B, C]の機能を比較分析し、
私のターゲットユーザーにとって最も不満を感じている部分と、
私が勝てる可能性のあるポジションを特定してください。
ターゲット: [具体的なターゲット像]
重要なのは「全機能で勝る」ことではなく、特定の課題において明確に優れること です。Notion対抗のSaaSを作っても勝てませんが、「建設会社の現場監督が使う工事日報管理ツール」なら充分戦えます。
Day 8〜14: MVPスコープの確定とプロトタイプ
この段階でAntigravityが真価を発揮します。Figmaのデザインがなくても、テキストベースの仕様からAntigravityが動くプロトタイプを生成できます。
以下の要件でNext.jsのプロトタイプを作成してください:
- ユーザーが[タスク]を登録できる画面
- 登録したタスクの一覧が表示される画面
- shadcn/uiを使用すること
- データはlocalStorageに保存すること(バックエンドは後で実装)
このプロトタイプをターゲットユーザー5〜10人に見せ、フィードバックを収集します。「使いたいですか?」ではなく「いくらなら払いますか?」と聞くのが重要です。
Phase 2: 技術基盤構築フェーズ(Day 15〜30)
技術スタック選定の考え方
MVPの技術スタックは「最高の技術」ではなく「最速でデプロイできる技術」を選ぶべきです。以下が2026年時点でのAntigravity相性最良スタックです。
フロントエンド + バックエンド(フルスタック)
Next.js 15(App Router)+ TypeScript
shadcn/ui + Tailwind CSS v4
Cloudflare Pages + Workers(エッジデプロイ)
データベース + 認証
Supabase(PostgreSQL + Auth + Realtime + Storage)または Neon
Clerk(認証、特にSaaS向け機能が充実)
決済
Stripe(月額サブスクリプション + ワンタイム対応)
このスタックをAntigravityのプロジェクトコンテキストに設定しておくと、すべての実装提案がこの技術前提で行われます。
Day 15〜17: プロジェクト初期設定
# Antigravityのターミナルで実行
npx create-next-app@latest my-saas --typescript --tailwind --app
cd my-saas
npx shadcn@latest init
プロジェクト作成後、Antigravityに以下のAGENTS.mdの作成を依頼します。
# AGENTS.md
## プロジェクト概要
[ SaaSの名前 ]は[ ターゲット ]向けの[ 問題解決 ]サービスです。
## 技術スタック
- Next.js 15 App Router + TypeScript
- Supabase(DB + Auth)
- Stripe(課金)
- Cloudflare Pages(デプロイ)
- shadcn/ui + Tailwind CSS
## コーディング規約
- コンポーネントはsrc/components/に配置
- APIルートはsrc/app/api/に配置
- 型定義はsrc/types/に集約
- Server Actionsを優先してAPIルートを最小限に
## 重要なビジネスロジック
- サブスクリプションプラン: Free(3プロジェクト)/ Pro(¥980/月・無制限)
- ユーザー認証はClerk経由
このAGENTS.mdがあることで、Antigravityは常にプロジェクトの文脈を理解した提案を行います。
Day 18〜22: 認証基盤の実装
Supabaseの認証をAntigravityで実装する場合、以下のプロンプトが効果的です。
Supabase Auth + Next.js 15 App RouterでGoogle/GitHubソーシャルログインを
実装してください。要件:
- ミドルウェアでルート保護
- ダッシュボードは認証必須
- ランディングページは認証不要
- ログイン/ログアウト後のリダイレクト処理
- TypeScript strict モード対応
Antigravityが生成するコードは、SupabaseのSSR向けクライアント設定から、ミドルウェアの実装まで含む完全なものになります。
Day 23〜30: データモデル設計とCRUD実装
-- Antigravityに依頼するデータモデル設計のプロンプト例
-- 「以下のユーザーストーリーに基づいて、
-- Supabase(PostgreSQL)のテーブル設計をSQLで作成してください」
create table public .projects (
id uuid default gen_random_uuid() primary key ,
user_id uuid references auth . users not null ,
name text not null ,
description text ,
status text default 'active' ,
created_at timestamptz default now (),
updated_at timestamptz default now ()
);
-- Row Level Security (RLS)
alter table public . projects enable row level security ;
create policy "Users can only access their own projects"
on public . projects for all
using ( auth . uid () = user_id);
RLSの設定はAntigravityが自動生成しますが、必ずビジネスロジックとの整合性を確認すること が重要です。
Phase 3: コア機能実装フェーズ(Day 31〜60)
Antigravityによるコア機能の高速実装
このフェーズが最もAntigravityの力が活きる期間です。以下の方針で実装を進めます。
方針1: 一度に1機能を完成させる
複数の機能を並行して作ると、Antigravityのコンテキストが分散します。「今日はダッシュボードの一覧表示を完璧に仕上げる」という集中が効果的です。
方針2: Antigravityに実装計画を先に立てさせる
[機能名]を実装します。実装を始める前に:
1. 影響するファイル一覧
2. 実装ステップ(順序付き)
3. 考慮すべきエッジケース
4. テスト方針
を先に提示してください。確認後に実装を開始します。
この「計画先行」アプローチにより、手戻りを90%削減できます。
方針3: エラーが出たら即座にAntigravityに貼り付ける
エラーメッセージをそのままAntigravityのチャットに貼ると、原因分析と修正案を即座に提示します。「なぜこのエラーが発生したか」の説明も得られるため、スキルアップも同時に行えます。
実装すべきコア機能の優先順位
MUST(MVP必須):
ユーザー認証・プロフィール
コアとなるデータ作成・閲覧・編集・削除(CRUD)
基本的なダッシュボード
Stripeサブスクリプション(次フェーズ)
SHOULD(初回リリースに含めたい):
メール通知
データのエクスポート
簡易レポート・統計表示
NICE TO HAVE(v2以降):
チームコラボレーション
API連携
高度な分析機能
MVPの失敗の多くは「NICE TO HAVEをMUSTと勘違いして開発が遅れる」ことです。Antigravityが速く作れる分だけ、この誘惑は強まります。スコープを守ることが最重要の規律 です。
Day 45〜55: UIポリッシュとレスポンシブ対応
Antigravityを使ったUIの改善では、スクリーンショットとコードを同時に貼り付けての指示が効果的です(マルチモーダル機能)。
このスクリーンショット[貼り付け]のUIを改善してください。
問題点:
- モバイルでテーブルが見切れる
- ダークモード時のコントラストが低い
- ローディング状態の表示がない
shadcn/uiのコンポーネントを活用してください。
Phase 4: Stripe課金実装フェーズ(Day 56〜70)
Stripe統合の全体設計
課金実装は多くの個人開発者が躊躇する部分ですが、Antigravityがあれば恐れることはありません。以下の設計でAntigravityに実装を依頼します。
Next.js 15 + Stripe + Supabaseで以下の課金フローを実装してください:
- Stripeサブスクリプション(月額プラン)
- チェックアウトセッション作成(/api/checkout)
- Webhook処理(/api/webhooks/stripe)でサブスクリプション状態をSupabaseに保存
- ユーザーのサブスクリプション状態に基づいた機能制限
- カスタマーポータル(プラン変更・解約)
TypeScript + Stripe SDK v16を使用
重要な実装ポイント
// src/app/api/webhooks/stripe/route.ts
import { stripe } from '@/lib/stripe' ;
import { createClient } from '@/lib/supabase/server' ;
import { headers } from 'next/headers' ;
export async function POST ( req : Request ) {
const body = await req. text ();
const headersList = await headers ();
const signature = headersList. get ( 'stripe-webhook-secret' ) ?? '' ;
let event;
try {
event = stripe.webhooks. constructEvent (
body,
signature,
process.env. STRIPE_WEBHOOK_SECRET !
);
} catch (err) {
return new Response ( `Webhook Error: ${ err }` , { status: 400 });
}
const supabase = await createClient ();
switch (event.type) {
case 'customer.subscription.created' :
case 'customer.subscription.updated' : {
const subscription = event.data.object;
// サブスクリプション状態をSupabaseに同期
await supabase
. from ( 'subscriptions' )
. upsert ({
stripe_subscription_id: subscription.id,
stripe_customer_id: subscription.customer as string ,
status: subscription.status,
price_id: subscription.items.data[ 0 ].price.id,
current_period_end: new Date (subscription.current_period_end * 1000 ). toISOString (),
});
break ;
}
case 'customer.subscription.deleted' : {
const subscription = event.data.object;
await supabase
. from ( 'subscriptions' )
. update ({ status: 'canceled' })
. eq ( 'stripe_subscription_id' , subscription.id);
break ;
}
}
return new Response ( null , { status: 200 });
}
Webhookの実装はAntigravityが生成しますが、ローカルでのWebhookテストは必ずStripe CLIで行う ことを徹底します。
# Stripe CLIのインストールとローカルWebhookテスト
brew install stripe/stripe-cli/stripe
stripe login
stripe listen --forward-to localhost:3000/api/webhooks/stripe
プライシング戦略
個人開発SaaSの課金設計で重要なのは、フリープランを「使いたくなるが物足りない」設計にすること です。
Free : コア機能を制限付きで利用可(プロジェクト3件、エクスポート不可)
Pro ¥980/月 : 制限解除、優先サポート、高度な分析機能
Team ¥2,980/月 : 複数人コラボ、チームダッシュボード
AntigravityでのFeature Flag実装により、プランに応じた機能制御を一元管理します。
Phase 5: ベータリリースと初収益フェーズ(Day 71〜90)
ランディングページの作成
Antigravityで高品質なランディングページを迅速に作成できます。
以下の情報をもとに、Next.js + Tailwind CSS + shadcn/uiで
転換率の高いランディングページを作成してください:
- プロダクト名: [名前]
- ターゲット: [具体的な職種/業界]
- 解決する問題: [問題の説明]
- 主要機能3つ: [機能A], [機能B], [機能C]
- 料金プラン: Free / Pro ¥980/月
構成: Hero→問題提起→解決策→機能説明→料金→FAQ→CTA
Cloudflare Pagesへのデプロイ
本番環境はCloudflare Pagesへのデプロイガイドを参照してください。Next.js + Cloudflare Workers環境での設定を詳しく解説しています。
初期ユーザー獲得戦略
Antigravityを活用したコンテンツマーケティングが効果的です。
1. Product Huntローンチ
AntigravityでProduct Huntの投稿文・コメント返信テンプレートを事前に作成します。
2. ニッチコミュニティへの参加
ターゲットユーザーが集まるSlack/Discord/Redditコミュニティに価値ある情報提供者として参加し、プロダクトを自然に紹介します。
3. コールドアウトリーチ
Antigravityで個人化されたアウトリーチメールを大量生成します。テンプレートではなく、相手のサービス・課題に合わせた内容にすることがポイントです。
4. SEOコンテンツ
Antigravityで「[業界] + [問題] + 解決方法」という検索意図のコンテンツを定期的に発行します。初期は月4〜8本のペースで始め、効果のあるキーワードに絞ります。
Day 80〜90: フィードバックループと改善
初期ユーザーからのフィードバックを収集・分析する際もAntigravityが役立ちます。
以下のユーザーフィードバック[貼り付け]を分析してください:
1. 最も頻繁に言及されている問題TOP3
2. ユーザーが最も価値を感じている機能
3. 次のスプリントで対応すべき改善優先順位
4. チャーンリスクのあるフィードバックの特定
Antigravityが提示する分析をもとに、次の2週間のスプリントを設計します。
よくある失敗パターンとAntigravityによる回避策
失敗1: スコープクリープ(機能追加の誘惑)
Antigravityが速く実装できるからこそ、「ついでにこれも」という誘惑が生まれます。対策として、未実装機能は必ずGitHub Issuesに記録し、Antigravityに「今のスプリントスコープ外」と明示したうえで会話を続けます。
失敗2: 完璧なコードを求めすぎる
Antigravityのコードレビューを求め続けてリリースが遅れるパターンです。MVPのコードは「動けば良い」段階があります。セキュリティクリティカルな部分(認証・課金)以外は、まず動かしてユーザーの反応を見ることを優先します。
失敗3: Antigravityの提案を無批判に受け入れる
Antigravityが生成するコードは優れていますが、ビジネスロジックの整合性やセキュリティ要件はあなた自身が責任を持って確認する必要があります。特にRLS設定、APIキーの管理、Webhookの検証ロジックは必ず手動でレビューします。
失敗4: 一人で抱え込む
Antigravityがいれば技術的な壁は大幅に低くなりましたが、孤独な開発は継続性のリスクです。Xやnoteでの発信、インディーハッカーコミュニティへの参加で、モチベーションを維持するコミュニティを作りましょう。
90日後に期待できる成果
適切に実行した場合の90日後の状態:
プロダクト : 主要機能が動作するMVPがCloudflare Pages上で稼働中
ユーザー : ベータユーザー20〜50人、フリープランユーザー100人以上
収益 : 有料転換率5〜10%なら月額5,000〜50,000円の初収益
学習 : 市場フィードバックに基づいた次の3ヶ月の明確なロードマップ
初収益は小さくて構いません。重要なのは「お金を払ってくれる顧客が存在する」ことが証明されたことです。
収益化の自動化についてはAIを活用した収益化の完全プレイブック で詳しく解説しています。また、サブスクリプション管理の高度な最適化はSupabase完全本番ガイド も参考になります。
まとめ
Antigravityを活用したSaaS MVP開発の90日ロードマップを振り返ると:
Day 1〜14(検証フェーズ) : 問題定義・競合分析・プロトタイプで市場検証
Day 15〜30(基盤フェーズ) : 技術スタック選定・認証・データモデル実装
Day 31〜60(実装フェーズ) : コア機能の高速開発・UIポリッシュ
Day 56〜70(課金フェーズ) : Stripe統合・プライシング設計
Day 71〜90(リリースフェーズ) : ランディングページ・ユーザー獲得・改善
重要なのは、Antigravityは「実装速度」を劇的に向上させてくれますが、「何を作るか」「誰のために作るか」という判断は、依然としてあなたの洞察力が必要です。
Antigravityの能力と、あなたのビジネスセンスを組み合わせることで、かつては大チームが必要ですったSaaS開発が、個人でも現実的な目標になりましました。最初の一歩を踏み出すことが最も重要です。
個人開発