RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/AIモデル
AIモデル/2026-04-28上級

Rork で AI エージェントを SaaS 化する — サブスクリプション + API 課金 + アフィリエイトの三層収益化モデル

Rork で作った AI エージェントを SaaS として運用するための実装ノートです。Stripe と RevenueCat の二重課金源をどう突合するか、Webhook の冪等化、解約手前の自動リカバリまで、実運用で詰まった箇所を中心に整理しました。

Rork515AI-agent2SaaS3monetization11Stripe17RevenueCat28subscription10API-billingaffiliate

プレミアム記事

個人開発でアプリを公開してきて、いちばん神経を使うのは「お金が正しく動いているか」を保証する部分でした。機能を足すのは楽しいのですが、課金まわりは静かに壊れます。ある月、サブスクの解約をユーザーが行ったのに権限がしばらく残り続けていたことがありました。原因は Webhook の取りこぼしでした。

Rork でエージェントを組み立てるところまでは、本当にあっという間です。難しいのはその先、「動くものを、お金が絡んでも安心して回せるサービスにする」ところです。料金体系、請求エンジン、顧客管理、API キーのローテーション。どれも地味ですが、ここを雑に作ると後でユーザーの信頼を失います。

以下では、Rork で作ったエージェントを SaaS として運用するために私が実際に組んだ構成を、つまずいた箇所を中心に整理していきます。土台になるのは三層の収益化モデルです。

  1. サブスクリプション層 — 月額プラン(Free / Pro / Enterprise)
  2. API 課金層 — 使用量ベースの従量課金
  3. Affiliate 層 — パートナー企業による再販売

このモデルを実装すれば、カジュアルユーザー、中堅企業、大手企業まで、すべてをカバーできます。

エージェント SaaS のアーキテクチャ

Rork で作ったエージェントを SaaS にするには、以下の層が必要です。

┌─────────────────────────────────────────────┐
│         Rork Agent (バックエンド)            │
│   Claude / Gemini / Mixtral API 統合       │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│         API Gateway (Express / Hono)        │
│   認証・レート制限・使用量トラッキング         │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│     Billing Engine (Stripe + RevenueCat)    │
│   サブスク・従量課金・支払い処理              │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│    Customer Dashboard (Next.js + Vercel)    │
│   利用状況・請求履歴・API キー管理           │
└─────────────────────────────────────────────┘

Step 1: Rork エージェントの API 化

最初に、Rork で構築したエージェントをプログラマティックに呼び出せるようにします。

Rork の SDK を使い、こんなコードで実装します。

// lib/rork-agent.ts
import { RorkClient } from '@rork/sdk';
 
const client = new RorkClient({
  apiKey: process.env.RORK_API_KEY,
  agentId: 'my-saas-agent',
});
 
export async function callAgent(input: string) {
  const response = await client.chat.completions.create({
    messages: [{ role: 'user', content: input }],
    maxTokens: 2000,
  });
 
  return {
    text: response.choices[0].message.content,
    tokensUsed: response.usage.total_tokens,
    costUsd: calculateCost(response.usage),
  };
}
 
function calculateCost(usage: TokenUsage): number {
  // 入力: $0.003 / 1K tokens, 出力: $0.015 / 1K tokens
  const inputCost = (usage.prompt_tokens / 1000) * 0.003;
  const outputCost = (usage.completion_tokens / 1000) * 0.015;
  return inputCost + outputCost;
}

このエージェントをわかりやすい REST API でラップします。

// app/api/agent/chat/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { callAgent } from '@/lib/rork-agent';
import { trackUsage } from '@/lib/billing';
 
export async function POST(req: NextRequest) {
  const authHeader = req.headers.get('Authorization');
  const apiKey = authHeader?.replace('Bearer ', '');
 
  if (!apiKey) {
    return NextResponse.json(
      { error: 'Missing API key' },
      { status: 401 }
    );
  }
 
  // API キーから顧客を検索
  const customer = await findCustomerByApiKey(apiKey);
  if (!customer) {
    return NextResponse.json(
      { error: 'Invalid API key' },
      { status: 401 }
    );
  }
 
  // レート制限チェック
  const remainingRequests = await checkRateLimit(customer.id);
  if (remainingRequests <= 0) {
    return NextResponse.json(
      { error: 'Rate limit exceeded' },
      { status: 429 }
    );
  }
 
  const { message } = await req.json();
 
  try {
    const result = await callAgent(message);
 
    // 使用量をトラッキング
    await trackUsage({
      customerId: customer.id,
      tokensUsed: result.tokensUsed,
      costUsd: result.costUsd,
      timestamp: new Date(),
    });
 
    return NextResponse.json({
      response: result.text,
      tokens_used: result.tokensUsed,
      cost_usd: result.costUsd,
    });
  } catch (error: any) {
    return NextResponse.json(
      { error: error.message },
      { status: 500 }
    );
  }
}

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Stripe と RevenueCat という2つの課金源を、サーバー側でどう1つのエンタイトルメントに突合するかの設計
Webhook を冪等にして二重課金・権限の取りこぼしを防ぐ実装パターン
支払い失敗から解約までの猶予期間を自動制御し、Win-back につなげる運用フロー
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

AI モデル2026-05-06
Rork で占いアプリを作るときにぶつかる7つの壁と、その乗り越え方
タロット・オラクルカード型の日替わり占いアプリをRorkで作る実践ガイド。カードデータ設計からAI解釈文生成、毎日1回制限の実装、AppStore審査の落とし穴まで詳しく解説します。
開発ツール2026-04-08
Rorkアプリ内課金(IAP)設定エラーの原因と解決方法【StoreKit・RevenueCat対応】
Rorkアプリでアプリ内課金(IAP)が動かない・テストできないエラーの原因と解決方法を徹底解説。StoreKit設定ミス・RevenueCatのAPI Key問題・Sandboxテスト失敗など12パターンのトラブルに対応。
開発ツール2026-04-01
RorkでB2B SaaSアプリを構築する — マルチテナント設計・RBAC・Stripe組織課金の実装
RorkでB2B SaaSアプリを構築するための完全ガイド。マルチテナントアーキテクチャ、ロールベースアクセス制御(RBAC)、組織ごとのStripe課金、招待フローを実装する方法を詳細コード付きで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →