PageSourceSearch

https://vovv.ai/

html vovv.ai collected 2026-10-05 13:16:07 UTC 6,476 bytes, 131 lines download raw bytes

1<!doctype html>
2<html lang="en">
3  <head>
4    <meta name="google-site-verification" content="it85Bqdwo_oCoraf49gUTrQHxMDFWW3EQeEvEAfct6U" />
5    <meta name="p:domain_verify" content="dcb7589d44bac2e0ab99fd475efc996a" />
6    <meta charset="UTF-8" />
7    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8    <link rel="icon" href="/favicon.ico" sizes="48x48">
9    <link rel="icon" href="/favicon.svg" type="image/svg+xml">
10    <link rel="icon" type="image/png" sizes="32x32" href="/favicon.png">
11    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
12    <link rel="manifest" href="/site.webmanifest" />
13    <link rel="preconnect" href="https://img.logo.dev" crossorigin />
14    <link rel="dns-prefetch" href="https://img.logo.dev" />
15    <!--
16      No static <link rel="canonical"> here on purpose.
17      Each route sets its own canonical at runtime via SEOHead.tsx.
18      A hardcoded root canonical would override every per-page
19      canonical for any bot that doesn't execute JS.
20    -->
21    <title>AI Product Visuals &amp; Videos for E-commerce Brands | VOVV.AI</title>
22    
23    <meta name="author" content="VOVV.AI" />
24
25    <!-- GTM is loaded from src/lib/consent.ts after Google Consent Mode v2
26         defaults are set. EU visitors need to accept analytics before it fires;
27         non-EU visitors auto-grant and load immediately for parity. -->
28
29
30    <link rel="preconnect" href="https://fonts.googleapis.com" />
31    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
32    <link rel="preconnect" href="https://azwiljtrbtaupofwmpzb.supabase.co" crossorigin />
33    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin />
34    <link rel="dns-prefetch" href="https://www.google-analytics.com" />
35
36    <!-- Preload the actual font file to skip CSS→font chain -->
37    <link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2" />
38
39    <!-- LCP hero image preload is injected at runtime via Helmet from
40         src/components/home/HomeHero.tsx so the hashed asset URL always matches. -->
41
42
43    <!-- gtag.js is loaded from src/lib/consent.ts, gated by Google Consent
44         Mode v2 so EU visitors must accept analytics first. -->
45
46
47    <!-- Meta Pixel removed: Meta tracking now fires exclusively via GTM -->
48    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap" onload="this.onload=null;this.rel='stylesheet'" />
49    <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet" /></noscript>
50
51    
52    
53    <meta property="og:type" content="website" />
54    <!--
55      No static og:image / twitter:image here on purpose.
56      Each route sets its own preview at runtime via SEOHead.tsx (ogImage prop),
57      falling back to DEFAULT_OG_IMAGE. Lovable hosting also injects a
58      serve-time social preview for non-JS crawlers when none is present.
59    -->
60
61    <meta name="twitter:card" content="summary_large_image" />
62    <meta name="twitter:site" content="@VOVVAI" />
63
64    
65  
66  
67  
68  
69  
70  
71  
72  
73  
74  
75  
76  <meta property="og:title" content="AI Product Images &amp; Videos for E-commerce Brands | VOVV.AI">
77  <meta name="twitter:title" content="AI Product Images &amp; Videos for E-commerce Brands | VOVV.AI">
78
79  <!-- Sitewide Organization + WebSite JSON-LD (Knowledge Graph + AI grounding) -->
80  
80<script type="application/ld+json">
81  {
82    "@context": "https://schema.org",
83    "@type": "Organization",
84    "name": "VOVV.AI",
85    "url": "https://vovv.ai",
86    "logo": "https://vovv.ai/favicon.svg",
87    "description": "AI product visuals for e-commerce brands. Turn one product photo into a full visual system.",
88    "sameAs": [
89      "https://www.instagram.com/vovv.ai",
90      "https://www.facebook.com/vovvaistudio/",
91      "https://www.tiktok.com/@vovv.ai"
92    ]
93  }
94  </script>
94
95  
95<script type="application/ld+json">
96  {
97    "@context": "https://schema.org",
98    "@type": "WebSite",
99    "name": "VOVV.AI",
100    "url": "https://vovv.ai",
101    "potentialAction": {
102      "@type": "SearchAction",
103      "target": "https://vovv.ai/discover?q={search_term_string}",
104      "query-input": "required name=search_term_string"
105    }
106  }
107  </script>
107
108  
108<script type="module" crossorigin src="/assets/index-BfEqxQPi.js"></script>
108
109  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BfTl68nP.js">
110  <link rel="modulepreload" crossorigin href="/assets/vendor-query-CtIF-MNZ.js">
111  <link rel="modulepreload" crossorigin href="/assets/vendor-radix-q0rzatl0.js">
112  <link rel="modulepreload" crossorigin href="/assets/vendor-icons-hHTr3Gms.js">
113  <link rel="stylesheet" crossorigin href="/assets/index-BDbKeqHm.css">
114<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
114<meta property="og:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/VKxsHweXOcTm9TQCFujLdVnOvfP2/social-images/social-1774857188036-VOVV.AI_Social_Image.webp"><meta name="twitter:image" content="https://storage.googleapis.com/gpt-engineer-file-uploads/VKxsHweXOcTm9TQCFujLdVnOvfP2/social-images/social-1774857188036-VOVV.AI_Social_Image.webp"></head>
115
116  <body>
117    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 117-118
117
118    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
118GTM-P29VVFW3
vendor: 91 bytes, lines 118-120
118"
119    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
120    
120<!-- End Google Tag Manager (noscript) -->
121    <div id="root">
122      <div style="display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#faf9f7;gap:10px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;">
123        <span style="font-size:15px;font-weight:500;letter-spacing:0.18em;color:#1a2436;line-height:1;animation:_b 2.4s ease-in-out infinite;">VOVV.AI</span>
124        <div style="position:relative;height:1px;width:80px;overflow:hidden;background:linear-gradient(to right,transparent,#e5e3df,transparent);">
125          <div style="position:absolute;top:0;left:0;height:1px;width:40%;background:linear-gradient(to right,transparent,#2d3a4e,transparent);animation:_w 1.6s ease-in-out infinite;"></div>
126        </div>
127      </div>
128      <style>@keyframes _b{0%,100%{opacity:.7}50%{opacity:1}}@keyframes _w{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}</style>
129    </div>
130  </body>
131</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.