DEV Community

StackOps Labs
StackOps Labs

Posted on

We Built 3 Manifest V3 Chrome Extensions to Replace $290/Month in B2B Tech-Stack, UI Design Token, and AI-Search SEO Subscriptions

Between Wappalyzer/BuiltWith ($99–$295/mo), UI/CSS inspection tools, and technical SEO browser plugins, B2B founders and growth engineers easily burn $290+/month on browser extensions that either lock basic exports behind enterprise tiers or phone home every URL you visit.

So we built 3 lightweight, zero-telemetry Manifest V3 Chrome Extensions that run 100% locally in the browser using native DOM APIs, chrome.scripting.executeScript, and Cloudflare DNS-over-HTTPS (1.1.1.1).

Here is the exact technical architecture behind each one—including copy-paste snippets you can use in your own extensions today.


1. StackRay: B2B Lead, Tech-Stack, Email & Live DNS/MX X-Ray (MV3)

Most tech-stack detectors rely on bloated regex databases. In Manifest V3, you can detect 35+ modern B2B SaaS, Payment, Analytics, and Infrastructure signatures in under 15ms by combining DOM script/meta inspection with a direct Cloudflare DoH (application/dns-json) lookup from the popup context:

// Live MX & SPF Provider Detection via Cloudflare 1.1.1.1 DoH (No Backend Required)
async function inspectDomainDNS(hostname) {
  const domain = hostname.replace(/^www\./, '');
  const fetchRecord = async (type) => {
    const res = await fetch(`https://cloudflare-dns.com/dns-query?name=${encodeURIComponent(domain)}&type=${type}`, {
      headers: { 'Accept': 'application/dns-json' }
    });
    const data = await res.json();
    return (data.Answer || []).map(a => a.data);
  };

  const [mxRecords, txtRecords] = await Promise.all([
    fetchRecord('MX'),
    fetchRecord('TXT')
  ]);

  const spfRecords = txtRecords.filter(t => t.toLowerCase().includes('v=spf1'));
  return { domain, mxRecords, spfRecords };
}
Enter fullscreen mode Exit fullscreen mode

What StackRay Extracts in 1 Click:

  • 35+ Tech Signatures across Frontend/Framework (__NEXT_DATA__, Nuxt, Remix, Astro, Webflow, Shopify), Payments (Stripe, Paddle, LemonSqueezy, Polar), Analytics (PostHog, Segment, Mixpanel, Plausible, Amplitude), and Support/CRM (Intercom, Crisp, HubSpot, Clerk, Supabase).
  • Live Email & Social Harvester: De-obfuscates mailto: links, scans visible text, and extracts LinkedIn, X/Twitter, and GitHub company profiles.
  • Live DNS MX & SPF X-Ray: Identifies whether the prospect runs Google Workspace, Microsoft 365, ProtonMail, or Amazon SES/SendGrid.
  • 1-Click Export to JSON or Lead-Ready CSV.

👉 Get StackRay (Unpacked MV3 Extension + Full Source Code):


2. StealThisUI: Website Design System, Color Palette, Typography & Cursor/Claude Code Prompt Generator (MV3)

When you ask Cursor or Claude Code to "build a landing page like Linear or Stripe", it defaults to generic indigo-600 Tailwind templates because it doesn't have the computed CSS tokens.

StealThisUI walks the live DOM via window.getComputedStyle(), clusters the top surface/text/border colors by frequency, extracts the exact typography scale (font family, weight, size, line-height, letter-spacing), and compiles a ready-to-paste CLAUDE.md / .cursorrules Design System Prompt:

// Extract Computed Typography Scale for H1, H2, H3, Body, and Button
function extractTypographyTokens() {
  const selectors = { H1: 'h1', H2: 'h2', H3: 'h3', Body: 'p, body', Button: 'button, a[class*="btn"]' };
  const scale = {};
  for (const [label, sel] of Object.entries(selectors)) {
    const el = document.querySelector(sel);
    if (!el) continue;
    const cs = window.getComputedStyle(el);
    scale[label] = {
      fontFamily: cs.fontFamily.split(',')[0].replace(/['"]/g, '').trim(),
      fontSize: cs.fontSize,
      fontWeight: cs.fontWeight,
      lineHeight: cs.lineHeight,
      letterSpacing: cs.letterSpacing
    };
  }
  return scale;
}
Enter fullscreen mode Exit fullscreen mode

What StealThisUI Generates in 1 Click:

  • Visual Color Swatch Grid with frequency bars and click-to-copy HEX codes.
  • Typography Specimen Table (H1–H3, Body, Button, Code) + CSS Custom Properties (:root variables).
  • 1-Click Copy Cursor / Claude Code Design Prompt: Generates a complete Markdown specification you can drop straight into Cursor, Windsurf, Claude Code, or v0.
  • 1-Click Copy Tailwind v3/v4 Config.

👉 Get StealThisUI (Unpacked MV3 Extension + Full Source Code):


3. CiteCheck: Technical SEO, Schema.org JSON-LD & AI Search (/llms.txt + GPTBot) Auditor (MV3)

Traditional SEO extensions check meta tags and H1s, but completely ignore 2026 AI Search & Answer Engine Optimization (AEO)—whether your site publishes /llms.txt, whether robots.txt blocks GPTBot, ClaudeBot, or PerplexityBot, and whether your application/ld+json Schema.org graph validates.

CiteCheck audits both on-page DOM signals and origin-root AI crawlers in parallel:

// Live /llms.txt & AI Crawler robots.txt Verification
async function auditOriginAIFiles(origin) {
  const [robotsRes, llmsRes] = await Promise.allSettled([
    fetch(`${origin}/robots.txt`).then(r => r.ok ? r.text() : null),
    fetch(`${origin}/llms.txt`).then(r => r.ok ? r.text() : null)
  ]);

  const robotsTxt = robotsRes.status === 'fulfilled' ? robotsRes.value : null;
  const llmsTxt = llmsRes.status === 'fulfilled' ? llmsRes.value : null;

  const bots = ['GPTBot', 'OAI-SearchBot', 'ClaudeBot', 'PerplexityBot', 'Google-Extended'];
  const botStatus = {};
  for (const bot of bots) {
    const blocked = robotsTxt && new RegExp(`User-agent:\\s*${bot}[\\s\\S]*?Disallow:\\s*/\\s*$`, 'im').test(robotsTxt);
    botStatus[bot] = blocked ? 'BLOCKED' : 'ALLOWED';
  }
  return { hasLlmsTxt: Boolean(llmsTxt), llmsLength: llmsTxt?.length || 0, botStatus };
}
Enter fullscreen mode Exit fullscreen mode

What CiteCheck Audits & Auto-Generates:

  • Weighted 0–100 SEO + AI Search Readiness Score across 20 checks (Title/Meta length, Canonical, OG/Twitter Cards, H1–H6 Hierarchy, Image Alt coverage, JSON-LD Graph, /llms.txt, and AI Crawler permissions).
  • 1-Click Generate Missing /llms.txt & JSON-LD Fix: Synthesizes a valid /llms.txt file and SoftwareApplication / WebPage JSON-LD snippet from the current page's live headings and metadata.

👉 Get CiteCheck (Unpacked MV3 Extension + Full Source Code):


Want All 40+ Production SaaS Kits, FinOps Scripts & B2B Growth Databases?

Check out the full StackOps Labs Catalog on Payhip or Ko-fi Shop (or grab the All-Access Vault at https://payhip.com/b/LeIsO).

Top comments (0)