new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
Shopify 스토어 페이지를 AI가 분석해 유료 트래픽 비용 손실 요인을 순위별로 표시
A free AI analyzer for your Shopify store: an annotated audit of your store page, ranked by what's costing you sales on paid traffic.
마케팅TypeScript · JavaScriptGitHub @aresjinwoo94-cpu온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기AI-powered ecommerce CRO audit SaaS — Next.js 15, Supabase, Gemini, Stripe
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Copy what's actually converting. AI-powered audit, curated library of winning ecommerce stores, and a Meta-Ads-grade conversion analyzer that thinks like a senior media buyer.
A production-ready Next.js 15 SaaS built with Claude (Anthropic), Stripe, Supabase, and Inngest.README 전문 보기 ↗Copy what's actually converting. AI-powered audit, curated library of winning ecommerce stores, and a Meta-Ads-grade conversion analyzer that thinks like a senior media buyer.
A production-ready Next.js 15 SaaS built with Claude (Anthropic), Stripe, Supabase, and Inngest.
| Layer | Tool |
|---|---|
| Framework | Next.js 16 (App Router, Server Components, Server Actions) |
| Styling | Tailwind CSS + custom design tokens + Framer Motion |
| UI | shadcn/ui (custom-tuned) + Radix primitives |
| Auth | Supabase Auth (email + Google OAuth) |
| Database | Supabase Postgres + pgvector + RLS |
| AI | Provider-agnostic — Gemini (default) or Claude. Vision, structured JSON, tool calling. |
| Async jobs | Inngest (retries + automatic credit refunds) |
| Payments | Stripe — Checkout, Webhooks, Customer Portal |
| Deploy | Vercel |
npm install
cp .env.example .env.local
.env.local.supabase/migrations/0001_init.sql and run.supabase/seed.sql to populate the Library with 12 showcase sites.http://localhost:3000/auth/callback to "Redirect URLs".STRIPE_SECRET_KEY and NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY into .env.local.npm run stripe:seed
Paste the printed price IDs into .env.local.npm run stripe:listen
Copy the whsec_… it prints into STRIPE_WEBHOOK_SECRET.ANTHROPIC_API_KEY in .env.local. Optionally override ANTHROPIC_MODEL (default: claude-opus-4-7).The Analyzer queues long-running jobs via Inngest. For local dev, run the dev server:
npm run inngest:dev
Open the UI at http://localhost:8288.
For production, create a free account at inngest.com, grab your event key + signing key, and put them in .env.local.
The Analyzer captures the user's URL as a screenshot. By default it uses the free WordPress mshots fallback (lower fidelity, sometimes shows "generating" placeholder). For production-grade screenshots, sign up at screenshotone.com and set SCREENSHOTONE_ACCESS_KEY.
npm run dev
Open http://localhost:3000. Sign up → run your first analysis → upgrade with the Stripe test card 4242 4242 4242 4242.
elitevault/
├── app/
│ ├── (auth)/ ← Auth shell (sign-in, sign-up, callback)
│ ├── (app)/app/ ← Authenticated dashboard
│ │ ├── analyzer/[id]/ ← Analysis detail view
│ │ ├── library/ ← Winning sites + search
│ │ ├── billing/ ← Plan + Customer Portal
│ │ └── settings/
│ ├── api/
│ │ ├── stripe/ ← checkout, portal, webhook
│ │ ├── analyses/[id]/ ← analyzer polling endpoint
│ │ ├── meta-simulations/[id]/ ← scenario modeler polling endpoint
│ │ ├── v1/ ← Scale-plan REST API (bearer tokens)
│ │ └── inngest/ ← Inngest function handler
│ ├── actions/ ← Server actions
│ ├── pricing/ ← Public pricing page
│ ├── layout.tsx + page.tsx ← Root + landing
│ ├── globals.css
│ ├── not-found.tsx
│ └── error.tsx
├── ai/
│ ├── agents/ ← Analyzer, Rewrite, Search agents
│ ├── prompts.ts ← System prompts
│ ├── schemas.ts ← Zod + tool input_schema
│ └── anthropic.ts ← SDK client
├── components/
│ ├── ui/ ← shadcn primitives
│ ├── marketing/ ← Landing page sections
│ ├── auth/
│ ├── dashboard/ ← Sidebar, topbar, command menu
│ ├── analyzer/ ← Star feature components
│ ├── library/
│ ├── billing/
│ ├── settings/
│ └── brand/ ← Logo
├── inngest/
│ ├── client.ts
│ └── functions/
│ ├── analyze-website.ts
│ └── run-meta-simulation.ts
├── lib/
│ ├── supabase/ ← server, client, middleware, types
│ ├── stripe/ ← client + plan catalog
│ ├── screenshot.ts
│ ├── fonts.ts
│ └── utils.ts
├── supabase/
│ ├── migrations/ ← 0001 init → 0005 meta_simulations
│ └── seed.sql
├── scripts/seed-stripe.ts
├── middleware.ts
├── next.config.ts
├── tailwind.config.ts
└── package.json
auth.uid().stripe_events table with UNIQUE on event.id makes double-deliveries no-ops.SUPABASE_SERVICE_ROLE_KEY never reaches the browser.This isn't an "AI wrapper". The integration is structural:
ai/provider.ts exposes a generateStructured interface implemented by both Gemini and Anthropic adapters. Switch with AI_PROVIDER=gemini|anthropic. Same agents, two backends.{x, y, width, height} in 0..1 space — we render the SVG overlay deterministically. The model doesn't "draw"; we do, from its measurements. A defensive normalizeCoords() rescales if the model ever returns pixels.fast: true).onFailure.User clicks "Upgrade to Pro"
→ POST /api/stripe/checkout (creates session)
→ Stripe Checkout (hosted)
→ Stripe redirects to /app/billing?checkout=success
→ Stripe webhook → POST /api/stripe/webhook
→ dedup by event.id (UNIQUE constraint)
→ upsert subscription
→ grant monthly credits on invoice.payment_succeeded
→ set profile.plan = pro|scale
vercel
Add all .env.local keys to Vercel project settings. Set the Stripe webhook endpoint to:
https://your-domain.com/api/stripe/webhook
and the Supabase OAuth redirect to:
https://your-domain.com/auth/callback
For Inngest production, set the Inngest endpoint to https://your-domain.com/api/inngest and configure event/signing keys.
community_analyses as immutable snapshots
(denormalized — the source row stays private).analyses.meta_ads, rendered in the analyzer left column.POST /api/v1/analyses and GET /api/v1/analyses/[id].ev_live_…)./app/settings/api-keys.Run npm run library:expand -- "<niche>" -n 10 to ask Claude/Gemini to
discover candidate stores in a niche and upsert them into winning_sites
with estimated Ad Activity signals (marked estimated: true in UI).
The headline feature for Scale plan. Given a completed audit + the user's AOV + daily budget, the modeler returns a 7-day, 3-scenario Meta Ads projection — conservative, balanced, aggressive — with day-by-day spend, impressions, CTR, CPC, CPM, ROAS, CPA, sales, and risk callouts.
We deliberately avoid the word simulator in user-facing copy. These are AI estimates calibrated on the audit score and niche benchmarks, not financial predictions. The agent enforces hard plausibility bounds (ROAS ≤ 6x, CTR ≤ 8%, math consistency between spend/purchases/revenue) and every output ships with a "not a prediction" disclaimer.
failed.meta_simulations row.Tables: meta_simulations (migration 0005). Polling: GET /api/meta-simulations/[id]. Server action: triggerSimulation in app/actions/meta-simulator.ts.
MIT — go build something great.