1import{j as e}from"./query-_koPiPsI.js";import{f as N,r as o}from"./react-vendor-h1rQ_Bae.js";import{ay as w,aB as k,I as v,B as y,L as C,A as T,aT as S,H as A,G as I,s as F}from"./index-Dq2zLArw.js";import{C as G}from"./circle-x-DYzxr_B1.js";import"./ui-radix-CKwvnS8F.js";import"./supabase-DL6nu9mS.js";import"./charts-Xu79y1bN.js";import"./motion-nVmI7L5T.js";const P={pass:e.jsx(A,{className:"h-5 w-5 text-emerald-500 shrink-0"}),warn:e.jsx(I,{className:"h-5 w-5 text-amber-500 shrink-0"}),fail:e.jsx(G,{className:"h-5 w-5 text-destructive shrink-0"})};function B(r){return r>=85?{label:"Strong",copy:"AI answer engines can reach you, read you and identify you."}:r>=65?{label:"Workable",copy:"The basics are there, but there is real ground being given away."}:r>=40?{label:"Weak",copy:"AI engines can reach your site but struggle to understand or quote it."}:{label:"Invisible",copy:"As far as AI answer engines are concerned, this site barely exists."}}function O(){const r=N(),[n,j]=o.useState(""),[a,m]=o.useState(!1),[h,i]=o.useState(null),[s,x]=o.useState(null),b=async t=>{if(t.preventDefault(),!(!n.trim()||a)){m(!0),i(null),x(null);try{const{data:d,error:u}=await F.functions.invoke("public-scan",{body:{domain:n.trim()}});if(u){let p="Something went wrong. Try again in a moment.";try{const g=u?.context;if(g){const f=JSON.parse(await g.text());f?.error&&(p=f.error)}}catch{}i(p);return}if(d?.error){i(d.error);return}x(d)}catch{i("Something went wrong. Try again in a moment.")}finally{m(!1)}}},l=s?B(s.score):null,c=s?.checks.filter(t=>t.state!=="pass")??[];return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsxs(w,{children:[e.jsx("title",{children:"Free AI Visibility Check â Can ChatGPT See Your Site? | ThoughtForge"}),e.jsx("meta",{name:"description",content:"Free instant check: can ChatGPT, Claude and Perplexity reach, read and identify your website? Nine deterministic checks, no signup, results in seconds."}),e.jsx("link",{rel:"canonical",href:"https://thoughtforge.app/scan"}),e.jsx("meta",{property:"og:title",content:"Free AI Visibility Check â Can ChatGPT See Your Site?"}),e.jsx("meta",{property:"og:description",content:"Nine checks on whether AI answer engines can reach, read and identify your site. No signup."}),e.jsx("meta",{property:"og:url",content:"https://thoughtforge.app/scan"})]}),e.jsx(k,{}),e.jsxs("main",{className:"container mx-auto px-4 sm:px-6 pt-28 pb-20 max-w-3xl",children:[e.jsxs("section",{className:"text-center",children:[e.jsx("p",{className:"text-sm uppercase tracking-widest text-muted-foreground mb-4",children:"Free · no signup"}),e.jsx("h1",{className:"text-4xl sm:text-5xl font-light tracking-tight mb-5",children:"Can ChatGPT actually see your website?"}),e.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:"Most sites look fine in a browser and are near-invisible to AI answer engines. This runs nine checks against your live site â crawler access, readable text, entity clarity â and tells you exactly what to fix. Takes about ten seconds."})]}),e.jsxs("form",{onSubmit:b,className:"mt-10 flex flex-col sm:flex-row gap-3",children:[e.jsx(v,{value:n,onChange:t=>j(t.target.value),placeholder:"yourcompany.com","aria-label":"Your website address",className:"h-12 text-base",autoComplete:"url",disabled:a}),e.jsx(y,{type:"submit",size:"lg",className:"h-12 px-8",disabled:a||!n.trim(),children:a?e.jsxs(e.Fragment,{children:[e.jsx(C,{className:"h-4 w-4 animate-spin mr-2"}),"Checking"]}):"Check my site"})]}),h&&e.jsx("p",{className:"mt-4 text-sm text-destructive",role:"alert",children:h}),a&&e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Fetching your homepage, robots.txt, sitemap and structured dataâ¦"}),s&&l&&e.jsxs("section",{className:"mt-14","aria-live":"polite",children:[e.jsxs("div",{className:"rounded-xl border border-border p-8 text-center",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:s.domain}),e.jsxs("div",{className:"text-6xl font-light tracking-tight",children:[s.score,e.jsx("span",{className:"text-2xl text-muted-foreground",children:"/100"})]}),e.jsx("p",{className:"mt-3 text-xl font-light",children:l.label}),e.jsx("p",{className:"mt-2 text-muted-foreground max-w-md mx-auto",children:l.copy}),e.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:[s.passed," of ",s.total," checks passed"]})]}),e.jsxs("div",{className:"mt-10 space-y-4",children:[e.jsx("h2",{className:"text-2xl font-light tracking-tight",children:"What we found"}),s.checks.map(t=>e.jsx("div",{className:"rounded-lg border border-border p-5",children:e.jsxs("div",{className:"flex items-start gap-3",children:[P[t.state],e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-medium",children:t.label}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:t.detail}),t.fix&&e.jsxs("p",{className:"text-sm mt-3",children:[e.jsx("span",{className:"text-foreground font-medium",children:"Fix: "}),e.jsx("span",{className:"text-muted-foreground",children:t.fix})]})]})]})},t.id))]}),e.jsxs("div",{className:"mt-12 rounded-xl border border-primary/30 bg-primary/5 p-8",children:[e.jsx("h2",{className:"text-2xl font-light tracking-tight",children:"This is the shallow half of the check"}),e.jsxs("p",{className:"mt-3 text-muted-foreground",children:["These nine checks tell you whether AI engines ",e.jsx("em",{children:"can"})," read you. They don't tell you what ChatGPT, Claude, Gemini and Perplexity actually ",e.jsx("em",{children:"say"})," when someone asks about your category â whether you're named, what they get wrong, or which competitor gets the mention instead."]}),e.jsx("p",{className:"mt-3 text-muted-foreground",children:"That's the full Brand Health run: three engines, real prompts put to real models, scored and tracked over time â plus one-click fixes for what it finds. Your first brand scan is free."}),e.jsxs(y,{size:"lg",className:"mt-6",onClick:()=>r("/auth"),children:["Run the full check free",e.jsx(T,{className:"h-4 w-4 ml-2"})]}),c.length>0&&e.jsxs("p",{className:"mt-4 text-sm text-muted-foreground",children:["We already found ",c.length," issue",c.length===1?"":"s"," on ",s.domain,". ThoughtForge can fix most of them for you."]})]})]}),!s&&!a&&e.jsxs("section",{className:"mt-16 border-t border-border pt-10",children:[e.jsx("h2",{className:"text-2xl font-light tracking-tight mb-4",children:"What this checks"}),e.jsxs("ul",{className:"space-y-3 text-muted-foreground",children:[e.jsxs("li",{children:[e.jsx("span",{className:"text-foreground",children:"Crawler access"})," â whether GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended are blocked by your robots.txt."]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-foreground",children:"Readable text"})," â how much of your copy exists in the HTML before JavaScript runs. Most AI crawlers never run it."]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-foreground",children:"Entity clarity"})," â whether you publish an Organization profile with linked external profiles, so models know which company you are."]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-foreground",children:"Answer shape"})," â whether your page is broken into quotable sections or one undifferentiated block."]}),e.jsxs("li",{children:[e.jsx("span",{className:"text-foreground",children:"Foundations"})," â title, description, sitemap, canonical, single main heading, and an llms.txt guide for AI agents."]})]}),e.jsx("p",{className:"mt-6 text-sm text-muted-foreground",children:"Nothing is stored against you and n
1o account is created. We log the domain and score only, to stop the scanner being abused."})]})]}),e.jsx(S,{})]})}export{O as default};
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.