qianshuixia/shrimpreel
Open-source template for "one photo → AI video that follows a viral template" SaaS sites, one site per trending keyword. Cloudflare Workers + D1/R2/KV/Queues, TanStack Start + Hono, Google sign-in, credit packs (Waffo/Dodo), fal.ai video generation, admin console.
ShrimpReel — 概要と仕組み
ShrimpReel は、1枚の写真をAI生成動画に変換し、バイラルトレンド(ダンスチャレンジなど)に沿ったSaaSウェブサイトを構築するためのオープンソーステンプレートです。アイデアは、すべてのトレンドキーワードに専用サイトを用意し、それぞれをこの同じテンプレートから構築するというものです。リポジトリをクローンし、設定、コピー、メディアを変更すれば、新しいサイトをすぐに立ち上げられます。
すべては Cloudflare のインフラストラクチャ上で動作します — Workers(サーバーレスコード)、D1(データベース)、R2(オブジェクトストレージ)、KV(キーバリューストア)、Queues、レート制限、Cronトリガー。つまり、スタック全体がCloudflareによって管理されるため、独自のサーバーは不要です。
中核コンセプト
- 1枚の写真 → AI動画:ユーザーが1枚の写真をアップロードすると、サイトは事前定義されたテンプレート(例:サンタの工房でエルフとして踊る)に従った短い動画を生成します。
- キーワードごとのサイト:各サイトは特定のバイラルキーワード(例:「クリスマスダンスAI」)をターゲットにします。このテンプレートから新しいリポジトリを作成し、キーワードを設定して公開します。
- 収益化:ユーザーは動画を生成するためにクレジット(一回限りのパックまたはサブスクリプション)を支払います。決済はサードパーティプロバイダー(Waffo Pancake、Dodo Payments、またはStripe)が処理します。
技術スタック(簡略化)
- フロントエンドとサーバーサイドレンダリング:TanStack Start (React 19) + Tailwind CSS 4。サイトはバイリンガル — 英語は
/、中国語は/zh。 - API:Hono(軽量ウェブフレームワーク)がすべての
/api/*ルート、メディア、sitemap、robots.txt などを処理します。 - 決済:デフォルトは Waffo Pancake(記録商人、つまり販売税を処理します)。Dodo Payments は代替手段です。Stripe もサポートされていますが、あなたが商人となり、税務を自分で処理する必要があります。ローカル開発では、
mockプロバイダーが決済をシミュレートします。 - 動画生成:デフォルトで fal.ai のキュー API を使用します。オプションの代替:yir.ai ルーターまたは NanoAPI。ローカルテストには
mockプロバイダーを使用します。
主な機能
ユーザーとクレジット
- Google サインイン(One Tap を含む)。
- クレジットパック(一回限りの購入)と月次/年次サブスクリプション。
- クレジット台帳がすべての取引を追跡します。
- ユーザーダッシュボード:動画の表示、請求、設定、コードの引き換え、招待リンク、アカウント削除、データエクスポート。
注文と生成
- クレジットを取り戻す全額および部分返金。
- デッドレターキュー(失敗したジョブ用)を備えた生成キュー。
- 生成が失敗した場合、クレジットは自動的に返還されます。
成長と分析
- ファーストタッチおよびラストタッチアトリビューション(UTMパラメータ、広告クリックID)。
- ファネル追跡:訪問 → サインアップ → チェックアウト → 支払い → 生成。
- 同意バナーの背後にあるGA4イベント。
- 動画の公開共有ページ(動画ごとにオプトイン、リンクプレビュー付き)。
管理パネル
- 概要ダッシュボード(プロバイダーコストと粗利益率を含む)。
- ユーザー、注文、生成、削除要求、問い合わせメッセージ、決済イベント、メール、監査ログ、レポート、引き換えコード、紹介リーダーボード、ランタイム設定、接続テストを管理。
- フィルターと検索を備えたユーザー、注文、生成の詳細ビュー。
メールと通知
- トランザクションメール:クレジット追加、動画準備完了、生成失敗、返金、削除要求の領収書。
- 管理者は新しい削除要求、期限リマインダー、問い合わせメッセージのアラートを受け取ります。
- Telegram、Feishu、Discord などを介した即時決済通知。
コンプライアンスと安全性
- 動画のAI生成ラベル。
- 写真は7日後に削除され、動画は30日後に削除されます。
- 削除要求は48時間キューで処理されます(同じソース写真から作成されたすべての動画を削除し、その写真をブロックします)。
- アップロードモデレーションと、問い合わせ/報告フォームのTurnstile(CAPTCHA)。
運用とセキュリティ
- メンテナンスモード、チェックアウト一時停止、決済プロバイダー切り替え、サイト全体のお知らせ、毎日の生成上限 — すべて再デプロイなしで管理画面から変更可能。
- ヘルスチェックアラートメール、毎日のD1バックアップをR2へ、ブラウザエラー報告をWorkers Logsへ。
- リクエストごとのnonceを使用したコンテンツセキュリティポリシー(CSP)、およびPermissions-Policy。
コンテンツとSEO
- セクション付きのワンページホーム:仕組み、とは、オプションの問題/DIYブロック。
- 拡張可能な記事コレクション(
/guidesハブ、関連記事)。 - 法的ページ、問い合わせフォーム。
- SSR canonical、hreflang、JSON-LD、sitemap。
- コピーはロケールごとにコード分割されます(ブラウザは現在の言語のみを読み込みます)。
npm run seo:checkはサイト全体のSEO問題をリントします。
ローカル開発
テンプレートをローカルで実行するには:
npm install
cp .dev.vars.example .dev.vars # 少なくとも SESSION_SECRET を設定
npm run seed:local # データベースマイグレーションを適用し、テンプレートメディアをローカルR2にアップロード
npm run dev -- --host 127.0.0.1 # http://127.0.0.1:3000
- npm 11.19 以降を使用してください。
- デフォルトでは、
PAYMENT_PROVIDER=mockとVIDEO_PROVIDER=mock— 実際の請求や生成はありません。 - 開発ログインは本番環境外で利用可能です(
POST /api/auth/dev-login)。 - メールはローカルでシミュレートされます。
GET /api/dev/emails?to=<email>&ref=<order or takedown id>で送信トレイを確認します。
新しいサイトの立ち上げ
README には詳細な8ステップのプロセスがあります。要点は次のとおりです:
- サイトリポジトリを作成 — テンプレートをクローンし、リモートを
upstreamに名前変更し、独自のoriginを追加します。 - スキャフォルダーを実行 —
node scripts/new-site.mjsがsite.ts、wrangler.jsonc、package.jsonをキーワード、ドメイン、その他の設定で更新します。 - コピーを書き換え —
src/content/en.tsとsrc/content/zh.tsを編集して新しいトレンドに合わせます。キーワードを置き換えるだけでは不十分です — Google はスケールされたコンテンツ乱用を罰します。 - メディアを置き換え — 独自のテンプレート動画、デモ動画、ロゴなどをアップロードします。
wrangler.jsoncで環境変数を設定(サイトURL、決済プロバイダー、管理者メールなど)。- 決済プロバイダーで製品を作成(クレジットパックとサブスクリプションプラン)。
- ローカルで検証 — 型チェック、テスト、e2e、SEOチェックを実行します。
- デプロイし、sitemapを検索エンジンに送信します。
ステップ2〜4とステップ7のローカル部分を自動化するClaude Codeスキル(new-hot-site)もあります。
テンプレート更新のマージ
各サイトはテンプレートを upstream として追跡する独立したリポジトリであるため、修正と新機能を取り込むことができます:
git fetch upstream
git merge --no-ff upstream/main
同期プランスクリプト(scripts/sync-plan.mjs)は競合の特定に役立ちます。サイト固有の変更は src/config/site.ts、src/content/*、public/*、seed/、wrangler.jsonc、package.json に保持し、その他はすべてテンプレートと同一に保ちます。
Cloudflare へのデプロイ
必要なCloudflareリソース(D1データベース、R2バケット、KV名前空間、Queues)をサイトごとに作成し、マイグレーションを実行してテンプレートメディアをアップロードする必要があります。READMEに正確なコマンドがあります。
ドキュメントとメモ
- リリースノート:
CHANGELOG.md - 機能計画:
docs/SAAS_VIDEO_FEATURES.md、ROADMAP.md - SEOルール:
docs/SEO_AUDIT.md - 環境変数:
docs/env.md - 決済プロバイダー設定:
docs/payments.md - サブスクリプション詳細:
docs/subscriptions.md - コード規約:
AGENTS.md
ほとんどのドキュメントファイルは中国語です。
ShrimpReel は、ユーザー認証から動画生成、決済、管理、SEOまで、すべてをCloudflareの無料枠に優しいスタックで処理する、完全で本番準備が整ったテンプレートです。新しいバイラルトレンドごとにクローンしてカスタマイズできるように設計されているため、新しいサイトを迅速に立ち上げられます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト