new-term-radar
Daily radar for new AI terms: names of new models, products and repos, caught on X, Hugging Face, GitHub and sitemaps before keyword tools list them.
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.
MarketingTypeScript · JavaScriptGitHub @aresjinwoo94-cpuOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
AI-powered ecommerce CRO audit SaaS — Next.js 15, Supabase, Gemini, Stripe
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.