Open-Source Cold Email & Warmup Platform
Warmbly 是開源的冷郵件平台:溫暖您的收件箱、發送活動、並對每個回覆進行分流。可在我們的雲端運行或自行託管整個系統。
AI 翻譯
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗ReelSpy is a Next.js App Router application for tracking inspiration reels, scoring virality, and generating original scripts. Production: https://app.reelspy.dev (marketing site: https://reelspy.dev).
📚 Documentation lives in docs/ — start there for the business-logic rulebook (docs/BUSINESS-LOGIC.md), the full technical reference, and all setup runbooks.
.env.example to .env.local and fill all values.supabase/schema.sql in Supabase SQL Editor.
supabase/migrations/ instead (timestamped YYYYMMDDHHMMSS_name.sql — see supabase/migrations/README.md for the convention and the GitHub↔Supabase auto-deploy).lock_down_ig_tokens migration — it makes the stored Instagram token unreadable from browser clients (column-level grants) and restricts the rate-limiter RPCs to the server. The app already routes all token access through the service-role client, so applying it changes no behavior.META_APP_ID or META_IG_APP_ID, META_APP_SECRET, META_REDIRECT_URI).
META_IG_APP_ID.docs/google-supabase-setup.md.The reel transcript feature stores and displays the spoken transcript of a tracked reel.
The pipeline (app/api/reels/[reel_id]/transcript):
--dump-single-json --skip-download to read the reel's metadata and a
direct (short-lived) media URL — without downloading the video binary. The self-contained
yt-dlp_linux binary is fetched into bin/ at install time by scripts/fetch-ytdlp.mjs
and bundled into the function via outputFileTracingIncludes in next.config.ts.GROQ_API_KEY (Groq whisper-large-v3,
free tier, primary) or HF_API_TOKEN (Hugging Face, fallback).tracked_reels; only the transcript text is persisted
(the media file itself is not stored).Env keys (all optional — without them the UI shows a clean "transcript unavailable" state and never errors):
GROQ_API_KEY — required for transcripts to actually work (free tier available).HF_API_TOKEN — optional Whisper fallback.app_settings) and are rotated at runtime with
node scripts/update-ig-cookies.mjs <cookies.txt> (no redeploy). The session self-refreshes
and a daily health check alerts on failure — see docs/ig-cookies-runbook.md.
YTDLP_COOKIES_B64 remains only as a bootstrap fallback.profiles.is_admin: an admin passphrase,
enrolled out of band with npm run admin:passphrase -- invite --email [email protected]
and redeemed at /admin/setup. Without it /admin stays locked — see docs/admin-security.md.IG_HEALTHCHECK_REEL_URL / ADMIN_ALERT_EMAIL — cookie health check + fallback admin-alert recipient (alerts are configured in-product at Admin → Notifications; see docs/admin-notifications.md).YTDLP_BIN — optional path override for the yt-dlp binary.Set GROQ_API_KEY in .env.local locally and in the Vercel project's Production
environment variables.
npm install
npm run dev
Open http://localhost:3000/login.
npm run build
npm run check:auth-setup
This verifies local env keys required for Supabase + Google auth flow and confirms core database tables exist.
/dashboard/onboarding): connect Instagram, set your brand voice + niche, add inspiration accounts./dashboard/feed (default sort: out-performance vs each account's own baseline) and select a reel to generate a script./dashboard/scripts; explore niche-wide winners in /dashboard/trends.