The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the AdLibrarySpy listing page.
100% free Shopify store and Meta ads intelligence, built for the community.
Find the stores that are winning, see the ads they run, and track your competitors. Every number comes from a real measurement with its source attached. Nothing is estimated.
Open the app → · Run it yourself · Use it from Claude or ChatGPT · This week's breakouts
AdLibrarySpy indexes 14.7M online stores, 3.9M of them on Shopify (as of September 2026), and the Meta ads they run. It shows you which stores are growing, what they sell and how they advertise. Traffic figures come from SimilarWeb's measurement of each store's exact domain, labelled with the month they cover. Ad data comes from the Meta Ad Library.
It's free: there are no plans, no credit limits and no checkout. It's also open source under MIT, and this repository is the code that runs adlibraryspy.com.
/store/{domain}), a store directory by niche, country and
tech, and /trendingA built-in MCP server (OAuth 2.1) lets Claude, ChatGPT and other assistants search shops and ads,
open dossiers and manage your brandtracker with your workspace's access. In Claude, go to Settings →
Connectors → Add custom connector and paste https://adlibraryspy.com/api/mcp.
Any other agent: paste "Read https://adlibraryspy.com/SKILL.md and follow it to research my competitors' Shopify stores and Meta ads."
All clients and tools →
feedback table and emailed to FEEDBACK_EMAIL, with Reply-To set to the sender (10 messages an hour per user; FAIR_USE.feedback). Rate limits for agents: /SKILL.md0, a dash or a guess.The full rules are in docs/data-honesty.md.
Updated every week by a GitHub Action from the public weekly report.
Week 39, 2026 · updated 2026-09-25 · full week · all weeks
Stores adding the most ads in the Meta Ad Library, with measured traffic behind them. Source: Change in running ads in the Meta Ad Library, AdLibrarySpy index (Sep 2026 snapshot). Traffic: SimilarWeb, Aug 2026.
| # | Store | Niche | Change | Measured | |
|---|---|---|---|---|---|
| 1 | SM Appliance | Home & Garden | 🇵🇭 | +251 ads | 344 ads running in the Meta Ad Library (+69%) · 309K visits in Aug 2026 (SimilarWeb) |
| 2 | Power Crunch | Health | 🇺🇸 | +115 ads | 114 ads running in the Meta Ad Library · 33K visits in Aug 2026 (SimilarWeb) |
| 3 | Roosty's | Food & Drink | 🇺🇸 | +78 ads | 99 ads running in the Meta Ad Library (+49%) · 110K visits in Aug 2026 (SimilarWeb) |
| 4 | Official EA Site | Games | 🇺🇸 | +68 ads | 137 ads running in the Meta Ad Library · 77M visits in Aug 2026 (SimilarWeb) |
| 5 | AntiSocialSocialClub | Apparel | 🇺🇸 | +68 ads | 154 ads running in the Meta Ad Library (+425%) · 183K visits in Aug 2026 (SimilarWeb) |
| 6 | Official Sun Bum® Website | Beauty & Fitness | 🇺🇸 | +66 ads | 253 ads running in the Meta Ad Library · 201K visits in Aug 2026 (SimilarWeb) |
| 7 | Kardia | Health | +61 ads | 151 ads running in the Meta Ad Library (+203%) · 172K visits in Aug 2026 (SimilarWeb) | |
| 8 | MeUndies® | Apparel | 🇺🇸 | +60 ads | 541 ads running in the Meta Ad Library (+35%) · 1.8M visits in Aug 2026 (SimilarWeb) |
| 9 | SYLVOX | Consumer Electronics | 🇺🇸 | +57 ads | 109 ads running in the Meta Ad Library (+172%) · 185K visits in Aug 2026 (SimilarWeb) |
| 10 | LSKD | Apparel | 🇦🇺 | +44 ads | 69 ads running in the Meta Ad Library (+733%) · 2M visits in Aug 2026 (SimilarWeb) |
Largest month-over-month jump in measured visits, among stores that already had 20K+ visits. Source: SimilarWeb measured visits, Jul 2026 → Aug 2026.
| # | Store | Niche | Change | Measured | |
|---|---|---|---|---|---|
| 1 | StancedCo | Apparel | 🇺🇸 | +1,522% | 29K → 474K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 2 | Starlite | Computers | 🇬🇭 | +1,519% | 85K → 1.4M visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 3 | Starlink Online | Computers | 🇶🇦 | +1,503% | 55K → 883K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 4 | Absolute Eclipse | Apparel | 🇱🇻 | +1,475% | 77K → 1.2M visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 5 | CompuGhana | Home & Garden | 🇬🇭 | +1,410% | 85K → 1.3M visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 6 | Solar Eclipse Eyewear | Health | 🇺🇸 | +1,399% | 52K → 784K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 7 | Deli Hemp | Food & Drink | 🇫🇷 | +1,204% | 29K → 373K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 8 | Primal Storm | Health | 🇺🇸 | +1,014% | 59K → 659K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 9 | Dogshood | Pets & Animals | 🇩🇪 | +981% | 36K → 385K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
| 10 | RADER SHOP | Food & Drink | 🇯🇵 | +967% | 22K → 236K visits, Jul 2026 → Aug 2026 (SimilarWeb) |
SMTP is required because every sign-in is a link sent by email. A local mail catcher such as Mailpit works
(SMTP_HOST=localhost, SMTP_PORT=1025).
Where the data comes from: accounts, workspaces, the brandtracker, saves, API keys, OAuth and the public
pages all run on your own Postgres. Store and ad data come from the AdLibrarySpy market index, a hosted
service this app is a client of. Its shop endpoints are public, so a local instance shows stores out of the
box. Ad creatives need a service account (PLATFORM_JWT_SECRET, MARKET_SERVICE_ACCOUNT_ID). Without one,
the ads screens stay empty rather than inventing anything. To run your own instance against the full index,
open an issue.
All variables are listed, with placeholders, in .env.example.
| Variable | Required | Effect when unset |
|---|---|---|
DATABASE_URL | yes | App cannot start; /api/health returns 503 |
PGSSL | no | TLS on; set off for a local Postgres without TLS |
PG_POOL_MAX | no | Defaults to 10 connections |
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM_EMAIL, SMTP_FROM_NAME | yes | Sign-in is an emailed code + magic link: nobody can sign in, and invites cannot send |
FEEDBACK_EMAIL | no | Where in-app feedback is emailed (defaults to the maintainers). Every message is also kept in the feedback table |
GOOGLE_CLIENT_ID | no | OAuth "Web application" client id (Authorized JavaScript origins = your APP_BASE_URL). Set = Sign in with Google + One Tap on /login and /signup; unset = email link only |
APP_BASE_URL | yes in production | Links in mail and OAuth metadata point at http://localhost:4311 |
SESSION_SECRET | yes | At least 16 characters; keys the emailed sign-in codes (stored as an HMAC) and signs unsubscribe links. Without it email sign-in cannot issue a code |
MARKET_API_BASE | no | Defaults to the public index, https://api.platformdtc.com/api/v1 |
MARKET_TIMEOUT_MS | no | Defaults to 12000 |
PLATFORM_JWT_SECRET, MARKET_SERVICE_ACCOUNT_ID, MARKET_SERVICE_EMAIL | for ad creatives and MCP | Service account issued by the index operator; without it ad creatives return empty (shops still work) |
CLICKHOUSE_URL, CLICKHOUSE_USER, CLICKHOUSE_PASSWORD | no | Funnel events are not recorded |
TRAFFIC_PROVIDER + SIMILARWEB_API_KEY / SEMRUSH_API_KEY, TRAFFIC_CACHE_DAYS | no | Traffic comes only from the index's SimilarWeb crawl (see architecture) |
NEXT_PUBLIC_CHROME_EXTENSION_URL | no | The homepage shows no extension link |
APP_VERSION | no | /api/health reports dev |
WEEKLY_MAIL_PER_SEC | no | Weekly report sends 4 emails per second |
ALERTS_SEND_GAP_MS | no | Alerts digest waits 3000 ms between emails (steady warm-up traffic) |
Next.js 15 (App Router, server actions) · React 19 · TypeScript · Tailwind · Radix UI and shadcn/ui ·
TanStack Query · PostgreSQL · ClickHouse (optional funnel analytics) · Cloudflare edge cache.
Multi-tenancy is enforced in lib/auth/guard.ts: a workspace_id always comes from the session, never
from the request. See docs/architecture.md for the layout, the traffic model,
the AI labels and the MCP server.
extension/ | The Chrome extension (Manifest V3, activeTab only, nothing runs in the background). |
packages/shopify-inspect | npx shopify-inspect <store>: reads any Shopify store's theme, best sellers, newest products, prices, apps and pixels from its own storefront, from your terminal. Zero dependencies. |
packages/mcp | adlibraryspy-mcp: a local (stdio) MCP server for Claude Code, Cursor and VS Code, with three tools that need no account. |
leaderboard/ | The Action behind the weekly table above. |
Issues and pull requests are welcome. See CONTRIBUTING.md and our Code of Conduct. Questions and ideas go to Discussions. Adding app and pixel
signatures to shopify-inspect is an easy first contribution. If AdLibrarySpy helps you, a ⭐ helps other
people find it.
MIT. The AdLibrarySpy name and logo, third-party logos and the screenshots are not covered. See NOTICE.md.