1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" href="/favicon.ico" sizes="any"> 6 <link rel="icon" type="image/png" href="/favicon.png"> 7 <link rel="apple-touch-icon" href="/favicon.png"> 8 9 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 10 11 <!-- Preconnect hints for performance --> 12 <link rel="preconnect" href="https://hzzvddioivvtwkjjqavq.supabase.co" crossorigin> 13 <link rel="dns-prefetch" href="https://hzzvddioivvtwkjjqavq.supabase.co"> 14 <link rel="preconnect" href="https://storage.googleapis.com" crossorigin> 15 <link rel="dns-prefetch" href="https://storage.googleapis.com"> 16 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin> 17 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 18 19 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 19-20
19 20 <script async src="https://www.googletagmanager.com/gtag/js?id=
20G-6ZDSQ5WJJH
vendor: 16 bytes, lines 20-21
20"></script> 21
21<script> 22
vendor: 145 bytes, lines 22-25
22window.dataLayer = window.dataLayer || []; 23 function gtag(){dataLayer.push(arguments);} 24 gtag('js', new Date()); 25 gtag('config', '
25G-6ZDSQ5WJJH
vendor: 10 bytes, lines 25-26
25'); 26
26gtag('config', 'AW-18005268876'); 27 </script>
27 28 29 <!-- Meta Pixel Code --> 30
30<script>
vendor: 435 bytes, lines 30-39
30 31 !function(f,b,e,v,n,t,s) 32 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 33 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 34 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 35 n.queue=[];t=b.createElement(e);t.async=!0; 36 t.src=v;s=b.getElementsByTagName(e)[0]; 37 s.parentNode.insertBefore(t,s)}(window, document,'script', 38 'https://connect.facebook.net/en_US/fbevents.js'); 39 fbq('init', '
391579190719779027
vendor: 38 bytes, lines 39-41
39'); 40 fbq('track', 'PageView'); 41
41</script>
41 42 <!-- End Meta Pixel Code --> 43 44 <!-- Whitelabel branding guard: on custom domains (anything that isn't a 45 thoughtforge.app / lovable preview / localhost host), strip the 46 ThoughtForge default <title> + OG/Twitter meta BEFORE React boots so 47 visitors never see a flash of ThoughtForge branding on a whitelabel 48 site. React will then set the correct per-page meta on hydration. --> 49
49<script> 50 (function () { 51 try { 52 var h = location.hostname; 53 var isPlatform = h === 'thoughtforge.app' || h === 'www.thoughtforge.app' 54 || /\.thoughtforge\.app$/.test(h) 55 || h === 'localhost' || h === '127.0.0.1' || /^localhost:/.test(h) 56 || /\.lovableproject\.com$/.test(h) || /\.lovable\.app$/.test(h); 57 if (isPlatform) return; 58 document.title = ''; 59 var selectors = [ 60 'meta[name="description"]','meta[name="keywords"]','meta[name="author"]', 61 'meta[name="generator"]', 62 'meta[property^="og:"]','meta[name^="twitter:"]' 63 ]; 64 selectors.forEach(function (s) { 65 document.querySelectorAll(s).forEach(function (el) { el.parentNode.removeChild(el); }); 66 }); 67 } catch (e) { /* no-op */ } 68 })(); 69 </script>
69 70 71 72 <title>ThoughtForge â AI Search Visibility, Measured and Fixed</title> 73 <meta name="description" content="See how ChatGPT, Claude, Perplexity and Gemini describe your brand, find the pages causing the gaps, and fix them in one place."> 74 <meta name="author" content="ThoughtForge" /> 75 <meta name="keywords" content="AI search visibility, AEO, GEO, generative engine optimisation, ChatGPT citations, answer engine optimisation, AI brand monitoring" /> 76 <meta name="generator" content="ThoughtForge" /> 77 78 <!-- Open Graph --> 79 <meta property="og:type" content="website" /> 80 <meta property="og:site_name" content="ThoughtForge" /> 81 <meta property="og:url" content="https://thoughtforge.app/" /> 82 <meta property="og:image" content="https://thoughtforge.app/og-studio.png"> 83 <meta property="og:image:width" content="1200" /> 84 <meta property="og:image:height" content="630" /> 85 <meta property="og:image:type" content="image/png" /> 86 <meta property="og:image:alt" content="ThoughtForge â AI search visibility, measured and fixed." /> 87 <meta property="og:title" content="ThoughtForge â AI Search Visibility, Measured and Fixed"> 88 <meta property="og:description" content="See how ChatGPT, Claude, Perplexity and Gemini describe your brand, find the pages causing the gaps, and fix them in one place."> 89 90 <!-- Twitter / X --> 91 <meta name="twitter:card" content="summary_large_image" /> 92 <meta name="twitter:site" content="@thoughtforgeapp" /> 93 <meta name="twitter:image" content="https://thoughtforge.app/og-studio.png"> 94 <meta name="twitter:image:alt" content="ThoughtForge â AI search visibility, measured and fixed." /> 95 <meta name="twitter:title" content="ThoughtForge â AI Search Visibility, Measured and Fixed"> 96 <meta name="twitter:description" content="See how ChatGPT, Claude, Perplexity and Gemini describe your brand, find the pages causing the gaps, and fix them in one place."> 97 98
98<script type="module" crossorigin src="/assets/index-Dq2zLArw.js"></script>
98 99 <link rel="modulepreload" crossorigin href="/assets/react-vendor-h1rQ_Bae.js"> 100 <link rel="modulepreload" crossorigin href="/assets/query-_koPiPsI.js"> 101 <link rel="modulepreload" crossorigin href="/assets/supabase-DL6nu9mS.js"> 102 <link rel="modulepreload" crossorigin href="/assets/ui-radix-CKwvnS8F.js"> 103 <link rel="modulepreload" crossorigin href="/assets/charts-Xu79y1bN.js"> 104 <link rel="modulepreload" crossorigin href="/assets/motion-nVmI7L5T.js"> 105 <link rel="stylesheet" crossorigin href="/assets/index-DKBqfRLs.css"> 106
106<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
106</head> 107 108 <body> 109 <!-- Meta Pixel noscript fallback --> 110 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1579190719779027&ev=PageView&noscript=1" /></noscript> 111 112 <div id="root"></div> 113 </body> 114</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.