1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content="Simple, transparent pricing for B2B visitor identification. Start at $49/mo. Unlimited team members. All integrations included. 14-day free trial."><meta name="author" content="Snitcher"><meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><!-- Canonical URL --><link rel="canonical" href="https://www.snitcher.com/pricing/"><!-- Open Graph --><meta property="og:title" content="Pricing - Plans from $49/mo"><meta property="og:description" content="Simple, transparent pricing for B2B visitor identification. Start at $49/mo. Unlimited team members. All integrations included. 14-day free trial."><meta property="og:type" content="website"><meta property="og:url" content="https://www.snitcher.com/pricing/"><meta property="og:site_name" content="Snitcher"><meta property="og:locale" content="en_US"><meta property="og:image" content="https://www.snitcher.com/og-image.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="Pricing - Plans from $49/mo"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Pricing - Plans from $49/mo"><meta name="twitter:description" content="Simple, transparent pricing for B2B visitor identification. Start at $49/mo. Unlimited team members. All integrations included. 14-day free trial."><meta name="twitter:image" content="https://www.snitcher.com/og-image.png"><meta name="twitter:image:alt" content="Pricing - Plans from $49/mo"><!-- Favicon --><link rel="icon" type="image/png" href="/favicon.png"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><!-- Web App Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><!-- LLM-readable content reference --><link rel="alternate" type="text/plain" href="/llms.txt" title="LLM-readable site description"><!-- Font preloads --><link rel="preload" href="/fonts/AtypText-Semibold.otf" as="font" type="font/opentype" crossorigin><link rel="preload" href="/fonts/PlusJakartaSans-Regular.woff2" as="font" crossorigin><!-- Preconnects for performance --><link rel="dns-prefetch" href="https://app.snitcher.com"><title>Pricing - Plans from $49/mo | Snitcher</title><!-- Structured Data -->
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Snitcher","url":"https://www.snitcher.com","logo":"https://www.snitcher.com/logo.png","sameAs":["https://linkedin.com/company/snitcher"],"description":"Uncover your hidden website visitors. Snitcher turns anonymous intent into predictable revenue."}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Snitcher","url":"https://www.snitcher.com","description":"Uncover your hidden website visitors. Snitcher turns anonymous intent into predictable revenue."}</script>
1<!-- Personalisation URL capture â MUST run before HeadScripts so the 2 inline capture beats the Radar tracker's URL strip. Always-on (the 3 capture itself is just an indexOf + window assignment); the actual 4 personalisation UI is opted in per page via <PersonalizationProvider />. --><!-- Restore H1 visibility for JS-disabled / crawler agents. Lives next to 5 the capture (not the Provider) because JS-off visitors should always 6 see the original copy regardless of which page they land on. --><noscript><style>[data-personalize-template]{visibility:visible!important}</style></noscript>
6<script> 7 (function () { 8 // Stash the raw URL search on `window` â sessionStorage at this stage 9 // can be wiped by Cookiebot (or other CMP/tracker init) before our 10 // bundled script reads it. `window` survives. 11 var search = window.location.search || ''; 12 if ( 13 search && 14 (search.indexOf('sn_email=') !== -1 || search.indexOf('sn_eid=') !== -1) 15 ) { 16 window.__snitcherPersonalizationRawSearch = search; 17 } 18 })(); 19</script>
19<!-- Analytics & Tracking --><!-- Preconnects for analytics services --><link rel="preconnect" href="https://cdn.snitcher.com"><link rel="preconnect" href="https://radar.snitcher.com"><link rel="preconnect" href="https://touch.snitcher.com"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><link rel="dns-prefetch" href="https://consent.cookiebot.com"><link rel="dns-prefetch" href="https://connect.facebook.net"><!-- Snitcher Radar -->
19<script> 20!function(e){"use strict";var t=e&&e.namespace;if(t&&e.profileId&&e.cdn){var i=window[t];if(i&&Array.isArray(i)||(i=window[t]=[]),!i.initialized&&!i._loaded)if(i._loaded)console&&console.warn("[Radar] Duplicate initialization attempted");else{i._loaded=!0;["track","page","identify","group","alias","ready","debug","on","off","once","trackClick","trackSubmit","trackLink","trackForm","pageview","screen","reset","register","setAnonymousId","addSourceMiddleware","addIntegrationMiddleware","addDestinationMiddleware","giveCookieConsent"].forEach((function(e){var a;i[e]=(a=e,function(){var e=window[t];if(e.initialized)return e[a].apply(e,arguments);var i=[].slice.call(arguments);return i.unshift(a),e.push(i),e})})),-1===e.apiEndpoint.indexOf("http")&&(e.apiEndpoint="https://"+e.apiEndpoint),i.bootstrap=function(){var t,i=document.createElement("script");i.async=!0,i.type="text/javascript",i.id="__radar__",i.setAttribute("data-settings",JSON.stringify(e)),i.src=[-1!==(t=e.cdn).indexOf("http")?"":"https://",t,"/releases/latest/radar.min.js"].join("");var a=document.scripts[0];a.parentNode.insertBefore(i,a)},i.bootstrap()}}else"undefined"!=typeof console&&console.error("[Radar] Configuration incomplete")}({ 21 apiEndpoint: "radar.snitcher.com", 22 cdn: "cdn.snitcher.com", 23 namespace: "Snitcher", 24 profileId: "8395164", 25 features: { 26 formTracking: true, 27 downloadTracking: true, 28 }, 29}); 30</script>
30<!-- Shared dual-emit tracking helper: Snitcher Radar + GTM dataLayer. 31 Module scripts use the identical `track()` from src/lib/track.ts; 32 this global exists so `is:inline` scripts can emit the same way. -->
32<script> 33window.snitcherTrack = function (event, properties) { 34 var props = properties || {}; 35 // Product-stream pages tag events with a product_stream property 36 // (explicit properties win). Keep in sync with src/lib/track.ts. 37 try { 38 var streams = { 'partners': 'partners', 'radar': 'radar', 'platform': 'platform', 'ip-to-company-api': 'ip2c' }; 39 var firstSegment = window.location.pathname.split('/').filter(Boolean)[0] || ''; 40 if (streams[firstSegment] && !('product_stream' in props)) { 41 var tagged = { product_stream: streams[firstSegment] }; 42 for (var pk in props) { 43 if (Object.prototype.hasOwnProperty.call(props, pk)) tagged[pk] = props[pk]; 44 } 45 props = tagged; 46 } 47 } catch (e) { /* fall through untagged */ } 48 try { 49 if (window.Snitcher && typeof window.Snitcher.track === 'function') { 50 // Radar names are namespaced so marketing-site events stay separable 51 // from app-emitted events; the dataLayer name below stays bare for 52 // GTM triggers. 53 window.Snitcher.track('website.' + event, props); 54 } 55 } catch (e) { /* analytics must never break the page */ } 56 try { 57 window.dataLayer = window.dataLayer || []; 58 var entry = { event: event }; 59 for (var key in props) { 60 if (Object.prototype.hasOwnProperty.call(props, key)) entry[key] = props[key]; 61 } 62 window.dataLayer.push(entry); 63 } catch (e) { /* ignore */ } 64}; 65</script>
65<!-- Google Tag Manager (consent-gated, then lazy loaded) -->
65<script> 66/* 67 * GTM is injected as a DOM-created
67<script>. Cookiebot's `data-blockingmode="auto"` 68 * rewrites tags it can see in the markup, so it never intercepts this one â which is 69 * why the container, and the GA, Google Ads, Reddit and Clarity tags inside it, used 70 * to load before the visitor had answered the banner. Consent is therefore checked 71 * here explicitly; the static tags further down stay covered by auto-blocking. 72 */ 73function gtmConsentGranted() { 74 var consent = window.Cookiebot && window.Cookiebot.consent; 75 return Boolean(consent && (consent.statistics || consent.marketing)); 76} 77function initGTM() { 78 if (window.gtmDidInit || !gtmConsentGranted()) { 79 return false; 80 } 81 window.gtmDidInit = true; 82 const script = document.createElement('script'); 83 script.type = 'text/javascript'; 84 script.async = true; 85 script.onload = () => { 86 window.dataLayer = window.dataLayer || []; 87 window.dataLayer.push({ event: 'gtm.js', 'gtm.start': new Date().getTime(), 'gtm.uniqueEventId': 0 }); 88 }; 89 script.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-THP98M8'; 90 document.head.appendChild(script); 91 return true; 92} 93function initGTMOnEvent(event) { 94 // Only spend the listener once the container actually loaded â before consent 95 // initGTM() is a no-op, and dropping the listener there would lose the trigger. 96 if (initGTM()) { 97 event.currentTarget.removeEventListener(event.type, initGTMOnEvent); 98 } 99} 100document.addEventListener('DOMContentLoaded', () => { 101 setTimeout(initGTM, 500); 102}); 103document.addEventListener('scroll', initGTMOnEvent); 104document.addEventListener('mousemove', initGTMOnEvent); 105document.addEventListener('touchstart', initGTMOnEvent); 106// Consent usually lands after the lazy triggers have already run and no-opped, so 107// load on Cookiebot's own events too. 108window.addEventListener('CookiebotOnAccept', initGTM); 109window.addEventListener('CookiebotOnConsentReady', initGTM); 110</script>
110<!-- Google Consent Mode v2 defaults â MUST run before Cookiebot and any Google tag. 111 Without these Google's tags assume consent, which is what Cookiebot's scan reports 112 as "GCM consent parameters set as Default: At risk". Cookiebot updates the signal 113 once the visitor answers; until then everything non-essential stays denied. -->
113<script> 114window.dataLayer = window.dataLayer || []; 115function gtag() { window.dataLayer.push(arguments); } 116gtag('consent', 'default', { 117 ad_storage: 'denied', 118 ad_user_data: 'denied', 119 ad_personalization: 'denied', 120 analytics_storage: 'denied', 121 functionality_storage: 'denied', 122 personalization_storage: 'denied', 123 security_storage: 'granted', 124 wait_for_update: 500, 125}); 126gtag('set', 'ads_data_redaction', true); 127gtag('set', 'url_passthrough', true); 128</script>
128<!-- Cookiebot CMP (Cookie Consent) -->
128<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="61d78ce6-ca00-4e9d-9b95-3dd373e04e20" data-blockingmode="auto" type="text/javascript"></script>
128<!-- Segment Analytics -->
128<script> 129!function(){var i="analytics",analytics=window[i]=window[i]||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"];analytics.factory=function(e){return function(){if(window[i].initialized)return window[i][e].apply(window[i],arguments);var n=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(e)>-1){var c=document.querySelector("link[rel='canonical']");n.push({__t:"bpc",c:c&&c.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}n.unshift(e);analytics.push(n);return analytics}};for(var n=0;n<analytics.methods.length;n++){var key=analytics.methods[n];analytics[key]=analytics.factory(key)}analytics.load=function(key,n){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.setAttribute("data-global-segment-analytics-key",i);t.src="https://touch.snitcher.com/analytics.js/v1/" + key + "/analytics.min.js";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r);analytics._loadOptions=n};analytics._writeKey="fS7MHBg3XdVWDj1Gf6mi7xqpGDv6atOV";;analytics.SNIPPET_VERSION="5.2.0"; 130analytics.load("fS7MHBg3XdVWDj1Gf6mi7xqpGDv6atOV"); 131analytics.page(); 132}}(); 133</script>
133<!-- Meta Pixel -->
133<script>
vendor: 399 bytes, lines 133-142
133 134!function(f,b,e,v,n,t,s) 135{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 136n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 137if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 138n.queue=[];t=b.createElement(e);t.async=!0; 139t.src=v;s=b.getElementsByTagName(e)[0]; 140s.parentNode.insertBefore(t,s)}(window, document,'script', 141'https://connect.facebook.net/en_US/fbevents.js'); 142fbq('init', '
1421377135903938422
vendor: 30 bytes, lines 142-143
142'); 143fbq('track', 'PageView');
144</script>
144<noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1377135903938422&ev=PageView&noscript=1"></noscript><link rel="stylesheet" href="/_astro/about.D_2VM18I.css"> 145<style>.referral-offer-banner[data-astro-cid-nahiwob6].hidden{display:none}.referral-offer-banner[data-astro-cid-nahiwob6].is-visible{display:block}.referral-offer-banner[data-astro-cid-nahiwob6].is-dismissing{transition:opacity .2s ease-out,max-height .2s ease-out,padding .2s ease-out;opacity:0;max-height:0;padding-top:0;padding-bottom:0}#hero .section-container{-o-border-image:linear-gradient(to bottom,transparent,rgba(228,228,231,.5)) 1;border-image:linear-gradient(to bottom,transparent,rgba(228,228,231,.5)) 1}#hero .section-container:before,#hero .section-container:after{-webkit-mask-image:linear-gradient(to bottom,transparent,black);mask-image:linear-gradient(to bottom,transparent,black)} 146:root{--color-palatinate-50: #efefff;--color-palatinate-100: #dadaff;--color-palatinate-200: #b4b4ff;--color-palatinate-300: #8e8eff;--color-palatinate-400: #6a6aff;--color-palatinate-500: #4c4cff;--color-palatinate-600: #3e3ee6;--color-palatinate-700: #3131c2;--color-palatinate-800: #26269e;--color-palatinate-900: #1d1d7a;--color-palatinate-950: #171761;--color-lavender-50: #efefff;--color-lavender-100: #e9e8ff;--color-lavender-200: #d5d4ff;--color-lavender-300: #b8b1ff;--color-lavender-400: #9485ff;--color-lavender-500: #7153ff;--color-lavender-600: #5f30f7;--color-lavender-700: #511ee3;--color-lavender-800: #4318bf;--color-lavender-900: #38169c;--color-lavender-950: #210b6a;--color-jade-50: #ecfdf3;--color-jade-100: #d1fae1;--color-jade-200: #a7f3c9;--color-jade-300: #6de8ab;--color-jade-400: #33d489;--color-jade-500: #0ead69;--color-jade-600: #04975b;--color-jade-700: #03794c;--color-jade-800: #05603d;--color-jade-900: #064e34;--color-jade-950: #022c1e;--color-coral-50: #fef8f7;--color-coral-100: #fdedea;--color-coral-200: #fbd4cc;--color-coral-300: #fabaab;--color-coral-400: #f8a087;--color-coral-500: #f78154;--color-coral-600: #d0602a;--color-coral-700: #a1491f;--color-coral-800: #753313;--color-coral-900: #491d08;--color-coral-950: #351404;--color-honey-50: #feedd1;--color-honey-100: #fde4ba;--color-honey-200: #fcd38d;--color-honey-300: #fbc261;--color-honey-400: #fab034;--color-honey-500: #f99f07;--color-honey-600: #cd8305;--color-honey-700: #a06604;--color-honey-800: #744a03;--color-honey-900: #472d02;--color-honey-950: #301f01;--color-lava-50: #fef2f3;--color-lava-100: #fde3e5;--color-lava-200: #fcccd0;--color-lava-300: #f9a8ae;--color-lava-400: #f3767f;--color-lava-500: #e63946;--color-lava-600: #d52d3a;--color-lava-700: #b3222d;--color-lava-800: #942029;--color-lava-900: #7b2128;--color-lava-950: #430c10;--color-zinc-600: #52525b;--alpha-border: rgba(0, 0, 0, .08)}.dark{--alpha-border: rgba(255, 255, 255, .1)} 147.hero-logo-scatter[data-astro-cid-s4rxgulo]{position:absolute;inset:0;z-index:0;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:0}.hero-logo-scatter[data-astro-cid-s4rxgulo][data-ready=true]{opacity:1}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo]{position:absolute;width:48px;height:48px;-o-object-fit:contain;object-fit:contain;background:#fff;border-radius:12px;padding:6px;box-shadow:0 1px 2px #0000000a,0 6px 16px #0000000f}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="0"]{top:6%;left:4%;width:56px;height:56px;transform:rotate(-8deg);opacity:.6}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="1"]{top:22%;left:11%;width:44px;height:44px;transform:rotate(6deg);opacity:.75}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="2"]{top:54%;left:3%;width:48px;height:48px;transform:rotate(-12deg);opacity:.6}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="3"]{top:78%;left:13%;width:40px;height:40px;transform:rotate(9deg);opacity:.5}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="4"]{top:8%;right:5%;width:52px;height:52px;transform:rotate(7deg);opacity:.6}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="5"]{top:26%;right:12%;width:44px;height:44px;transform:rotate(-5deg);opacity:.75}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="6"]{top:56%;right:4%;width:48px;height:48px;transform:rotate(10deg);opacity:.6}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="7"]{top:80%;right:14%;width:40px;height:40px;transform:rotate(-8deg);opacity:.5}.hero-logo-scatter[data-astro-cid-s4rxgulo][data-align=right] .hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="0"],.hero-logo-scatter[data-astro-cid-s4rxgulo][data-align=right] .hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="1"],.hero-logo-scatter[data-astro-cid-s4rxgulo][data-align=right] .hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="2"],.hero-logo-scatter[data-astro-cid-s4rxgulo][data-align=right] .hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="3"]{display:none}@media (max-width: 1024px){.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="1"],.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="5"]{display:none}}@media (max-width: 640px){.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="2"],.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="3"],.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="6"],.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="7"]{display:none}.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="0"],.hero-logo-scatter__logo[data-astro-cid-s4rxgulo][data-logo-slot="4"]{width:40px;height:40px}} 148</style> 149<link rel="stylesheet" href="/_astro/demo.SKPlMlYs.css"> 150<style>.personalized-modal[data-astro-cid-y42wqjr7]{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility 0s linear .2s}.personalized-modal[data-astro-cid-y42wqjr7][data-open=true]{opacity:1;visibility:visible;transition:opacity .2s ease-out,visibility 0s linear 0s}.personalized-modal__backdrop[data-astro-cid-y42wqjr7]{position:absolute;inset:0;background:#09090b99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.personalized-modal__card[data-astro-cid-y42wqjr7]{position:relative;z-index:1;width:100%;max-width:460px;max-height:calc(100vh - 3rem);overflow-y:auto;background:#fff;border-radius:1.25rem;padding:2.5rem 2rem 2rem;text-align:center;box-shadow:0 20px 60px -20px #0000004d,0 8px 24px -8px #0000001a;transform:scale(.96);transition:transform .2s ease-out}.personalized-modal[data-astro-cid-y42wqjr7][data-open=true] .personalized-modal__card[data-astro-cid-y42wqjr7]{transform:scale(1)}.personalized-modal__close[data-astro-cid-y42wqjr7]{position:absolute;top:.875rem;right:.875rem;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:999px;background:transparent;color:#71717a;cursor:pointer;transition:background .15s ease-out,color .15s ease-out}.personalized-modal__close[data-astro-cid-y42wqjr7]:hover{background:#f4f4f5;color:#18181b}.personalized-modal__close[data-astro-cid-y42wqjr7]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-palatinate-500)}.personalized-modal__lockup[data-astro-cid-y42wqjr7]{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.personalized-modal__logo-tile[data-astro-cid-y42wqjr7]{display:inline-flex;align-items:center;justify-content:center;width:64px;
150height:64px;border-radius:14px;background:#fff;padding:10px;box-shadow:0 1px 2px #0000000a,0 6px 20px #00000014}.personalized-modal__logo-tile--snitcher[data-astro-cid-y42wqjr7]{background:#f5f5ff}.personalized-modal__logo-tile[data-astro-cid-y42wqjr7] img[data-astro-cid-y42wqjr7]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.personalized-modal__logo-tile--company[data-astro-cid-y42wqjr7]{display:none}.personalized-modal[data-astro-cid-y42wqjr7][data-has-company-logo=true] .personalized-modal__logo-tile--company[data-astro-cid-y42wqjr7]{display:inline-flex}.personalized-modal[data-astro-cid-y42wqjr7][data-has-company-logo=true] .personalized-modal__lockup-glue[data-astro-cid-y42wqjr7]{display:inline}.personalized-modal__lockup-glue[data-astro-cid-y42wqjr7]{display:none;font-size:1.5rem;font-weight:600;color:#a1a1aa;line-height:1}.personalized-modal__heading[data-astro-cid-y42wqjr7]{font-size:1.5rem;line-height:1.2;font-weight:700;color:#18181b;margin:0 0 .75rem}.personalized-modal__body[data-astro-cid-y42wqjr7]{font-size:.9375rem;line-height:1.55;color:#52525b;margin:0 0 1.75rem}.personalized-modal__actions[data-astro-cid-y42wqjr7]{display:flex;flex-direction:column;align-items:stretch;gap:.5rem}.personalized-modal__cta[data-astro-cid-y42wqjr7]{justify-content:center;width:100%}.personalized-modal__dismiss[data-astro-cid-y42wqjr7]{display:inline-flex;align-items:center;justify-content:center;padding:.5rem .75rem;border:0;background:transparent;color:#71717a;font-size:.875rem;cursor:pointer;border-radius:.375rem;transition:color .15s ease-out}.personalized-modal__dismiss[data-astro-cid-y42wqjr7]:hover{color:#18181b}.personalized-modal__dismiss[data-astro-cid-y42wqjr7]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-palatinate-500)}@media (prefers-reduced-motion: reduce){.personalized-modal[data-astro-cid-y42wqjr7],.personalized-modal__card[data-astro-cid-y42wqjr7]{transition:none}} 151.underline-animated[data-astro-cid-drt2y2q3].ready .underline-path[data-astro-cid-drt2y2q3]{animation:drawStroke .3s ease-out forwards}@keyframes drawStroke{to{stroke-dashoffset:0}} 152.arrow-btn-icon-wrap{position:relative;width:16px;height:16px;overflow:hidden;display:flex;align-items:center;justify-content:center}.arrow-btn-icon{will-change:transform}.arrow-btn-icon.slide-in-right{animation:arrow-btn-slide-in-right .2s ease-in-out forwards}.arrow-btn-icon.slide-out-right{animation:arrow-btn-slide-out-right .2s ease-in-out forwards}.arrow-btn-icon.slide-in-left{animation:arrow-btn-slide-in-left .2s ease-in-out forwards}.arrow-btn-icon.slide-out-left{animation:arrow-btn-slide-out-left .2s ease-in-out forwards}.arrow-btn-icon.slide-in{animation:arrow-btn-slide-in-right .2s ease-in-out forwards}.arrow-btn-icon.slide-out{animation:arrow-btn-slide-out-right .2s ease-in-out forwards}@keyframes arrow-btn-slide-in-right{0%{transform:translate(0);opacity:1}50%{transform:translate(100%);opacity:0}50.01%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes arrow-btn-slide-out-right{0%{transform:translate(0);opacity:1}50%{transform:translate(-100%);opacity:0}50.01%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes arrow-btn-slide-in-left{0%{transform:translate(0);opacity:1}50%{transform:translate(-100%);opacity:0}50.01%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes arrow-btn-slide-out-left{0%{transform:translate(0);opacity:1}50%{transform:translate(100%);opacity:0}50.01%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}} 153.feature-card[href]{color:inherit;text-decoration:none}.feature-card[href]:hover{text-decoration:none} 154.scrollbar-hide[data-astro-cid-27qgd3zz]{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide[data-astro-cid-27qgd3zz]::-webkit-scrollbar{display:none} 155.pixel-reveal[data-astro-cid-kt72rz56]{display:inline-block;position:relative;white-space:nowrap}.pixel-reveal-text[data-astro-cid-kt72rz56]{display:inline-block;position:relative}.pixel-reveal-decorative[data-astro-cid-kt72rz56]{position:absolute;top:0;left:0;opacity:0;pointer-events:none;display:inline-block;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit;white-space:inherit;color:inherit}.pixel-word[data-astro-cid-kt72rz56]{display:inline;white-space:nowrap}.pixel-char[data-astro-cid-kt72rz56]{display:inline-block;position:relative;line-height:1em;vertical-align:baseline}.pixel-reveal-decorative[data-astro-cid-kt72rz56] .pixel-char[data-astro-cid-kt72rz56]{color:var(--pixel-color);overflow:visible}.pixel-dots[data-astro-cid-kt72rz56]{position:absolute;inset:-4px;pointer-events:none;opacity:0;z-index:-1}.pixel-dot[data-astro-cid-kt72rz56]{position:absolute;width:3px;height:3px;background:var(--brand-color, #4C4CFF);opacity:0;will-change:transform,opacity}.pixel-char-current[data-astro-cid-kt72rz56]{display:inline-block;position:relative;transition:transform .06s ease-out}.pixel-char[data-astro-cid-kt72rz56].scrambling .pixel-char-current[data-astro-cid-kt72rz56]{color:var(--brand-color, #4C4CFF);animation:pixel-scramble .06s ease-out}.pixel-char[data-astro-cid-kt72rz56].scrambling .pixel-dots[data-astro-cid-kt72rz56]{opacity:1}@keyframes pixel-scramble{0%{transform:translateY(-20%);opacity:.7}to{transform:translateY(0);opacity:1}}.pixel-char[data-astro-cid-kt72rz56].sparkle .pixel-char-current[data-astro-cid-kt72rz56]{animation:pixel-sparkle .15s ease-out}@keyframes pixel-sparkle{0%{filter:brightness(1)}30%{filter:brightness(1.8)}to{filter:brightness(1)}}.pixel-char[data-astro-cid-kt72rz56].revealed .pixel-char-current[data-astro-cid-kt72rz56]{color:inherit;animation:pixel-settle .25s cubic-bezier(.34,1.56,.64,1)}.pixel-char[data-astro-cid-kt72rz56].revealed .pixel-dots[data-astro-cid-kt72rz56]{animation:dots-scatter .4s ease-out forwards}@keyframes pixel-settle{0%{transform:translateY(-15%) scale(1.05);filter:brightness(1.3)}50%{transform:translateY(3%)}to{transform:translateY(0) scale(1);filter:brightness(1)}}@keyframes dots-scatter{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@media (prefers-reduced-motion: reduce){.pixel-reveal-decorative[data-astro-cid-kt72rz56]{display:none}.pixel-char-current[data-astro-cid-kt72rz56],.pixel-dots[data-astro-cid-kt72rz56],.pixel-dot[data-astro-cid-kt72rz56]{animation:none!important;transition:none!important}}.pixel-reveal[data-astro-cid-kt72rz56][data-animated=true] .pixel-reveal-text[data-astro-cid-kt72rz56]{opacity:0}
155.pixel-reveal[data-astro-cid-kt72rz56][data-animated=true] .pixel-reveal-decorative[data-astro-cid-kt72rz56],.pixel-reveal[data-astro-cid-kt72rz56][data-animated=true][data-complete=true] .pixel-reveal-text[data-astro-cid-kt72rz56]{opacity:1}.pixel-reveal[data-astro-cid-kt72rz56][data-animated=true][data-complete=true] .pixel-reveal-decorative[data-astro-cid-kt72rz56]{opacity:0} 156</style> 157<link rel="stylesheet" href="/_astro/FlipCountdown_astro_astro_type_style_index_0_lang.C_FS9Ten.css"> 158<link rel="stylesheet" href="/_astro/PageSection_astro_astro_type_style_index_0_lang.BD2u2Sx1.css"> 159<style>.divider-band[data-astro-cid-bj7qugvw]{margin-inline:calc(var(--section-px, 0px) * -1)}.divider-dots[data-astro-cid-bj7qugvw],.divider-lines[data-astro-cid-bj7qugvw]{position:relative}.divider-dots[data-astro-cid-bj7qugvw]:after,.divider-lines[data-astro-cid-bj7qugvw]:after{content:"";position:absolute;inset:0}.divider-dots[data-astro-cid-bj7qugvw]:after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24'><g opacity='0.4'><rect x='10.75' y='10.75' width='1.5' height='1.5' fill='%234c4cff'/></g></svg>");background-size:24px 24px;background-position:50% 50%}.divider-lines[data-astro-cid-bj7qugvw]:after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='6'><rect width='1' height='3' fill='%23e4e4e7'/></svg>");background-size:24px 6px;background-position:50% 0}[data-astro-cid-bj7qugvw][data-fade=bottom]:after{mask-image:linear-gradient(to bottom,black,transparent);-webkit-mask-image:linear-gradient(to bottom,black,transparent)}[data-astro-cid-bj7qugvw][data-fade=top]:after{mask-image:linear-gradient(to bottom,transparent,black);-webkit-mask-image:linear-gradient(to bottom,transparent,black)}[data-astro-cid-bj7qugvw][data-fade=both]:after{mask-image:linear-gradient(to bottom,transparent,black 35%,black 65%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,black 35%,black 65%,transparent)}.divider-lines[data-astro-cid-bj7qugvw][data-fade=top]:after{background-position:50% 100%} 160.carousel-visual[data-astro-cid-bjcxd7r3]{transition:opacity .3s ease-out} 161.carousel-progress-wrapper[data-astro-cid-algf2pu2]{opacity:0;transition:opacity .15s ease-out}.carousel-progress-visible[data-astro-cid-algf2pu2]{opacity:1}.carousel-progress[data-astro-cid-algf2pu2]{width:20px;height:20px;transform:rotate(-90deg)}.carousel-progress-track[data-astro-cid-algf2pu2]{fill:none;stroke:#e4e4e7;stroke-width:2}.carousel-progress-fill[data-astro-cid-algf2pu2]{fill:none;stroke:var(--color-palatinate-500);stroke-width:2;stroke-linecap:round;stroke-dasharray:50.265482;stroke-dashoffset:50.265482}.carousel-progress-active[data-astro-cid-algf2pu2]{animation:carousel-progress-fill var(--animation-duration, 10s) linear forwards}.carousel-progress-paused[data-astro-cid-algf2pu2]{animation-play-state:paused}@keyframes carousel-progress-fill{0%{stroke-dashoffset:50.265482}to{stroke-dashoffset:0}} 162</style> 163<link rel="stylesheet" href="/_astro/index_astro_astro_type_style_index_0_lang.BBVdYB7R.css"> 164<style>.footer-nav-link[data-astro-cid-fqw42ge2]{font-size:1rem;line-height:1.6;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.footer-nav-link[data-astro-cid-fqw42ge2]:hover{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.footer-bottom-link[data-astro-cid-fqw42ge2]{font-size:.875rem;line-height:1.25;--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.footer-bottom-link[data-astro-cid-fqw42ge2]:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.fingerprint-canvas[data-astro-cid-fqw42ge2]{display:block}.partner-arrow[data-astro-cid-fqw42ge2]{animation:partner-arrow-bob 3.2s ease-in-out infinite;transform-origin:80% 30%}@keyframes partner-arrow-bob{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-2px,1px) rotate(-5deg)}}@media (prefers-reduced-motion: reduce){.partner-arrow[data-astro-cid-fqw42ge2]{animation:none}} 165.blob-card-blob[data-astro-cid-gijzu423]{position:absolute;border-radius:50%;filter:blur(40px);will-change:transform;pointer-events:none;animation-play-state:paused}.blob-card-blob-1[data-astro-cid-gijzu423]{width:750px;height:650px;background:#00000040;top:-450px;left:-450px;animation:blob-card-drift-1 18s ease-in-out infinite;filter:blur(40px)}.blob-card-blob-2[data-astro-cid-gijzu423]{width:650px;height:650px;background:#0000004d;top:-300px;right:-400px;animation:blob-card-drift-2 22s ease-in-out infinite;filter:blur(40px)}.blob-card-blob-3[data-astro-cid-gijzu423]{width:700px;height:550px;background:#00000038;bottom:-400px;left:-350px;animation:blob-card-drift-3 26s ease-in-out infinite;filter:blur(40px)}.blob-card-blob-4[data-astro-cid-gijzu423]{width:550px;height:480px;background:#ffffff0a;top:-350px;right:-320px;animation:blob-card-drift-4 24s ease-in-out infinite;filter:blur(35px)}.blob-card-blob-5[data-astro-cid-gijzu423]{width:600px;height:550px;background:#0000000d;bottom:-380px;right:-400px;animation:blob-card-drift-5 30s ease-in-out infinite;filter:blur(35px)}.blob-card-noise[data-astro-cid-gijzu423]{position:absolute;inset:0;z-index:2;opacity:.35;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px}@keyframes blob-card-drift-1{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,40px) scale(1.1)}50%{transform:translate(60px,20px) scale(.95)}75%{transform:translate(20px,50px) scale(1.05)}}@keyframes blob-card-drift-2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-40px,30px) scale(1.15)}66%{transform:translate(-20px,-20px) scale(.9)}}@keyframes blob-card-drift-3{0%,to{transform:translate(0) scale(1)}20%{transform:translate(40px,-30px) scale(1.1)}
16540%{transform:translate(20px,40px) scale(.95)}60%{transform:translate(-30px,20px) scale(1.05)}80%{transform:translate(-20px,-40px) scale(1)}}@keyframes blob-card-drift-4{0%,to{transform:translate(0) scale(1)}30%{transform:translate(-50px,30px) scale(1.08)}60%{transform:translate(30px,-40px) scale(.92)}85%{transform:translate(-20px,15px) scale(1.05)}}@keyframes blob-card-drift-5{0%,to{transform:translate(0) scale(1)}25%{transform:translate(35px,25px) scale(.95)}50%{transform:translate(-25px,-35px) scale(1.12)}75%{transform:translate(15px,-20px) scale(1)}}@media (prefers-reduced-motion: reduce){.blob-card-blob[data-astro-cid-gijzu423]{animation:none}} 166@keyframes pop-in{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.integration-bento[data-astro-cid-7rb7ltoj][data-animate=true] .integration-logo[data-astro-cid-7rb7ltoj]{opacity:0;transform:scale(.3)}.integration-bento[data-astro-cid-7rb7ltoj][data-animate=true].animate-in .integration-logo[data-astro-cid-7rb7ltoj]{animation:pop-in .5s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:var(--delay, 0ms)}@media (prefers-reduced-motion: reduce){.integration-bento[data-astro-cid-7rb7ltoj][data-animate=true] .integration-logo[data-astro-cid-7rb7ltoj]{opacity:1;transform:scale(1)}.integration-bento[data-astro-cid-7rb7ltoj][data-animate=true].animate-in .integration-logo[data-astro-cid-7rb7ltoj]{animation:none;opacity:1;transform:scale(1)}} 167.testimonial-section__dot{width:8px;height:8px;border-radius:9999px;background-color:var(--ts-dot-inactive, rgba(63, 63, 70, .25));transition:background-color .2s ease,width .2s ease;cursor:pointer;border:0;padding:0}.testimonial-section__dot:hover{background-color:var(--ts-dot-inactive-hover, rgba(63, 63, 70, .5))}.testimonial-section__dot.is-active{background-color:var(--ts-dot-active, var(--color-palatinate-600, #3e3ee6));width:24px}.testimonial-section__dot:focus-visible{outline:2px solid var(--ts-dot-focus, var(--color-palatinate-500, #4c4cff));outline-offset:2px}@media (prefers-reduced-motion: reduce){.testimonial-section__dot{transition:none}} 168.testimonial-section__slide[data-astro-cid-7ajslof7]{grid-area:1 / 1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .7s ease;pointer-events:none}.testimonial-section__slide[data-astro-cid-7ajslof7].is-active{opacity:1;pointer-events:auto}@media (prefers-reduced-motion: reduce){.testimonial-section__slide[data-astro-cid-7ajslof7]{transition:none}} 169.page-section:has([data-testimonial-section])>.section-container{padding:0}.page-section:has([data-testimonial-section][data-variant=light]),.page-section:has([data-testimonial-section][data-variant=particles]){background-color:var(--color-lavender-50, #eef0ff)}[data-testimonial-section][data-variant=light],[data-testimonial-section][data-variant=particles]{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><g opacity='0.4'><path d='M24 23H23V24H24V23Z' fill='%234c4cff'/></g></svg>");background-size:48px 48px;background-position:50% 0}[data-testimonial-section][data-variant=grid]:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(ellipse 34% 52% at 50% 50%,#ffffffeb,#ffffff8c 45%,#fff0 75%),linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px);background-size:100% 100%,25px 25px,25px 25px;background-position:center,50% 50%,50% 50%;mask-image:radial-gradient(ellipse 46% 58% at 50% 50%,#000 0%,rgba(0,0,0,.85) 45%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 46% 58% at 50% 50%,#000 0%,rgba(0,0,0,.85) 45%,transparent 100%)}[data-testimonial-section][data-variant=grid]>*{position:relative;z-index:1}.page-section:has([data-testimonial-section][data-variant=dark]){background-color:#09090b}[data-testimonial-section][data-variant=dark]{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><g opacity='0.3'><path d='M24 23H23V24H24V23Z' fill='%23fafafa'/></g></svg>");background-size:48px 48px;background-position:50% 0} 170.tab-active-shadow[data-astro-cid-twm5uxey]{box-shadow:0 0 0 1px var(--alpha-border),0 1px 3px #0000001a}.badge-dark-inactive[data-astro-cid-twm5uxey]{background-color:#0003} 171</style> 172<link rel="stylesheet" href="/_astro/Navbar_astro_astro_type_style_index_0_lang.CnosfN-w.css"> 173<style>.g2-badge-wall__grid[data-astro-cid-ukhf4yhl]{margin-inline:calc(var(--section-px) * -1)}.g2-badge-wall__grid[data-astro-cid-ukhf4yhl]>*{border-radius:0;border-inline:0;box-shadow:none}@media (min-width: 1024px){.g2-badge-wall[data-astro-cid-ukhf4yhl]{margin-top:-4rem}.g2-badge-wall__grid[data-astro-cid-ukhf4yhl]>*{border-top:0}} 174.accordion[data-astro-cid-u4rtwtdm]:not(.accordion-dark) .accordion-trigger[data-astro-cid-u4rtwtdm]:hover{background-color:#f4f4f580}.accordion[data-astro-cid-u4rtwtdm].accordion-dark{transition:border-color .2s ease}.accordion[data-astro-cid-u4rtwtdm].accordion-dark:hover{border-color:#fff3!important}.accordion[data-astro-cid-u4rtwtdm]:not(.accordion-dark) .accordion-trigger[data-astro-cid-u4rtwtdm]{border-radius:1rem} 175.faq-answer a{color:inherit;text-decoration:underline;text-underline-offset:3px}.faq-answer a:hover{text-decoration:none} 176.hero-dot-grid[data-astro-cid-wlyiyr5g]{top:24px;left:50%;transform:translate(-50%);width:1050px;z-index:-30}.hero-dot-grid[data-astro-cid-wlyiyr5g] canvas[data-astro-cid-wlyiyr5g]{width:100%;height:auto;display:block;opacity:.75}@media (max-width: 1100px){.hero-dot-grid[data-astro-cid-wlyiyr5g]{width:900px}}@media (max-width: 768px){.hero-dot-grid[data-astro-cid-wlyiyr5g]{top:0;width:700px}.hero-dot-grid[data-astro-cid-wlyiyr5g] canvas[data-astro-cid-wlyiyr5g]{opacity:.6}}@media (max-width: 480px){.hero-dot-grid[data-astro-cid-wlyiyr5g]{width:600px}} 177.marquee-track[data-astro-cid-kijovlsi]{animation:marquee 60s linear infinite;animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(calc(var(--card-set-width) * -1))}}.marquee-track[data-astro-cid-kijovlsi] p[data-astro-cid-kijovlsi]{margin-bottom:0}@media (prefers-reduced-motion: reduce){.marquee-track[data-astro-cid-kijovlsi]{animation:none}} 178.measure-visual[data-astro-cid-a6yjhbsd] p[data-astro-cid-a6yjhbsd]{margin:0}.measure-source-pill[data-astro-cid-a6yjhbsd]{display:flex;align-items:center;gap:6px;background:#fff;padding:7px 14px;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .4s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}.measure-source-pill[data-astro-cid-a6yjhbsd].visible{opacity:1;transform:translateY(0)}.measure-source-pill[data-astro-cid-a6yjhbsd].-rotate-2.visible{transform:translateY(0) rotate(-2deg)}.measure-source-pill[data-astro-cid-a6yjhbsd].rotate-1.visible{transform:translateY(0) rotate(1deg)}.measure-visual[data-astro-cid-a6yjhbsd][data-hovering] .measure-source-pill[data-astro-cid-a6yjhbsd][data-pill-delay="0"].visible{transform:translate(-8px) translateY(-4px) rotate(-3deg)}.measure-visual[data-astro-cid-a6yjhbsd][data-hovering] .measure-source-pill[data-astro-cid-a6yjhbsd][data-pill-delay="1"].visible{transform:translate(8px) translateY(-4px) rotate(2deg)}.measure-visual[data-astro-cid-a6yjhbsd][data-hovering] .measure-source-pill[data-astro-cid-a6yjhbsd][data-pill-delay="2"].visible{transform:translateY(4px) rotate(1deg)}.measure-pill-label[data-astro-cid-a6yjhbsd]{font-size:12px;font-weight:600;color:#3f3f46;flex-shrink:0}.measure-pill-sep[data-astro-cid-a6yjhbsd]{font-size:12px;color:#d4d4d8;flex-shrink:0}.measure-pill-sub[data-astro-cid-a6yjhbsd]{font-size:12px;color:#a1a1aa;overflow:hidden;text-overflow:ellipsis;min-width:0}.measure-source-pill[data-astro-cid-a6yjhbsd] svg{width:16px;height:16px}@media (prefers-reduced-motion: reduce){.measure-source-pill[data-astro-cid-a6yjhbsd]{transition:none!important;opacity:1!important;transform:none!important}} 179.signal-card[data-astro-cid-l3ae6lyb]{transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1)}.feature-card:hover .signal-card[data-astro-cid-l3ae6lyb]{transform:scale(1.02) rotate(-2deg);box-shadow:0 0 0 1px var(--alpha-border),0 4px 12px #0000001a,0 2px 4px -1px #0000001a}.signal-visual[data-astro-cid-l3ae6lyb] p[data-astro-cid-l3ae6lyb]{margin:2px 0 0}.signal-timeline-item[data-astro-cid-l3ae6lyb]{opacity:0;transform:translateY(8px);transition:opacity .4s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1)}.signal-timeline-item[data-astro-cid-l3ae6lyb].visible{opacity:1;transform:translateY(0)}.signal-hover-event[data-astro-cid-l3ae6lyb]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1)}.signal-hover-event[data-astro-cid-l3ae6lyb]>div[data-astro-cid-l3ae6lyb]{overflow:hidden}.signal-hover-event[data-astro-cid-l3ae6lyb].visible{grid-template-rows:1fr}.signal-hover-content[data-astro-cid-l3ae6lyb]{opacity:0;transform:translateY(-8px);transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1)}.signal-hover-event[data-astro-cid-l3ae6lyb].visible .signal-hover-content[data-astro-cid-l3ae6lyb]{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.signal-timeline-item[data-astro-cid-l3ae6lyb],.signal-hover-event[data-astro-cid-l3ae6lyb],.signal-hover-content[data-astro-cid-l3ae6lyb]{opacity:1!important;transform:none!important;transition:none!important}} 180.engage-visual[data-astro-cid-ybnukg4e] p[data-astro-cid-ybnukg4e]{margin:0}.engage-flip-container[data-astro-cid-ybnukg4e]{perspective:800px}.engage-flip-inner[data-astro-cid-ybnukg4e]{position:relative;transition:transform .5s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}.engage-face[data-astro-cid-ybnukg4e]{backface-visibility:hidden;-webkit-backface-visibility:hidden}.engage-front[data-astro-cid-ybnukg4e]{position:relative}.engage-back[data-astro-cid-ybnukg4e]{position:absolute;inset:0;transform:rotateY(180deg)}.feature-card:hover .engage-flip-inner[data-astro-cid-ybnukg4e]{transform:rotateY(180deg)}@media (prefers-reduced-motion: reduce){.engage-flip-inner[data-astro-cid-ybnukg4e]{transition:none!important}} 181.snv-card[data-astro-cid-fjxicinn]{position:absolute;
181left:0;right:0;top:50%;opacity:0;transform:translateY(-50%) translate(0) scale(.85);transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .35s ease;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-radius:16px}.snv-body[data-astro-cid-fjxicinn]{background:#ffffffb8;border-radius:16px;padding:10px 14px;box-shadow:0 0 0 .5px #0000000f,0 1px 2px #0000000a,0 4px 12px #0000000f,0 12px 32px #0000000a}.snv-icon-wrap[data-astro-cid-fjxicinn]{width:22px;height:22px;border-radius:5px;background:#fff;box-shadow:0 0 0 .5px #00000014,0 1px 2px #0000000f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.snv-card[data-astro-cid-fjxicinn].s-top{opacity:1;transform:translateY(-50%) translate(0) scale(1)}.snv-card[data-astro-cid-fjxicinn].s-mid{opacity:1;transform:translateY(calc(-50% + 12px)) translate(0) scale(.96)}.snv-card[data-astro-cid-fjxicinn].s-bot{opacity:1;transform:translateY(calc(-50% + 22px)) translate(0) scale(.92)}.snv-card[data-astro-cid-fjxicinn].s-mid .snv-body[data-astro-cid-fjxicinn]{opacity:.92}.snv-card[data-astro-cid-fjxicinn].s-bot .snv-body[data-astro-cid-fjxicinn]{opacity:.82}.snv-group[data-astro-cid-fjxicinn].ready.hovered .snv-card[data-astro-cid-fjxicinn]{transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s ease}.snv-group[data-astro-cid-fjxicinn].ready.hovered .snv-card[data-astro-cid-fjxicinn].s-top{transform:translateY(calc(-50% - 93px)) translate(0) scale(1)}.snv-group[data-astro-cid-fjxicinn].ready.hovered .snv-card[data-astro-cid-fjxicinn].s-mid{transform:translateY(-50%) translate(0) scale(1)}.snv-group[data-astro-cid-fjxicinn].ready.hovered .snv-card[data-astro-cid-fjxicinn].s-bot{transform:translateY(calc(-50% + 93px)) translate(0) scale(1)}.snv-group[data-astro-cid-fjxicinn].ready.hovered .snv-card[data-astro-cid-fjxicinn] .snv-body[data-astro-cid-fjxicinn]{opacity:1;transition:opacity .3s ease}@media (prefers-reduced-motion: reduce){.snv-card[data-astro-cid-fjxicinn]{transition:none!important;opacity:1!important}.snv-card[data-astro-cid-fjxicinn]:nth-child(1){transform:translateY(calc(-50% + 93px)) translate(0) scale(1)!important}.snv-card[data-astro-cid-fjxicinn]:nth-child(2){transform:translateY(-50%) translate(0) scale(1)!important}.snv-card[data-astro-cid-fjxicinn]:nth-child(3){transform:translateY(calc(-50% - 93px)) translate(0) scale(1)!important}.snv-body[data-astro-cid-fjxicinn]{opacity:1!important}} 182@media (prefers-reduced-motion: reduce){.feedback-face[data-astro-cid-kububvzn]{transition:none!important}.feedback-face[data-astro-cid-kububvzn]:hover{transform:none!important}} 183.scrollbar-hide[data-astro-cid-iyzr5htm]{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide[data-astro-cid-iyzr5htm]::-webkit-scrollbar{display:none}.carousel-fade[data-astro-cid-iyzr5htm]{position:absolute;top:0;bottom:0;width:var(--fade-width);pointer-events:none;z-index:10;opacity:0;transition:opacity .3s ease-out}.carousel-fade-left[data-astro-cid-iyzr5htm]{left:0;background:linear-gradient(to right,var(--carousel-bg, rgb(250, 250, 250)),transparent)}.carousel-fade-right[data-astro-cid-iyzr5htm]{right:0;background:linear-gradient(to left,var(--carousel-bg, rgb(250, 250, 250)),transparent)}.carousel-fade[data-astro-cid-iyzr5htm][data-visible=true]{opacity:1} 184.tier-medal[data-astro-cid-7evo3er2]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--medal-size);height:var(--medal-size);border-radius:calc(var(--medal-size) / 7);border:1px solid var(--alpha-border);background-image:var(--medal-field)}.tier-medal__mark[data-astro-cid-7evo3er2]{display:block;width:72%;height:72%} 185.integration-gallery[data-astro-cid-lmzdgq7c]{margin:1.5rem 0 2rem}.gallery-item[data-astro-cid-lmzdgq7c]{padding:.5rem}.gallery-thumbnail[data-astro-cid-lmzdgq7c]{display:block} 186.lightbox-trigger[data-astro-cid-fcyb6yui]{cursor:zoom-in}.lightbox-overlay[data-astro-cid-fcyb6yui]{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s ease-out}.lightbox-overlay[data-astro-cid-fcyb6yui][data-open=true]{opacity:1;visibility:visible}.lightbox-backdrop[data-astro-cid-fcyb6yui]{position:absolute;inset:0;background:#000000d9;backdrop-filter:blur(4px)}.lightbox-close[data-astro-cid-fcyb6yui]{position:absolute;top:1.5rem;right:1.5rem;z-index:10;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:background .15s ease-out,transform .15s ease-out}.lightbox-close[data-astro-cid-fcyb6yui]:hover{background:#fff3;transform:scale(1.05)}.lightbox-close[data-astro-cid-fcyb6yui]:focus{outline:none;box-shadow:0 0 0 2px #ffffff80}.lightbox-nav[data-astro-cid-fcyb6yui]{position:absolute;top:50%;transform:translateY(-50%);z-index:10;display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;transition:background .15s ease-out,transform .15s ease-out,opacity .15s ease-out;opacity:0;pointer-events:none}.lightbox-overlay[data-astro-cid-fcyb6yui][data-open=true] .lightbox-nav[data-astro-cid-fcyb6yui][data-visible=true]{opacity:1;pointer-events:auto}.lightbox-nav[data-astro-cid-fcyb6yui]:hover{background:#fff3}.lightbox-nav[data-astro-cid-fcyb6yui]:focus{outline:none;box-shadow:0 0 0 2px #ffffff80}.lightbox-nav-prev[data-astro-cid-fcyb6yui]{left:1.5rem}.lightbox-nav-next[data-astro-cid-fcyb6yui]{right:1.5rem}.lightbox-content[data-astro-cid-fcyb6yui]{position:relative;z-index:1;max-width:90vw;display:flex;flex-direction:column;align-items:center;transform:scale(.95);transition:transform .2s ease-out}.lightbox-overlay[data-astro-cid-fcyb6yui][data-open=true] .lightbox-content[data-astro-cid-fcyb6yui]{transform:scale(1)}.lightbox-image[data-astro-cid-fcyb6yui]{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:.75rem;box-shadow:0 25px 50px -12px #00000080}.lightbox-caption[data-astro-cid-fcyb6yui]{color:#fffc;font-size:.875rem;line-height:1.5;text-align:center;margin-top:1rem;max-width:36rem;margin-left:auto;margin-right:auto} 187.code-block-content pre{margin:0;padding:1rem;background:transparent!important;font-size:.875rem;line-height:1.7}@media (min-width: 768px){.code-block-content pre{padding:1.5rem}}.code-block-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.code-block-content.show-line-numbers pre{counter-reset:line}.code-block-content.show-line-numbers .line:before{counter-increment:line;content:counter(line);display:inline-block;width:2rem;margin-right:1rem;text-align:right;color:#71717a} 188.bg-warning-banner{background-color:color-mix(in srgb,var(--color-honey-50) 60%,transparent)}.banner-content p,.banner-content strong,.banner-content em,.banner-content a,.banner-content span,.banner-content code{color:inherit!important;font-size:inherit!important}.banner-content p:last-of-type{margin-bottom:0!important}.prose .banner-content p,.prose .banner-content strong,.prose .banner-content em,.prose .banner-content a,.prose .banner-content span,.prose .banner-content code{color:inherit!important;font-size:inherit!important}.prose .banner-content p:last-of-type{margin-bottom:0!important} 189.campaign-offer-banner[data-astro-cid-ukinoyt4].hidden{display:none}.campaign-offer-banner[data-astro-cid-ukinoyt4].is-visible{display:block}
189.campaign-offer-banner[data-astro-cid-ukinoyt4].is-dismissing{transition:opacity .2s ease-out,max-height .2s ease-out,padding .2s ease-out;opacity:0;max-height:0;padding-top:0;padding-bottom:0} 190.btn-arrow-wrap{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.btn-arrow-icon{will-change:transform}.btn-arrow-icon.slide-in{animation:btn-arrow-slide-in .2s ease-in-out forwards}.btn-arrow-icon.slide-out{animation:btn-arrow-slide-out .2s ease-in-out forwards}@keyframes btn-arrow-slide-in{0%{transform:translate(0);opacity:1}50%{transform:translate(100%);opacity:0}50.01%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes btn-arrow-slide-out{0%{transform:translate(0);opacity:1}50%{transform:translate(-100%);opacity:0}50.01%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}} 191</style>
191<script type="module" src="/_astro/hoisted.BaopxmOR.js"></script>
vendor: 1 bytes, line 191
191
192<script type="module" src="/_astro/page.SrI4KvC9.js"></script>
192<script src="/_astro/Carousel.astro_astro_type_script_index_0_lang.B67nIeQ3.js" type="module"></script>
192<script src="/_astro/index.astro_astro_type_script_index_0_lang.C7CMHlP6.js" type="module"></script>
192<script src="/_astro/BackToBlogButton.astro_astro_type_script_index_0_lang.BTDMzPQk.js" type="module"></script>
192<script src="/_astro/HorizontalScroll.astro_astro_type_script_index_0_lang.DhdA3_ZH.js" type="module"></script>
192<script src="/_astro/Accordion.astro_astro_type_script_index_0_lang.DUPnZFt0.js" type="module"></script>
192<script src="/_astro/AnimatedNumber.astro_astro_type_script_index_0_lang.DiLzjbdR.js" type="module"></script>
192<script src="/_astro/AttributionProvider.astro_astro_type_script_index_0_lang.CONL_cQN.js" type="module"></script>
192<script src="/_astro/CampaignAttribution.astro_astro_type_script_index_0_lang.C5MTLdpH.js" type="module"></script>
192<script src="/_astro/HeroLogoScatter.astro_astro_type_script_index_0_lang.DPA_kUae.js" type="module"></script>
192<script src="/_astro/PersonalizationProvider.astro_astro_type_script_index_0_lang.9No35mQv.js" type="module"></script>
192<script src="/_astro/PersonalizedModal.astro_astro_type_script_index_0_lang.NHXdZ2Ld.js" type="module"></script>
192<script src="/_astro/PersonalizedIntercom.astro_astro_type_script_index_0_lang.Cx6CJISi.js" type="module"></script>
192<script src="/_astro/AnimatedUnderline.astro_astro_type_script_index_0_lang.0s19GudC.js" type="module"></script>
192<script src="/_astro/Select.astro_astro_type_script_index_0_lang.B0QIBLoc.js" type="module"></script>
192<script src="/_astro/PhoneInput.astro_astro_type_script_index_0_lang.95tY0pxw.js" type="module"></script>
192<script src="/_astro/Lightbox.astro_astro_type_script_index_0_lang.B5qU3jcM.js" type="module"></script>
192<script src="/_astro/ProgressBar.astro_astro_type_script_index_0_lang.DZB6HqlH.js" type="module"></script>
192<script src="/_astro/StatsBlock.astro_astro_type_script_index_0_lang.DIfLLOg2.js" type="module"></script>
192<script src="/_astro/CountdownTimer.astro_astro_type_script_index_0_lang.C7bnPoTa.js" type="module"></script>
192<script src="/_astro/FlipCountdown.astro_astro_type_script_index_0_lang.BJHLpb-p.js" type="module"></script>
192<script src="/_astro/FilterDropdown.astro_astro_type_script_index_0_lang.CDPXChMo.js" type="module"></script>
192<script src="/_astro/index.astro_astro_type_script_index_0_lang.zff9A3ip.js" type="module"></script>
192<script src="/_astro/Footer.astro_astro_type_script_index_0_lang.CvqvulG3.js" type="module"></script>
192<script src="/_astro/CustomerLogoGrid.astro_astro_type_script_index_0_lang.DHap_pOY.js" type="module"></script>
192<script src="/_astro/Navbar.astro_astro_type_script_index_0_lang.D9H0g9Xi.js" type="module"></script>
192<script src="/_astro/TestimonialSection.astro_astro_type_script_index_0_lang.DdsFcpa0.js" type="module"></script>
192<script src="/_astro/BookDemoHero.astro_astro_type_script_index_0_lang.BmWJMuzU.js" type="module"></script>
192<script src="/_astro/Tabs.astro_astro_type_script_index_0_lang.yml2lhxm.js" type="module"></script>
192<script src="/_astro/Pagination.astro_astro_type_script_index_0_lang.CJlGM6u6.js" type="module"></script>
192<script src="/_astro/BlogPostSidebar.astro_astro_type_script_index_0_lang.CXd27PrM.js" type="module"></script>
192<script src="/_astro/LogoQuoteCarousel.astro_astro_type_script_index_0_lang.uqbLt6h0.js" type="module"></script>
192<script src="/_astro/IntegrationBento.astro_astro_type_script_index_0_lang.BnJtnno8.js" type="module"></script>
192<script src="/_astro/Banner.astro_astro_type_script_index_0_lang.BhAmXWHC.js" type="module"></script>
192<script src="/_astro/CampaignOfferBanner.astro_astro_type_script_index_0_lang.Dz3tN17E.js" type="module"></script>
192<script src="/_astro/CurrencyProvider.astro_astro_type_script_index_0_lang._hfMJyOE.js" type="module"></script>
192<script src="/_astro/NativeHubSpotForm.astro_astro_type_script_index_0_lang.-2MM8nji.js" type="module"></script>
192</head> <body class="bg-white overscroll-y-none font-sans w-full overflow-x-clip"> <!-- Google Tag Manager (noscript) -->
vendor: 67 bytes, line 192
192<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
192GTM-THP98M8
vendor: 83 bytes, line 192
192" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
192<aside id="referral-offer-banner" class="referral-offer-banner hidden relative z-[60] w-full overflow-hidden border-b border-white/10 bg-[var(--color-lavender-600)] text-white" role="region" aria-label="Referral offer" hidden data-astro-cid-nahiwob6> <div class="pointer-events-none absolute inset-0 opacity-90" aria-hidden="true" style="background-image: linear-gradient(120deg, var(--color-lavender-600) 0%, var(--color-palatinate-500) 50%, var(--color-lavender-500) 100%);" data-astro-cid-nahiwob6></div> <div class="pointer-events-none absolute inset-0 opacity-50 mix-blend-overlay" aria-hidden="true" style="background-image: radial-gradient(circle at 15% 50%, rgba(255,255,255,0.35) 0, transparent 35%), radial-gradient(circle at 85% 50%, rgba(255,255,255,0.25) 0, transparent 40%);" data-astro-cid-nahiwob6></div> <div class="relative px-4 sm:px-6 lg:px-16" data-astro-cid-nahiwob6> <div class="mx-auto flex max-w-7xl items-center gap-3 py-2.5 sm:gap-4 sm:py-3" data-astro-cid-nahiwob6> <span class="hidden h-9 w-9 shrink-0 items-center justify-center rounded-full bg-white/15 ring-1 ring-inset ring-white/25 backdrop-blur-sm sm:inline-flex" aria-hidden="true" data-astro-cid-nahiwob6> <svg width="20" height="20" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M6.25 4.41667C6.25 3.08198 7.33198 2 8.66667 2C10.043 2 11.2603 2.68092 12 3.72427C12.7397 2.68092 13.957 2 15.3333 2C16.668 2 17.75 3.08198 17.75 4.41667C17.75 5.39677 17.4047 6.29622 16.8291 7H18.875C20.0486 7 21 7.9514 21 9.125C21 10.2986 20.0486 11.25 18.875 11.25H12.75V7H13.6667C15.0934 7 16.25 5.8434 16.25 4.41667C16.25 3.91041 15.8396 3.5 15.3333 3.5C13.9066 3.5 12.75 4.6566 12.75 6.08333V7H11.25V6.08333C11.25 4.6566 10.0934 3.5 8.66667 3.5C8.16041 3.5 7.75 3.91041 7.75 4.41667C7.75 5.8434 8.9066 7 10.3333 7H11.25V11.25H5.125C3.95139 11.25 3 10.2986 3 9.125C3 7.9514 3.95139 7 5.125 7H7.1709C6.5953 6.29622 6.25 5.39677 6.25 4.41667Z" fill="currentColor"/><path d="M12.75 12.75H20V18.25C20 19.7688 18.7688 21 17.25 21H12.75V12.75Z" fill="currentColor"/><path d="M11.25 12.75H4V18.25C4 19.7688 5.23122 21 6.75 21H11.25V12.75Z" fill="currentColor"/></svg> 193 </span> <div class="flex flex-1 flex-wrap items-center gap-x-2 gap-y-0.5 text-sm sm:text-base" data-astro-cid-nahiwob6> <span class="inline-flex sm:hidden" aria-hidden="true" data-astro-cid-nahiwob6> <svg width="18" height="18" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M6.25 4.41667C6.25 3.08198 7.33198 2 8.66667 2C10.043 2 11.2603 2.68092 12 3.72427C12.7397 2.68092 13.957 2 15.3333 2C16.668 2 17.75 3.08198 17.75 4.41667C17.75 5.39677 17.4047 6.29622 16.8291 7H18.875C20.0486 7 21 7.9514 21 9.125C21 10.2986 20.0486 11.25 18.875 11.25H12.75V7H13.6667C15.0934 7 16.25 5.8434 16.25 4.41667C16.25 3.91041 15.8396 3.5 15.3333 3.5C13.9066 3.5 12.75 4.6566 12.75 6.08333V7H11.25V6.08333C11.25 4.6566 10.0934 3.5 8.66667 3.5C8.16041 3.5 7.75 3.91041 7.75 4.41667C7.75 5.8434 8.9066 7 10.3333 7H11.25V11.25H5.125C3.95139 11.25 3 10.2986 3 9.125C3 7.9514 3.95139 7 5.125 7H7.1709C6.5953 6.29622 6.25 5.39677 6.25 4.41667Z" fill="currentColor"/><path d="M12.75 12.75H20V18.25C20 19.7688 18.7688 21 17.25 21H12.75V12.75Z" fill="currentColor"/><path d="M11.25 12.75H4V18.25C4 19.7688 5.23122 21 6.75 21H11.25V12.75Z" fill="currentColor"/></svg> 194 </span> <span class="font-semibold tracking-tight" data-astro-cid-nahiwob6> 195You've been referred â enjoy <span class="whitespace-nowrap" data-astro-cid-nahiwob6>15% off</span> your first purchase 196</span> <span class="hidden text-white/80 sm:inline" data-astro-cid-nahiwob6> 197Applied automatically when you subscribe. 198</span> </div> <a href="https://app.snitcher.com/register" class="hidden shrink-0 items-center gap-1.5 rounded-full bg-white px-4 py-1.5 text-sm font-semibold text-lavender-700 shadow-sm transition-colors hover:bg-zinc-100 sm:inline-flex" data-referral-cta data-astro-cid-nahiwob6> 199Start free 200<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" width="14" height="14" aria-hidden="true" data-astro-cid-nahiwob6> <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-nahiwob6></path> </svg> </a> <button type="button" class="referral-offer-dismiss group shrink-0 rounded-full p-1.5 text-white/80 transition-colors hover:bg-white/15 hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60" aria-label="Dismiss referral offer" data-astro-cid-nahiwob6> <svg width="18" height="18" class="text-current" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M17.2197 5.71967C17.5126 5.42678 17.9873 5.42678 18.2802 5.71967C18.5731 6.01256 18.5731 6.48732 18.2802 6.78022L13.0605 11.9999L18.2802 17.2197C18.5731 17.5126 18.5731 17.9873 18.2802 18.2802C17.9873 18.5731 17.5126 18.5731 17.2197 18.2802L11.9999 13.0605L6.78022 18.2802C6.48732 18.5731 6.01256 18.5731 5.71967 18.2802C5.42678 17.9873 5.42678 17.5126 5.71967 17.2197L10.9394 11.9999L5.71967 6.78022C5.42678 6.48732 5.42678 6.01256 5.71967 5.71967C6.01256 5.42678 6.48732 5.42678 6.78022 5.71967L11.9999 10.9394L17.2197 5.71967Z" fill="currentColor"/></svg> 201 </button> </div> </div> </aside> <aside id="campaign-offer-banner" class="campaign-offer-banner hidden relative z-[60] w-full overflow-hidden border-b border-white/10 bg-[var(--color-lavender-600)] text-white" role="region" aria-label="Campaign offer" hidden data-astro-cid-ukinoyt4> <div class="pointer-events-none absolute inset-0 opacity-90" aria-hidden="true" style="background-image: linear-gradient(120deg, var(--color-lavender-600) 0%, var(--color-palatinate-500) 50%, var(--color-lavender-500) 100%);" data-astro-cid-ukinoyt4></div> <div class="pointer-events-none absolute inset-0 opacity-50 mix-blend-overlay" aria-hidden="true" style="background-image: radial-gradient(circle at 15% 50%, rgba(255,255,255,0.35) 0, transparent 35%), radial-gradient(circle at 85% 50%, rgba(255,255,255,0.25) 0, transparent 40%);" data-astro-cid-ukinoyt4></div> <div class="relative px-4 sm:px-6 lg:px-16" data-astro-cid-ukinoyt4> <div class="mx-auto flex max-w-7xl items-center gap-3 py-2.5 sm:gap-4 sm:py-3" data-astro-cid-ukinoyt4> <span class="hidden h-9 w-9 shrink-0 items-center justify-center rounded-full bg-white/15 ring-1 ring-inset ring-white/25 backdrop-blur-sm sm:inline-flex" aria-hidden="true" data-astro-cid-ukinoyt4> <svg width="20" height="20" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M6.25 4.41667C6.25 3.08198 7.33198 2 8.66667 2C10.043 2 11.2603 2.68092 12 3.72427C12.7397 2.68092 13.957 2 15.3333 2C16.668 2 17.75 3.08198 17.75 4.41667C17.75 5.39677 17.4047 6.29622 16.8291 7H18.875C20.0486 7 21 7.9514 21 9.125C21 10.2986 20.0486 11.25 18.875 11.25H12.75V7H13.6667C1
2015.0934 7 16.25 5.8434 16.25 4.41667C16.25 3.91041 15.8396 3.5 15.3333 3.5C13.9066 3.5 12.75 4.6566 12.75 6.08333V7H11.25V6.08333C11.25 4.6566 10.0934 3.5 8.66667 3.5C8.16041 3.5 7.75 3.91041 7.75 4.41667C7.75 5.8434 8.9066 7 10.3333 7H11.25V11.25H5.125C3.95139 11.25 3 10.2986 3 9.125C3 7.9514 3.95139 7 5.125 7H7.1709C6.5953 6.29622 6.25 5.39677 6.25 4.41667Z" fill="currentColor"/><path d="M12.75 12.75H20V18.25C20 19.7688 18.7688 21 17.25 21H12.75V12.75Z" fill="currentColor"/><path d="M11.25 12.75H4V18.25C4 19.7688 5.23122 21 6.75 21H11.25V12.75Z" fill="currentColor"/></svg> 202 </span> <div class="flex flex-1 flex-wrap items-center gap-x-2 gap-y-0.5 text-sm sm:text-base" data-astro-cid-ukinoyt4> <span class="inline-flex sm:hidden" aria-hidden="true" data-astro-cid-ukinoyt4> <svg width="18" height="18" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M6.25 4.41667C6.25 3.08198 7.33198 2 8.66667 2C10.043 2 11.2603 2.68092 12 3.72427C12.7397 2.68092 13.957 2 15.3333 2C16.668 2 17.75 3.08198 17.75 4.41667C17.75 5.39677 17.4047 6.29622 16.8291 7H18.875C20.0486 7 21 7.9514 21 9.125C21 10.2986 20.0486 11.25 18.875 11.25H12.75V7H13.6667C15.0934 7 16.25 5.8434 16.25 4.41667C16.25 3.91041 15.8396 3.5 15.3333 3.5C13.9066 3.5 12.75 4.6566 12.75 6.08333V7H11.25V6.08333C11.25 4.6566 10.0934 3.5 8.66667 3.5C8.16041 3.5 7.75 3.91041 7.75 4.41667C7.75 5.8434 8.9066 7 10.3333 7H11.25V11.25H5.125C3.95139 11.25 3 10.2986 3 9.125C3 7.9514 3.95139 7 5.125 7H7.1709C6.5953 6.29622 6.25 5.39677 6.25 4.41667Z" fill="currentColor"/><path d="M12.75 12.75H20V18.25C20 19.7688 18.7688 21 17.25 21H12.75V12.75Z" fill="currentColor"/><path d="M11.25 12.75H4V18.25C4 19.7688 5.23122 21 6.75 21H11.25V12.75Z" fill="currentColor"/></svg> 203 </span> <a href="#" class="font-semibold tracking-tight hover:underline" data-campaign-headline data-astro-cid-ukinoyt4></a> <span class="hidden text-white sm:inline" data-campaign-detail data-astro-cid-ukinoyt4></span> <span class="whitespace-nowrap font-semibold text-white" data-campaign-countdown data-astro-cid-ukinoyt4></span> </div> <a href="#" class="hidden shrink-0 items-center gap-1.5 rounded-full bg-white px-4 py-1.5 text-sm font-semibold text-lavender-700 shadow-sm transition-colors hover:bg-zinc-100 sm:inline-flex" data-campaign-cta data-astro-cid-ukinoyt4> <span data-campaign-cta-label data-astro-cid-ukinoyt4>Claim offer</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" width="14" height="14" aria-hidden="true" data-astro-cid-ukinoyt4> <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-ukinoyt4></path> </svg> </a> <button type="button" class="campaign-offer-dismiss group shrink-0 rounded-full p-1.5 text-white/80 transition-colors hover:bg-white/15 hover:text-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60" aria-label="Dismiss campaign offer" data-astro-cid-ukinoyt4> <svg width="18" height="18" class="text-current" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M17.2197 5.71967C17.5126 5.42678 17.9873 5.42678 18.2802 5.71967C18.5731 6.01256 18.5731 6.48732 18.2802 6.78022L13.0605 11.9999L18.2802 17.2197C18.5731 17.5126 18.5731 17.9873 18.2802 18.2802C17.9873 18.5731 17.5126 18.5731 17.2197 18.2802L11.9999 13.0605L6.78022 18.2802C6.48732 18.5731 6.01256 18.5731 5.71967 18.2802C5.42678 17.9873 5.42678 17.5126 5.71967 17.2197L10.9394 11.9999L5.71967 6.78022C5.42678 6.48732 5.42678 6.01256 5.71967 5.71967C6.01256 5.42678 6.48732 5.42678 6.78022 5.71967L11.9999 10.9394L17.2197 5.71967Z" fill="currentColor"/></svg> 204 </button> </div> </div> </aside>
204<script type="application/json" id="campaign-offer-data">{"close":{"agency":{"path":"/lp/offer/close-crm/agencies","claimEndDate":"2026-09-30T23:59:59+02:00","signupUrl":"https://app.snitcher.com/register?utm_source=close&utm_medium=referral&utm_campaign=close-2026q3-offer-agency","ctaLabel":"Claim 1,200 leads per client","bannerHeadline":"Close agency offer: 1,200 free leads for every client you onboard","bannerDetail":"Plus 50% off Snitcher for life for your agency."},"end-user":{"path":"/lp/offer/close-crm","claimEndDate":"2026-09-30T23:59:59+02:00","signupUrl":"https://app.snitcher.com/register?utm_source=close&utm_medium=referral&utm_campaign=close-2026q3-offer-enduser","ctaLabel":"Claim 1,200 free leads","bannerHeadline":"Close customer offer: 1,200 free leads on any Snitcher plan","bannerDetail":"100 extra leads a month, for a year, on us."}}}</script>
204 <nav class="sticky top-0 z-50 w-full border-b transition-[border-color,box-shadow] duration-200" id="navbar" data-astro-cid-voiollt5> <!-- Background overlay --> <div id="navbar-bg" class="pointer-events-none absolute inset-0 z-0 opacity-0 transition-opacity duration-200 bg-white" data-astro-cid-voiollt5></div> <!-- Main navbar content --> <div class="relative z-10 w-full pt-4 pb-4" data-astro-cid-voiollt5> <div class="px-4 sm:px-6 lg:px-16" data-astro-cid-voiollt5> <div class="max-w-7xl mx-auto" data-astro-cid-voiollt5> <div class="relative flex items-center justify-between" data-astro-cid-voiollt5> <!-- Logo --> <div class="flex flex-1 items-center pointer-events-none" data-astro-cid-voiollt5> <a href="/" class="relative z-10 flex items-center gap-2.5 pointer-events-auto" data-astro-cid-voiollt5> <img src="/logo-symbol.svg" alt="Snitcher symbol" class="h-8 w-8 shrink-0 object-contain" loading="lazy" decoding="auto" data-astro-cid-voiollt5> <img src="/logo-wordmark.svg" alt="Snitcher" class="h-6 w-32 shrink-0 object-contain" loading="lazy" decoding="auto" data-astro-cid-voiollt5> </a> </div> <div class="absolute inset-0 hidden items-center lg:flex" data-astro-cid-voiollt5> <!-- Left nav group --> <div class="flex flex-1 items-center justify-end gap-1 xl:gap-2" data-astro-cid-voiollt5> <!-- Product Dropdown --> <div class="nav-dropdown-wrapper" data-dropdown="product" data-astro-cid-voiollt5> <button type="button" class="nav-link nav-link-dropdown" data-astro-cid-voiollt5> 205Product 206<span class="chevron-icon" data-astro-cid-voiollt5></span> </button> <div class="nav-dropdown-panel nav-dropdown-panel-wide bg-white" data-astro-cid-voiollt5> <div class="grid grid-cols-[320px_320px_192px] gap-x-6 px-6" data-astro-cid-voiollt5> <!-- Products Column --> <div class="flex flex-col gap-5 py-6" data-astro-cid-voiollt5> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>GTM Platform</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/platform" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-primary-500 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M3 5.75C3 4.23122 4.23122 3 5.75 3H8.25C8.66421 3 9 3.33579 9 3.75C9 4.16421 8.66421 4.5 8.25 4.5H5.75C5.05964 4.5 4.5 5.05964 4.5 5.75V8.25C4.5 8.66421 4.16421 9 3.75 9C3.33579 9 3 8.66421 3 8.25V5.75ZM15 3.75C15 3.33579 15.3358 3 15.75 3H18.25C19.7688 3 21 4.23122 21 5.75V8.25C21 8.66421 20.6642 9 20.25 9C19.8358 9 19.5 8.66421 19.5 8.25V5.75C19.5 5.05964 18.9404 4.5 18.25 4.5H15.75C15.3358 4.5 15 4.16421 15 3.75ZM7.75 8C8.16421 8 8.5 8.33579 8.5 8.75V10.25C8.5 10.6642 8.16421 11 7.75 11C7.33579 11 7 10.6642 7 10.25V8.75C7 8.33579 7.33579 8 7.75 8ZM12.25 8C12.6642 8 13 8.33579 13 8.75V11C13 12.4029 11.9501 13.5595 10.5928 13.7288C10.1818 13.78 9.80702 13.4884 9.75576 13.0773C9.70451 12.6663 9.99616 12.2915 10.4072 12.2403C11.023 12.1635 11.5 11.6369 11.5 11V8.75C11.5 8.33579 11.8358 8 12.25 8ZM16.25 8C16.6642 8 17 8.33579 17 8.75V10.25C17 10.6642 16.6642 11 16.25 11C15.8358 11 15.5 10.6642 15.5 10.25V8.75C15.5 8.33579 15.8358 8 16.25 8ZM8.3508 15.3218C8.5582 14.9632 9.017 14.8407 9.37554 15.0481C10.147 15.4944 11.0425 15.75 12 15.75C12.9575 15.75 13.853 15.4944 14.6245 15.0481C14.983 14.8407 15.4418 14.9632 15.6492 15.3218C15.8566 15.6803 15.7341 16.1391 15.3755 16.3465C14.3819 16.9213 13.2282 17.25 12 17.25C10.7718 17.25 9.61805 16.9213 8.62446 16.3465C8.26591 16.1391 8.14339 15.6803 8.3508 15.3218ZM3.75 15C4.16421 15 4.5 15.3358 4.5 15.75V18.25C4.5 18.9404 5.05964 19.5 5.75 19.5H8.25C8.66421 19.5 9 19.8358 9 20.25C9 20.6642 8.66421 21 8.25 21H5.75C4.23122 21 3 19.7688 3 18.25V15.75C3 15.3358 3.33579 15 3.75 15ZM20.25 15C20.6642 15 21 15.3358 21 15.75V18.25C21 19.7688 19.7688 21 18.25 21H15.75C15.3358 21 15 20.6642 15 20.25C15 19.8358 15.3358 19.5 15.75 19.5H18.25C18.9404 19.5 19.5 18.9404 19.5 18.25V15.75C19.5 15.3358 19.8358 15 20.25 15Z" fill="currentColor"/></svg> 207 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Platform </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Turn anonymous traffic into pipeline</span> </div> </a> </div> </div> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Powered by Snitcher</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/radar" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.30523 9.50117C3.86611 9.76669 3.33777 10 2.75 10C2.33579 10 2 9.66421 2 9.25C2 8.83579 2.33579 8.5 2.75 8.5C2.94339 8.5 3.19298 8.42081 3.52907 8.21758C3.86431 8.01487 4.20974 7.73714 4.6035 7.41762C4.61402 7.40908 4.62458 7.40051 4.63519 7.3919C5.00222 7.09399 5.41507 6.7589 5.8368 6.50087C6.26916 6.23634 6.79252 6 7.375 6C7.96055 6 8.4868 6.23456 8.9231 6.49968C9.35333 6.76112 9.77246 7.10128 10.1437 7.40254L10.1623 7.41763C10.5569 7.73789 10.9012 8.01573 11.2347 8.21876C11.5694 8.42254 11.814 8.5 12 8.5C12.1825 8.5 12.4248 8.42337 12.7589 8.21931C13.0916 8.01613 13.4353 7.73823 13.8304 7.41763L13.8429 7.40749C14.216 7.10467 14.6381 6.76215 15.0723 6.49914C15.5104 6.23375 16.038 6 16.625 6C17.2062 6 17.7284 6.23708 18.1592 6.50135C18.5775 6.75799 18.9878 7.09104 19.3531 7.38759L19.3901 7.41761C19.7835 7.73684 20.1294 8.01452 20.4654 8.21711C20.8021 8.42013 21.0537 8.5 21.25 8.5C21.6642 8.5 22 8.83579 22 9.25C22 9.66421 21.6642 10 21.25 10C20.661 10 20.1315 9.76737 19.6908 9.50164C19.2509 9.23638 18.8247 8.89051 18.4488 8.58549L18.445 8.58239C18.0493 8.26129 17.7063 7.98331 17.3747 7.7799C17.0415 7.57542 16.8025 7.5 16.625 7.5C16.4335 7.5 16.1852 7.57875 15.8495 7.78211C15.5147 7.98491 15.1695 8.26266 14.7756 8.58237L14.7473 8.60535C14.3791 8.90413 13.9647 9.24053 13.5408 9.49944C13.1074 9.76413 12.5833 10 12 10C11.4153 10 10.8898 9.76496 10.4546 9.49999C10.0267 9.23949 9.60936 8.90074 9.2393 8.6004L9.21708 8.58237C8.82269 8.26232 8.47811 7.9845 8.14415 7.78157C7.80905 7.57794 7.56305 7.5 7.375 7.5C7.19444 7.5 6.95344 7.57616 6.61965 7.78038C6.28742 7.98365 5.94399 8.26158 5.54867 8.58238L5.53954 8.58978C5.16532 8.89346 4.74163 9.23728 4.3
2070523 9.50117ZM4.30523 17.5012C3.86611 17.7667 3.33777 18 2.75 18C2.33579 18 2 17.6642 2 17.25C2 16.8358 2.33579 16.5 2.75 16.5C2.94339 16.5 3.19298 16.4208 3.52907 16.2176C3.86431 16.0149 4.20974 15.7371 4.6035 15.4176L4.6352 15.3919C5.00223 15.094 5.41507 14.7589 5.8368 14.5009C6.26916 14.2363 6.79252 14 7.375 14C7.96055 14 8.4868 14.2346 8.9231 14.4997C9.35334 14.7611 9.77247 15.1013 10.1437 15.4025L10.1623 15.4176C10.5569 15.7379 10.9012 16.0157 11.2347 16.2188C11.5694 16.4225 11.814 16.5 12 16.5C12.1825 16.5 12.4248 16.4234 12.7589 16.2193C13.0916 16.0161 13.4353 15.7382 13.8304 15.4176L13.8429 15.4075C14.216 15.1047 14.6381 14.7622 15.0723 14.4991C15.5104 14.2337 16.038 14 16.625 14C17.2062 14 17.7284 14.2371 18.1592 14.5014C18.5775 14.758 18.9878 15.091 19.3531 15.3876C19.3655 15.3976 19.3778 15.4076 19.3901 15.4176C19.7835 15.7368 20.1294 16.0145 20.4654 16.2171C20.8021 16.4201 21.0537 16.5 21.25 16.5C21.6642 16.5 22 16.8358 22 17.25C22 17.6642 21.6642 18 21.25 18C20.661 18 20.1315 17.7674 19.6908 17.5016C19.2509 17.2364 18.8247 16.8905 18.4488 16.5855L18.445 16.5824C18.0493 16.2613 17.7063 15.9833 17.3747 15.7799C17.0415 15.5754 16.8025 15.5 16.625 15.5C16.4335 15.5 16.1852 15.5788 15.8495 15.7821C15.5147 15.9849 15.1695 16.2627 14.7756 16.5824L14.7472 16.6054C14.3791 16.9041 13.9647 17.2405 13.5408 17.4994C13.1074 17.7641 12.5833 18 12 18C11.4153 18 10.8898 17.765 10.4546 17.5C10.0267 17.2395 9.60936 16.9007 9.2393 16.6004L9.21708 16.5824C8.82269 16.2623 8.47811 15.9845 8.14415 15.7816C7.80905 15.5779 7.56305 15.5 7.375 15.5C7.19444 15.5 6.95344 15.5762 6.61965 15.7804C6.28742 15.9837 5.94399 16.2616 5.54867 16.5824L5.53955 16.5898C5.16533 16.8935 4.74164 17.2373 4.30523 17.5012Z" fill="currentColor"/></svg> 208 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Radar </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Embed visitor intelligence in product</span> </div> </a><a href="/ip-to-company-api" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12ZM14.5565 8.36774C15.2096 8.18959 15.809 8.78895 15.6309 9.44213L14.5114 13.5467C14.3833 14.0164 14.0164 14.3833 13.5467 14.5114L9.44213 15.6309C8.78894 15.809 8.18959 15.2096 8.36774 14.5565L9.48716 10.4519C9.61526 9.98221 9.98221 9.61526 10.4519 9.48715L14.5565 8.36774Z" fill="currentColor"/></svg> 209 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> IP to Company </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Resolve any IP to a company via API</span> </div> </a> </div> </div> </div> <!-- How It Works Column --> <div class="flex flex-col py-6" data-astro-cid-voiollt5> <span class="mb-3 px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>How It Works</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/identify" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.75 3C4.23122 3 3 4.23122 3 5.75V18.25C3 19.7688 4.23122 21 5.75 21H13.5833C13.568 20.9851 13.5528 20.9701 13.5377 20.955C11.4874 18.9047 11.4874 15.5806 13.5377 13.5303C15.5879 11.4801 18.9121 11.4801 20.9623 13.5303C20.975 13.543 20.9875 13.5557 21 13.5684V5.75C21 4.23122 19.7688 3 18.25 3H5.75ZM10.9896 7.15224C11.321 7.40077 11.3881 7.87087 11.1396 8.20224L9.26797 10.6978C9.02914 11.0162 8.58314 11.0926 8.25194 10.8718L7.12694 10.1218C6.7823 9.89203 6.68917 9.42637 6.91893 9.08173C7.1487 8.73708 7.61435 8.64395 7.95899 8.87372L8.49366 9.23016L9.9396 7.30224C10.1881 6.97087 10.6582 6.90371 10.9896 7.15224ZM13.058 9C13.058 8.58579 13.3937 8.25 13.808 8.25H16.308C16.7222 8.25 17.058 8.58579 17.058 9C17.058 9.41421 16.7222 9.75 16.308 9.75H13.808C13.3937 9.75 13.058 9.41421 13.058 9ZM10.9896 13.1534C11.321 13.4019 11.3881 13.872 11.1396 14.2034L9.26797 16.6989C9.02914 17.0173 8.58314 17.0937 8.25194 16.8729L7.12694 16.1229C6.7823 15.8932 6.68917 15.4275 6.91893 15.0829C7.14869 14.7382 7.61435 14.6451 7.95899 14.8748L8.49366 15.2313L9.9396 13.3034C10.1881 12.972 10.6582 12.9048 10.9896 13.1534Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M18.841 15.6517C17.9623 14.773 16.5377 14.773 15.659 15.6517C14.7803 16.5303 14.7803 17.955 15.659 18.8336C16.5377 19.7123 17.9623 19.7123 18.841 18.8336C19.7197 17.955 19.7197 16.5303 18.841 15.6517ZM14.5983 14.591C16.0628 13.1265 18.4372 13.1265 19.9016 14.591C21.1845 15.8738 21.3436 17.8549 20.3789 19.3109L21.7803 20.7123C22.0732 21.0052 22.0732 21.4801 21.7803 21.773C21.4874 22.0659 21.0126 22.0659 20.7197 21.773L19.3183 20.3716C17.8623 21.3362 15.8812 21.1771 14.5983 19.8943C13.1339 18.4298 13.1339 16.0555 14.5983 14.591Z" fill="currentColor"/></svg> 210 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Identify </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>See who visits your site</span> </div> </a><a href="/signal" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M11.5455 15.7345C9.45546 15.1509 7.58124 14.7024 5.5 15.5655V21.2496C5.5 21.6638 5.16421 21.9996 4.75 21.9996C4.33579 21.9996 4 21.6638 4 21.2496V4.39872C4 3.74584 4.37163 3.093 5.04245 2.82695C7.52875 1.84088 9.76493 2.37886 11.7734 2.93538C11.9051 2.97188 12.0357 3.00836 12.1653 3.04455C14.0634 3.57485 15.7401 4.04331 17.5642 3.60129C18.6368 3.34137 20 4.04343 20 5.38675V14.4616C20 15.1144 19.6284 15.7673
21018.9576 16.0333C16.3236 17.078 13.9537 16.4115 11.8464 15.8189C11.7455 15.7906 11.6452 15.7623 11.5455 15.7345Z" fill="currentColor"/></svg> 211 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Signal </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Spot intent as it happens</span> </div> </a><a href="/automate" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M9.32916 2C8.70285 2 8.12428 2.33472 7.81208 2.87768L3.21208 10.8777C2.54125 12.0443 3.38339 13.5 4.72916 13.5H7.67252C7.83072 13.5 7.94915 13.6451 7.91745 13.8001L6.68268 19.8386C6.33503 21.5388 8.40755 22.6537 9.63464 21.4267L20.5739 10.4874C21.6763 9.385 20.8955 7.5 19.3364 7.5H16.8687C16.6828 7.5 16.562 7.30442 16.6451 7.1382L17.9479 4.53262C18.5296 3.36905 17.6835 2 16.3826 2H9.32916Z" fill="currentColor"/></svg> 212 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Automate </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Trigger workflows instantly</span> </div> </a><a href="/engage" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M1.46783 6.05797C0.265136 4.9889 1.02132 3 2.63047 3H21.2788C22.6218 3 23.4643 4.45027 22.799 5.61691L13.6528 21.6554C12.8643 23.038 10.7893 22.7356 10.4282 21.1855L8.36566 12.3316L14.9744 8.65542C15.3364 8.45407 15.4666 7.9974 15.2653 7.63542C15.0639 7.27344 14.6072 7.14322 14.2453 7.34458L7.27632 11.2211L1.46783 6.05797Z" fill="currentColor"/></svg> 213 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Engage </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Reach accounts at the right time</span> </div> </a><a href="/measure" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.75 3C4.16421 3 4.5 3.33579 4.5 3.75V15.3456L7.60248 12.2431C8.60731 11.2383 10.2364 11.2383 11.2413 12.2431C11.6603 12.6621 12.3397 12.6621 12.7587 12.2431L15.2117 9.79013C16.2856 8.71619 18.0269 8.71619 19.1008 9.79013L19.7491 10.4384C20.042 10.7313 20.042 11.2062 19.7491 11.4991C19.4562 11.792 18.9813 11.792 18.6884 11.4991L18.0401 10.8508C17.552 10.3626 16.7605 10.3626 16.2724 10.8508L13.8194 13.3038C12.8146 14.3086 11.1854 14.3086 10.1806 13.3038C9.76157 12.8847 9.08218 12.8847 8.66314 13.3038L4.5 17.4669V18.25C4.5 18.9404 5.05964 19.5 5.75 19.5H20.25C20.6642 19.5 21 19.8358 21 20.25C21 20.6642 20.6642 21 20.25 21H5.75C4.23122 21 3 19.7688 3 18.25V3.75C3 3.33579 3.33579 3 3.75 3Z" fill="currentColor"/></svg> 214 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Measure </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Prove & scale what works best</span> </div> </a> </div> </div> <!-- Explore Column --> <div class="flex flex-col border-l pl-6 py-6 border-zinc-200" data-astro-cid-voiollt5> <span class="mb-3 px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Explore</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/changelog" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Changelog </span> </a><a href="/integrations" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Integrations </span> </a><a href="https://trust.snitcher.com" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Trust centre <svg width="14" height="14" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 215 </span> </a><a href="/demo" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Talk to sales </span> </a> </div> </div> </div> </div> </div> <!-- Solutions Dropdown --> <div class="nav-dropdown-wrapper" data-dropdown="solutions" data-astro-cid-voiollt5> <button type="button" class="nav-link nav-link-dropdown" data-astro-cid-voiollt5> 216Solutions 217<span class="chevron-icon" data-astro-cid-voiollt5></span> </button> <div class="nav-dropdown-panel bg-white" data-astro-cid-voiollt5> <div class="grid grid-cols-[320px_240px] gap-x-6 px-6" data-astro-cid-voiollt5> <!-- Teams Column --> <div class="flex flex-col py-6" data-astro-cid-voiollt5> <span class="mb-3 px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Teams</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/solutions/sales" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M14.5634 13.5799C14.6 13.2593 14.4292 12.9316 14.1078 12.9024C14.102 12.9019 14.0961 12.9014 14.0903 12.9009L9.19669 12.5131C8.65686 12.4704 8.11351 12.5323 7.5996 12.6952L3.69783 13.932C3.28233 14.0637 3 14.4494 3 14.8852V20.0199C3 20.5721 3.44772 21.0199 4 21.0199H4.83831L4.85056 21.0237C4.95989 21.0574 5.11685 21.1047 5.31199 21.1604C5.70161 21.2716 6.24688 21.4174 6.87145 21.5561C8.09069 21.8267 9.72522 22.0966 11.0994 21.9661C12.5697 21.8264 14.3876 21.1358 15.958 20.4236C17.5608 19.6966 19.0337 18.8864 19.8515 18.4189C20.5815 18.0016 21 17.2562 21 16.472C21 14.9261 19.557 14.5558 18 15L15.5 15.75C14.5 17 13.9507 17.3157 12.3751 17.6528L11.1171 17.922C10.7369 18.0033 10.3614 17.7659 10.2718 17.3875C10.1795 16.9975 10.426 16.6078 10.8179 16.5239L12.0458 16.2612C13.4015 15.9711 14.4132 14.8936 14.5634 13.5799Z" fill="currentColor"/><path d="M18 7.5C18 9.433 16.433 11 14.5 11C12.567 11 11 9.433 11 7.5C11 5.567 12.567 4 14.5 4C16.433 4 18 5.567 18 7.5Z" fill="currentColor"/><path d="M12.0731 3.12743C10.5384 3.98106 9.5 5.61927 9.5 7.5C9.5 8.01995 9.57937 8.52136 9.72664 8.99278C9.65171 8.99757 9.57614 9 9.5 9C7.567 9 6 7.433 6 5.5C6 3.567 7.567 2 9.5 2C10.5175 2 11.4336 2.4342 12.0731 3.12743Z" fill="currentColor"/></svg> 218 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Sales </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Find & close warm accounts</span> </div> </a><a href="/solutions/marketing" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.4348 2.83302C17.2037 2.28685 18.9961 3.60929 18.9961 5.46062V7.32497C20.7078 7.67242 21.9961 9.18574 21.9961 11C21.9961 12.8142 20.7078 14.327
2185 18.9961 14.6749V16.5393C18.9961 18.3906 17.2037 19.7131 15.4348 19.1669L13.2817 18.5021C12.7667 19.9564 11.3792 21 9.74609 21C7.67503 21 5.99609 19.321 5.99609 17.25V16.2526L3.93481 15.6162C2.78222 15.2603 1.99609 14.1949 1.99609 12.9886V9.01131C1.99609 7.80504 2.78222 6.73958 3.93481 6.38371L6.51034 5.5885C6.5212 5.58487 6.53218 5.58148 6.54326 5.57833L15.4348 2.83302ZM7.49609 16.7158V17.25C7.49609 18.4926 8.50345 19.5 9.74609 19.5C10.7025 19.5 11.5212 18.9029 11.8465 18.059L7.49609 16.7158ZM20.4961 11C20.4961 11.9796 19.87 12.813 18.9961 13.1219V8.87798C19.87 9.18686 20.4961 10.0203 20.4961 11ZM5.99829 7.31647V14.6834L4.37733 14.183C3.85342 14.0212 3.49609 13.5369 3.49609 12.9886V9.01131C3.49609 8.46301 3.85342 7.97871 4.37733 7.81695L5.99829 7.31647Z" fill="currentColor"/></svg> 219 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Marketing </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Turn traffic into pipeline</span> </div> </a><a href="/solutions/revops" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.64125 9.29847C8.49624 7.44348 11.5038 7.44348 13.3588 9.29847L13.7019 9.64161C14.4775 10.4172 14.9295 11.3963 15.0562 12.4071C15.1076 12.8181 14.8162 13.1931 14.4052 13.2445C13.9942 13.296 13.6193 13.0046 13.5678 12.5936C13.4811 11.9019 13.1729 11.2339 12.6413 10.7023L12.2981 10.3591C11.0289 9.08993 8.97111 9.08992 7.70191 10.3591L4.35876 13.7023C3.08956 14.9715 3.08956 17.0293 4.35876 18.2985L4.70191 18.6416C5.97111 19.9108 8.02888 19.9108 9.29809 18.6416L9.46965 18.4701C9.76253 18.1772 10.2374 18.1771 10.5303 18.47C10.8232 18.7629 10.8232 19.2378 10.5303 19.5307L10.3588 19.7023C8.50379 21.5572 5.49624 21.5573 3.64125 19.7023L3.2981 19.3591C1.44311 17.5041 1.44311 14.4966 3.2981 12.6416L6.64125 9.29847Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M13.6412 5.29847C15.4962 3.44348 18.5037 3.44348 20.3587 5.29847L20.7019 5.64161C22.5568 7.4966 22.5568 10.5041 20.7019 12.3591L17.3587 15.7023C15.5037 17.5573 12.4962 17.5573 10.6412 15.7023L10.298 15.3591C9.52244 14.5835 9.07043 13.6044 8.9438 12.5936C8.89232 12.1826 9.18376 11.8077 9.59476 11.7562C10.0058 11.7047 10.3807 11.9961 10.4322 12.4071C10.5188 13.0988 10.8271 13.7668 11.3587 14.2985L11.7019 14.6416C12.9711 15.9108 15.0288 15.9108 16.298 14.6416L19.6412 11.2985C20.9104 10.0293 20.9104 7.97148 19.6412 6.70228L19.298 6.35913C18.0288 5.08993 15.9711 5.08993 14.7019 6.35913L14.5304 6.53063C14.2375 6.82356 13.7627 6.82362 13.4697 6.53077C13.1768 6.23791 13.1767 5.76304 13.4696 5.47011L13.6412 5.29847Z" fill="currentColor"/></svg> 220 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> RevOps </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Unify your revenue data</span> </div> </a><a href="/solutions/agency" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M3.75 3C3.33579 3 3 3.33579 3 3.75V5C3 9.28021 6.46979 12.75 10.75 12.75H11.25V20.25C11.25 20.6642 11.5858 21 12 21C12.4142 21 12.75 20.6642 12.75 20.25V16H13.25C17.5302 16 21 12.5302 21 8.25V6.75C21 6.33579 20.6642 6 20.25 6H19C16.3562 6 14.0216 7.32382 12.6229 9.34475C11.9618 5.73541 8.80036 3 5 3H3.75Z" fill="currentColor"/></svg> 221 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Agency </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Prove ROI for every client</span> </div> </a> </div> </div> <!-- Use Cases Column --> <div class="flex flex-col border-l pl-6 py-6 border-zinc-200" data-astro-cid-voiollt5> <span class="mb-3 px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Use Cases</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/use-cases/account-scoring" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Account scoring </a><a href="/use-cases/contact-reveal" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Contact reveal </a><a href="/use-cases/enrich-ga4" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> GA4 enrichment </a><a href="/use-cases/lead-generation" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Lead generation </a><a href="/use-cases/marketing-attribution" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Marketing attribution </a><a href="/use-cases/visitor-identification" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Visitor identification </a> </div> </div> </div> </div> </div> </div> <!-- Center nav item (Resources) --> <div class="flex items-center shrink-0" data-astro-cid-voiollt5> <!-- Resources Dropdown --> <div class="nav-dropdown-wrapper" data-dropdown="resources" data-astro-cid-voiollt5> <button type="button" class="nav-link nav-link-dropdown" data-astro-cid-voiollt5> 222Resources 223<span class="chevron-icon" data-astro-cid-voiollt5></span> </button> <div class="nav-dropdown-panel bg-white" data-astro-cid-voiollt5> <div class="grid grid-cols-[320px_192px] gap-x-6 px-6" data-astro-cid-voiollt5> <!-- Left Column: Learn, Support, Partners --> <div class="flex flex-col gap-5 py-6" data-astro-cid-voiollt5> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Learn</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/blog" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M11.25 5.37706L5.34848 4.06118C3.63055 3.67813 2 4.98515 2 6.74526V17.0845C2 18.3727 2.89421 19.4883 4.15152 19.7686L11.25 21.3514V5.37706Z" fill="currentColor"/><path d="M12.75 5.37706V21.3514L19.8485 19.7686C21.1058 19.4883 22 18.3727 22 17.0845V6.74526C22 4.98515 20.3694 3.67813 18.6515 4.06118L12.75 5.37706Z" fill="currentColor"/></svg> 224 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="flex items-center gap-2" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Blog </span> </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Read playbooks & updates</span> </div> </a> </div> </div> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Support</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="https://docs.snitcher.com" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 7.25C12 8.76878 13.2312 10 14.75 10H20V19.25C20 20.7688 18.7688 22 17.25 22H6.75C5.23122 22 4 20.7688 4 19.25V4.75C4 3.23122 5.23122 2 6.75 2H12V7.25ZM8.75 17.5C8.33579 17.5 8 17.8358 8 18.25C8 18.6642 8.33579 19 8.75 19H15.25C15.6642 19 16 18.6642 16 18.25C16 17.8358 15.6642 17.5 15.25 17.5H8.75ZM8.75 13.5C8.33579 13.5 8 13.8358 8 14.25C8 14.6642 8.33579 15 8.75 15H12.25C12.6642 15 13 14.6642 13 14.25C13 13.8358 12.6642 13.5 12.25 13.5H8.75Z" fill="currentColor"/><path d="M13.5732 2.5127L19.4873 8.42676C19.5111 8.45056 19.5344 8.475 19.5566 8.5H14.75C14.0597 8.5 13.5 7.94032 13.5 7.25V2.44336C13.525 2.46564 13.5494 2.48889 13.5732 2.5127Z" fill="currentColor"/></svg> 225 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="flex items-center gap-2" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Documentation </span> <svg width="14" height="14" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 226 </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Set up & integrate Snitcher</span> </div> </a><a href="https://help.snitcher.com" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-zinc-100 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.2324 8.35396C13.966 7.4249 14.5031 6.45579 15.4322 6.18939L16.8741 5.77593C17.8032 5.50953 18.7723 6.04672 19.0387 6.97577L22.2085 18.0303C22.4749 18.9593 21.9377 19.9285 21.0087 20.1949L19.5668 20.6083C18.6377 20.8747 17.6686 20.3375 17.4022 19.4085L14.2324 8.35396Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 3C7.7835 3 7 3.7835 7 4.75V19.25C7 20.2165 7.7835 21 8.75 21H12.25C13.2165 21 14 20.2165 14 19.25V4.75C14 3.7835 13.2165 3 12.25 3H8.75ZM8.5 7.75C8.5 7.33579 8.83579 7 9.25 7H11.75C12.1642 7 12.5 7.33579 12.5 7.75C12.5 8.16421 12.1642 8.5 11.75 8.5H9.25C8.83579 8.5 8.5 8.16421 8.5 7.75ZM12.5 16.25C12.5 15.8358 12.1642 15.5 11.75 15.5H9.25C8.83579 15.5 8.5 15.8358 8.5 16.25C8.5 16.6642 8.83579 17 9.25 17H11.75C12.1642 17 12.5 16.6642 12.5 16.25Z" fill="currentColor"/><path d="M3.75 5C2.7835 5 2 5.7835 2 6.75V19.25C2 20.2165 2.7835 21 3.75 21H4.25C5.2165 21 6 20.2165 6 19.25V6.75C6 5.7835 5.2165 5 4.25 5H3.75Z" fill="currentColor"/></svg> 227 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="flex items-center gap-2" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Help center </span> <svg width="14" height="14" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 228 </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Read our knowledge base</span> </div> </a> </div> </div> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Partners</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/partners" class="group flex items-center gap-3 rounded-xl p-3 no-underline transition-colors hover:bg-zinc-50" data-astro-cid-voiollt5> <div class="flex shrink-0 items-center justify-center overflow-hidden rounded-lg bg-jade
228-500 h-11 w-11 rounded-xl"> <div class="h-5 w-5"> <svg width="20" height="20" class="text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M9.5 4V3.5C9.5 2.11929 10.6193 1 12 1C13.3807 1 14.5 2.11929 14.5 3.5V4H18.25C19.7688 4 21 5.23122 21 6.75V9C21 9.27614 20.7761 9.5 20.5 9.5C19.1193 9.5 18 10.6193 18 12C18 13.3807 19.1193 14.5 20.5 14.5C20.7761 14.5 21 14.7239 21 15V17.25C21 18.7688 19.7688 20 18.25 20H5.75C4.23122 20 3 18.7688 3 17.25V6.75C3 5.23122 4.23122 4 5.75 4H9.5Z" fill="currentColor"/></svg> 229 </div> </div> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <span class="text-sm font-semibold transition-colors group-hover:text-primary-500 text-zinc-800" data-astro-cid-voiollt5> Partner Program </span> <span class="text-sm leading-5 text-zinc-700" data-astro-cid-voiollt5>Agency, Expert & Creator programs</span> </div> </a> </div> </div> </div> <!-- Right Column: Company, Contact --> <div class="flex flex-col gap-5 border-l pl-6 py-6 border-zinc-200" data-astro-cid-voiollt5> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Company</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <a href="/about" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> About us </a><a href="/careers" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Careers </a> </div> </div> <div data-astro-cid-voiollt5> <span class="mb-3 block px-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Contact</span> <div class="flex flex-col gap-1" data-astro-cid-voiollt5> <button type="button" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 cursor-pointer text-left text-zinc-800 hover:bg-zinc-50" data-intercom-action="showNewMessage" data-astro-cid-voiollt5>
229 Chat to support </button><a href="/demo" class="group rounded-xl px-3 py-3 text-sm font-semibold no-underline transition-colors hover:text-primary-500 text-zinc-800 hover:bg-zinc-50" data-astro-cid-voiollt5> Talk to sales </a> </div> </div> </div> </div> </div> </div> </div> <!-- Right nav group --> <div class="flex flex-1 items-center gap-1 xl:gap-2" data-astro-cid-voiollt5> <a href="/customers" class="nav-link" data-astro-cid-voiollt5> 230Customers 231</a> <a href="/pricing" class="nav-link" data-astro-cid-voiollt5> 232Pricing 233</a> </div> </div> <!-- Action Buttons --> <div class="relative z-10 flex flex-1 items-center justify-end gap-2 pointer-events-none [&>*]:pointer-events-auto" data-astro-cid-voiollt5> <button id="mobile-menu-toggle" type="button" class="relative inline-flex h-10 items-center justify-center gap-2 rounded-full border border-[var(--alpha-border)] px-4 text-base font-semibold shadow transition-colors lg:hidden bg-white text-zinc-700 hover:bg-zinc-50" aria-expanded="false" aria-controls="mobile-menu" data-astro-cid-voiollt5> <span class="relative flex h-6 w-6 items-center justify-center" data-astro-cid-voiollt5> <svg id="hamburger-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" class="absolute h-6 w-6 transition-opacity duration-200" data-astro-cid-voiollt5> <path d="M2.75 12H21.25M2.75 5.75H21.25M2.75 18.25H21.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-voiollt5></path> </svg> <svg id="close-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" class="absolute h-5 w-5 opacity-0 transition-opacity duration-200" data-astro-cid-voiollt5> <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-voiollt5></path> </svg> </span> <span class="relative" data-astro-cid-voiollt5> <span id="menu-label" data-astro-cid-voiollt5>Menu</span> <span id="close-label" class="absolute left-0 opacity-0 transition-opacity duration-200" data-astro-cid-voiollt5>Close</span> </span> </button> <a href="https://app.snitcher.com/login" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50 hidden lg:inline-flex" data-astro-cid-voiollt5>Log in</a>
233<script> 234 (function() { 235 function initButtonArrows() { 236 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 237 if (button.dataset.btnArrowInit) return; 238 button.dataset.btnArrowInit = 'true'; 239 240 var icon = button.querySelector('.btn-arrow-icon'); 241 if (!icon) return; 242 243 button.addEventListener('mouseenter', function() { 244 icon.classList.remove('slide-out'); 245 icon.classList.add('slide-in'); 246 }); 247 248 button.addEventListener('mouseleave', function() { 249 icon.classList.remove('slide-in'); 250 icon.classList.add('slide-out'); 251 }); 252 }); 253 } 254 255 if (document.readyState === 'loading') { 256 document.addEventListener('DOMContentLoaded', initButtonArrows); 257 } else { 258 initButtonArrows(); 259 } 260 261 document.addEventListener('astro:page-load', initButtonArrows); 262 })(); 263</script>
263 <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-primary-500 !text-white hover:bg-primary-600 !pl-3 hidden lg:inline-flex"> <svg width="20" height="20" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg" class="shrink-0" aria-hidden="true"> <path d="M211.265 148.37C187.598 224.219 123.858 249.286 104.886 255.161C89.5631 259.93 84.2516 243.014 99.6384 238.244C116.524 233.017 173.258 210.709 194.355 143.094C205.691 106.783 186.837 68.5577 152.325 57.79C117.074 46.7923 80.2423 68.8045 69.2412 104.054C67.5848 109.361 63.152 113.363 58.9333 113.363C52.8997 113.363 50.3043 105.281 52.3341 98.7783C66.1181 54.6057 112.724 26.8804 157.601 40.8841C202.129 54.7776 225.257 103.517 211.265 148.37ZM168.681 5.37712C102.536 -15.2639 36.1026 25.9353 16.8302 87.6986C7.05086 119.034 28.0846 150.559 58.9017 150.559C79.3873 150.559 98.2403 135.991 104.747 115.134C109.855 98.7636 126.062 88.5621 141.246 93.2947C156.164 97.95 164.06 115.32 158.854 132.015C145.032 176.301 103.905 207.232 58.8369 207.236H58.8306C53.1805 207.236 47.4893 206.748 41.9193 205.783C26.0231 203.042 23.0907 220.506 38.9072 223.237C45.4654 224.373 52.1665 224.95 58.822 224.95C111.569 224.95 159.656 188.902 175.758 137.291C183.809 111.494 170.991 84.021 146.522 76.39C121.831 68.6852 95.7658 84.4535 87.8419 109.858C83.6147 123.396 71.7306 132.852 58.9427 132.852C40.047 132.852 27.4971 112.952 33.7365 92.9742C51.7151 35.4079 111.149 5.98231 163.405 22.2851C217.821 39.2652 247.198 98.6229 229.863 154.174C220.278 184.887 202.64 212.731 179.141 234.367C167.297 245.262 179.436 258.135 191.286 247.224C217.073 223.484 236.259 193.132 246.77 159.45C267.275 93.7541 231.625 25.0164 168.681 5.37712ZM58.6439 187.8C95.3789 187.8 128.937 162.473 140.255 126.211C142.694 118.381 139.514 113.349 135.392 112.062C131.306 110.787 125.784 113.124 123.348 120.937C114.327 149.843 87.7136 170.032 58.6287 170.032C44.0506 170.032 30.2484 164.946 18.717 155.324C6.35199 145.002 -4.98893 158.544 7.38454 168.884C22.2568 181.257 39.9787 187.797 58.6349 187.8H58.6439Z" fill="currentColor"></path> </svg> <span>Start for free</span> </a>
263<script> 264 (function() { 265 function initButtonArrows() { 266 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 267 if (button.dataset.btnArrowInit) return; 268 button.dataset.btnArrowInit = 'true'; 269 270 var icon = button.querySelector('.btn-arrow-icon'); 271 if (!icon) return; 272 273 button.addEventListener('mouseenter', function() { 274 icon.classList.remove('slide-out'); 275 icon.classList.add('slide-in'); 276 }); 277 278 button.addEventListener('mouseleave', function() { 279 icon.classList.remove('slide-in'); 280 icon.classList.add('slide-out'); 281 }); 282 }); 283 } 284 285 if (document.readyState === 'loading') { 286 document.addEventListener('DOMContentLoaded', initButtonArrows); 287 } else { 288 initButtonArrows(); 289 } 290 291 document.addEventListener('astro:page-load', initButtonArrows); 292 })(); 293</script>
293 </div> </div> </div> </div> <div id="mobile-menu" class="absolute left-0 right-0 top-full z-40 max-h-[calc(100dvh-64px)] overflow-hidden rounded-b-2xl shadow-lg transition-[height] duration-300 ease-out lg:hidden bg-white" style="height: 0;" data-astro-cid-voiollt5> <div class="mobile-menu-scroll h-full px-6 pb-6 pt-4" data-astro-cid-voiollt5> <nav class="mb-6 space-y-2" data-astro-cid-voiollt5> <!-- Product dropdown --> <div class="mobile-dropdown" data-astro-cid-voiollt5> <button type="button" class="mobile-nav-link mobile-dropdown-toggle" aria-expanded="false" data-astro-cid-voiollt5> 294Product 295<span class="mobile-chevron" data-astro-cid-voiollt5></span> </button> <div class="mobile-submenu" data-astro-cid-voiollt5> <span class="block px-4 py-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>GTM Platform</span> <a href="/platform" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Platform </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Powered by Snitcher</span> <a href="/radar" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Radar </a><a href="/ip-to-company-api" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> IP to Company </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>How It Works</span> <a href="/identify" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Identify </a><a href="/signal" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Signal </a><a href="/automate" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Automate </a><a href="/engage" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Engage </a><a href="/measure" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Measure </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Explore</span> <a href="/changelog" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Changelog </span> </a><a href="/integrations" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Integrations </span> </a><a href="https://trust.snitcher.com" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Trust centre <svg width="16" height="16" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 296 </span> </a><a href="/demo" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Talk to sales </span> </a> </div> </div> <!-- Solutions dropdown --> <div class="mobile-dropdown" data-astro-cid-voiollt5> <button type="button" class="mobile-nav-link mobile-dropdown-toggle" aria-expanded="false" data-astro-cid-voiollt5> 297Solutions 298<span class="mobile-chevron" data-astro-cid-voiollt5></span> </button> <div class="mobile-submenu" data-astro-cid-voiollt5> <span class="block px-4 py-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Teams</span> <a href="/solutions/sales" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Sales </a><a href="/solutions/marketing" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Marketing </a><a href="/solutions/revops" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> RevOps </a><a href="/solutions/agency" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Agency </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Use Cases</span> <a href="/use-cases/account-scoring" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Account scoring </a><a href="/use-cases/contact-reveal" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Contact reveal </a><a href="/use-cases/enrich-ga4" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> GA4 enrichment </a><a href="/use-cases/lead-generation" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Lead generation </a><a href="/use-cases/marketing-attribution" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Marketing attribution </a><a href="/use-cases/visitor-identification" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Visitor identification </a> </div> </div> <!-- Resources dropdown --> <div class="mobile-dropdown" data-astro-cid-voiollt5> <button type="button" class="mobile-nav-link mobile-dropdown-toggle" aria-expanded="false" data-astro-cid-voiollt5> 299Resources 300<span class="mobile-chevron" data-astro-cid-voiollt5></span> </button> <div class="mobile-submenu" data-astro-cid-voiollt5> <span class="block px-4 py-1 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Learn</span> <a href="/blog" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Blog </span> </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Support</span> <a href="https://docs.snitcher.com" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Documentation <svg width="16" height="16" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 301 </span> </a><a href="https://help.snitcher.com" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" target="_blank" rel="noopener noreferrer" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Help center <svg width="16" height="16" class="text-zinc-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M18.25 15.25V5.75M18.25 5.75H8.75M18.25 5.75L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg> 302 </span> </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Partners</span> <a href="/partners" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> <span class="inline-flex items-center gap-1.5" data-astro-cid-voiollt5> Partner Program </span> </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Company</span> <a href="/about" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> About us </a><a href="/careers" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Careers </a> <span class="block px-4 pb-1 pt-3 eyebrow text-xs text-zinc-400" data-astro-cid-voiollt5>Contact</span> <button type="button" class="block rounded-lg px-4 py-2.5 text-base min-h-8 w-full text-left cursor-pointer hover:bg-zinc-50" data-intercom-action="showNewMessage" data-astro-cid-voiollt5>
302 Chat to support </button><a href="/demo" class="block rounded-lg px-4 py-2.5 text-base min-h-8 hover:bg-zinc-50" data-astro-cid-voiollt5> Talk to sales </a> </div> </div> <!-- Direct links --> <a href="/customers" class="mobile-nav-link" data-astro-cid-voiollt5> 303Customers 304</a> <a href="/pricing" class="mobile-nav-link mobile-nav-link-active" data-astro-cid-voiollt5> 305Pricing 306</a> </nav> <div class="flex flex-col gap-2" data-astro-cid-voiollt5> <a href="https://app.snitcher.com/login" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50 w-full justify-center" data-astro-cid-voiollt5>Log in</a>
306<script> 307 (function() { 308 function initButtonArrows() { 309 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 310 if (button.dataset.btnArrowInit) return; 311 button.dataset.btnArrowInit = 'true'; 312 313 var icon = button.querySelector('.btn-arrow-icon'); 314 if (!icon) return; 315 316 button.addEventListener('mouseenter', function() { 317 icon.classList.remove('slide-out'); 318 icon.classList.add('slide-in'); 319 }); 320 321 button.addEventListener('mouseleave', function() { 322 icon.classList.remove('slide-in'); 323 icon.classList.add('slide-out'); 324 }); 325 }); 326 } 327 328 if (document.readyState === 'loading') { 329 document.addEventListener('DOMContentLoaded', initButtonArrows); 330 } else { 331 initButtonArrows(); 332 } 333 334 document.addEventListener('astro:page-load', initButtonArrows); 335 })(); 336</script>
336 <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-primary-500 !text-white hover:bg-primary-600 !pl-3 w-full justify-center"> <svg width="20" height="20" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg" class="shrink-0" aria-hidden="true"> <path d="M211.265 148.37C187.598 224.219 123.858 249.286 104.886 255.161C89.5631 259.93 84.2516 243.014 99.6384 238.244C116.524 233.017 173.258 210.709 194.355 143.094C205.691 106.783 186.837 68.5577 152.325 57.79C117.074 46.7923 80.2423 68.8045 69.2412 104.054C67.5848 109.361 63.152 113.363 58.9333 113.363C52.8997 113.363 50.3043 105.281 52.3341 98.7783C66.1181 54.6057 112.724 26.8804 157.601 40.8841C202.129 54.7776 225.257 103.517 211.265 148.37ZM168.681 5.37712C102.536 -15.2639 36.1026 25.9353 16.8302 87.6986C7.05086 119.034 28.0846 150.559 58.9017 150.559C79.3873 150.559 98.2403 135.991 104.747 115.134C109.855 98.7636 126.062 88.5621 141.246 93.2947C156.164 97.95 164.06 115.32 158.854 132.015C145.032 176.301 103.905 207.232 58.8369 207.236H58.8306C53.1805 207.236 47.4893 206.748 41.9193 205.783C26.0231 203.042 23.0907 220.506 38.9072 223.237C45.4654 224.373 52.1665 224.95 58.822 224.95C111.569 224.95 159.656 188.902 175.758 137.291C183.809 111.494 170.991 84.021 146.522 76.39C121.831 68.6852 95.7658 84.4535 87.8419 109.858C83.6147 123.396 71.7306 132.852 58.9427 132.852C40.047 132.852 27.4971 112.952 33.7365 92.9742C51.7151 35.4079 111.149 5.98231 163.405 22.2851C217.821 39.2652 247.198 98.6229 229.863 154.174C220.278 184.887 202.64 212.731 179.141 234.367C167.297 245.262 179.436 258.135 191.286 247.224C217.073 223.484 236.259 193.132 246.77 159.45C267.275 93.7541 231.625 25.0164 168.681 5.37712ZM58.6439 187.8C95.3789 187.8 128.937 162.473 140.255 126.211C142.694 118.381 139.514 113.349 135.392 112.062C131.306 110.787 125.784 113.124 123.348 120.937C114.327 149.843 87.7136 170.032 58.6287 170.032C44.0506 170.032 30.2484 164.946 18.717 155.324C6.35199 145.002 -4.98893 158.544 7.38454 168.884C22.2568 181.257 39.9787 187.797 58.6349 187.8H58.6439Z" fill="currentColor"></path> </svg> <span>Start for free</span> </a>
336<script> 337 (function() { 338 function initButtonArrows() { 339 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 340 if (button.dataset.btnArrowInit) return; 341 button.dataset.btnArrowInit = 'true'; 342 343 var icon = button.querySelector('.btn-arrow-icon'); 344 if (!icon) return; 345 346 button.addEventListener('mouseenter', function() { 347 icon.classList.remove('slide-out'); 348 icon.classList.add('slide-in'); 349 }); 350 351 button.addEventListener('mouseleave', function() { 352 icon.classList.remove('slide-in'); 353 icon.classList.add('slide-out'); 354 }); 355 }); 356 } 357 358 if (document.readyState === 'loading') { 359 document.addEventListener('DOMContentLoaded', initButtonArrows); 360 } else { 361 initButtonArrows(); 362 } 363 364 document.addEventListener('astro:page-load', initButtonArrows); 365 })(); 366</script>
366 </div> </div> </div> </div> </nav> <!-- Backdrop blur overlay (visible when dropdown is open) --> <div id="navbar-backdrop" class="pointer-events-none fixed inset-0 z-40 opacity-0 backdrop-blur-sm transition-opacity duration-200 bg-white/60" data-astro-cid-voiollt5></div> <main class="w-full"> <section class="page-section" data-variant="light" id="hero" data-astro-cid-dnku4hyr> <div class="section-container" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content --> <section class="w-full relative isolate overflow-x-clip" data-astro-cid-eaz7zv6b> <!-- Animated Dot Grid Background --> 367 <div class="hero-dot-grid absolute -z-30 pointer-events-none" aria-hidden="true" data-astro-cid-wlyiyr5g> <canvas id="hero-dot-canvas" width="960" height="880" data-astro-cid-wlyiyr5g></canvas> </div>
367<script>(function(){const fingerprintPath = "M479.105 123.715C508.165 123.715 537.121 127.711 565.171 135.593H565.172C723.388 180.032 810.209 336.775 758.861 484.95C672.839 733.133 441.175 815.165 372.169 834.403H372.168C366.003 836.13 360.107 837 354.642 837C336.377 837 326.758 827.516 324.962 818.309L324.883 817.87C323.209 807.91 329.776 793.276 355.402 786.121C417.687 768.769 627.121 694.667 705.011 469.948C725.42 411.091 720.361 348.893 690.761 294.827C661.139 240.726 610.544 201.314 548.32 183.835C525.75 177.497 502.431 174.283 479.011 174.283C371.227 174.283 272.458 241.933 238.85 338.877C233.287 354.919 218.695 366.846 205.139 366.846C197.37 366.846 192.438 362.809 189.639 359.385C182.575 350.738 180.643 336.461 185.006 323.875C225.841 206.064 346.768 123.715 479.105 123.715ZM478.957 1C521.618 1.00001 564.274 6.90814 605.741 18.5576C716.526 49.6745 807.083 118.96 860.766 213.628C914.723 308.784 924.703 418.105 888.864 521.47C850.909 630.962 781.867 729.724 689.108 807.245L686.913 809.072C674.246 819.571 663.235 821.729 656.295 821.729C645.632 821.729 636.927 816.576 633.413 808.462C628.742 797.678 633.925 784.249 648.096 772.514H648.097C735.016 700.475 799.655 608.478 835.02 506.468C866.145 416.68 857.829 321.486 811.604 238.445C765.548 155.708 687.314 95.0634 591.164 67.4512L588.89 66.8057C553.722 56.9306 517.085 51.9238 479.998 51.9238C310.011 51.9239 160.83 152.525 108.854 302.354C96.7623 337.202 102.92 374.427 125.368 401.906C144.581 425.426 173.675 438.9 205.174 438.9C253.822 438.9 298.979 406.62 315.014 360.395V360.394C338.279 293.254 405.65 246.323 478.859 246.323C494.333 246.323 509.728 248.445 524.608 252.625C566.639 264.424 600.584 291.382 620.213 328.518C639.767 365.513 642.843 408.092 628.859 448.432C570.466 616.91 396.076 734.653 204.729 734.653C180.618 734.653 156.325 732.773 132.521 729.062H132.52C106.527 725.021 96.6245 711.156 97.7158 699.718C98.7049 689.31 109.097 678.338 130.959 678.338C134.503 678.338 138.264 678.642 142.138 679.243C162.762 682.456 183.832 684.085 204.76 684.085H204.761C370.933 684.071 522.658 581.841 574.417 435.154L575.021 433.426C594.797 376.342 564.645 316.848 507.754 300.864H507.753C498.292 298.212 488.494 296.864 478.629 296.864C430.011 296.864 384.88 329.156 368.849 375.396V375.396C345.592 442.527 278.225 489.448 205.022 489.448C155.516 489.448 109.979 468.431 80.0645 431.818C47.034 391.388 37.6623 337.388 55.0059 287.355C113.434 118.797 287.749 1 478.957 1ZM477.126 369.297C479.15 369.297 481.136 369.531 483.041 369.995L483.853 370.208C490.288 372.016 496.057 376.531 499.22 383.507C502.381 390.481 502.979 400.016 498.863 411.912C457.99 529.799 336.787 612.2 204.079 612.2H204.047C137.242 612.195 73.7533 591.267 20.3223 551.662L19.0625 550.723C3.84284 539.273 -2.02901 525.738 2.49023 514.525C5.87123 506.138 14.6726 500.811 25.6582 500.811C35.1161 500.811 45.338 504.677 55.2158 512.099C98.2043 544.388 149.664 561.455 204.021 561.455C312.304 561.455 411.42 493.831 445.02 396.916V396.915C452.117 376.42 466.351 369.297 477.126 369.297Z"; 368const dark = false; 369 370 // Base dimensions - expanded to include full fingerprint with padding 371 const BASE_WIDTH = 960; 372 const BASE_HEIGHT = 880; 373 374 // Offset to center the fingerprint (original was 911x838, path extends to ~925) 375 const OFFSET_X = 20; 376 const OFFSET_Y = 20; 377 378 // Vertical fade configuration - fade to background at bottom 379 const FADE_START = 0.45; // Start fading at 45% down 380 const FADE_END = 0.95; // Fully faded at 95% down 381 382 // Center fade configuration - reduce opacity in center for text readability 383 const CENTER_X = 0.5; // Center of the canvas (normalized) 384 const CENTER_Y = 0.35; // Slightly above center where text sits 385 const CENTER_FADE_RADIUS = 1; // Radius of the fade area 386 const CENTER_MIN_OPACITY = 0; // Minimum opacity multiplier at center 387 388 // Mobile detection 389 const isMobile = window.innerWidth < 768; 390 391 // Configuration - adjusted for mobile performance 392 const CONFIG = { 393 cellSize: isMobile ? 10 : 7, // Larger cells = fewer dots on mobile 394 dotSize: 3, 395 fillRate: isMobile ? 0.7 : 1, // Sparser on mobile 396 animationSpeed: 0.003, 397 minOpacity: 0.01, 398 maxChannel: 220, 399 frameThrottle: isMobile ? 50 : 33, // ~20fps on mobile, ~30fps on desktop 400 }; 401 402 // Gradient anchor points - different for light and dark modes 403 // Light mode: zinc-500 to zinc-300
404 // Dark mode: zinc-600 to zinc-800 (inverted for dark background) 405 const gradientPoints = dark ? [ 406 // Dark mode colors (zinc-600 to zinc-800) 407 // zinc-600: #52525b = RGB(82, 82, 91) 408 // zinc-700: #3f3f46 = RGB(63, 63, 70) 409 // zinc-800: #27272a = RGB(39, 39, 42) 410 { x: 0.0, y: 0.0, color: [82, 82, 91] }, // zinc-600 (top) 411 { x: 1.0, y: 0.0, color: [82, 82, 91] }, // zinc-600 (top) 412 { x: 0.5, y: 0.5, color: [63, 63, 70] }, // zinc-700 (mid) 413 { x: 0.0, y: 1.0, color: [39, 39, 42] }, // zinc-800 (bottom) 414 { x: 1.0, y: 1.0, color: [39, 39, 42] }, // zinc-800 (bottom) 415 ] : [ 416 // Light mode colors (zinc-500 to zinc-300) 417 // zinc-500: #71717a = RGB(113, 113, 122) 418 // zinc-300: #d4d4d8 = RGB(212, 212, 216) 419 { x: 0.0, y: 0.0, color: [113, 113, 122] }, // zinc-500 (top) 420 { x: 1.0, y: 0.0, color: [113, 113, 122] }, // zinc-500 (top) 421 { x: 0.5, y: 0.5, color: [162, 162, 169] }, // mid blend 422 { x: 0.0, y: 1.0, color: [212, 212, 216] }, // zinc-300 (bottom) 423 { x: 1.0, y: 1.0, color: [212, 212, 216] }, // zinc-300 (bottom) 424 ]; 425 426 // Mouse hover color effect configuration 427 const BRAND_COLOR = { r: 76, g: 76, b: 255 }; // #4C4CFF - Snitcher brand color 428 const COLOR_RADIUS = 120; // Radius of the color effect in pixels 429 const COLOR_FALLOFF = 2; // Falloff exponent for smooth blending 430 const MOUSE_LERP = 0.12; // Smoothing factor for color effect position 431 432 // Seeded random for consistency 433 function seededRandom(seed) { 434 const x = Math.sin(seed * 12.9898 + seed * 78.233) * 43758.5453; 435 return x - Math.floor(x); 436 } 437 438 // Calculate blended color 439 function getBlendedColor(normalizedX, normalizedY) { 440 let totalWeight = 0; 441 let r = 0, g = 0, b = 0; 442 443 for (const point of gradientPoints) { 444 const dx = normalizedX - point.x; 445 const dy = normalizedY - point.y; 446 const distance = Math.sqrt(dx * dx + dy * dy); 447 const weight = 1 / Math.pow(distance + 0.12, 3); 448 totalWeight += weight; 449 r += point.color[0] * weight; 450 g += point.color[1] * weight; 451 b += point.color[2] * weight; 452 } 453 454 r = Math.min(Math.round(r / totalWeight), CONFIG.maxChannel); 455 g = Math.min(Math.round(g / totalWeight), CONFIG.maxChannel); 456 b = Math.min(Math.round(b / totalWeight), CONFIG.maxChannel); 457 458 return { r, g, b }; 459 } 460 461 // Store cleanup function for page transitions 462 let cleanupHeroDotGrid = null; 463 464 function initHeroDotGrid() { 465 // Clean up any existing instance first 466 if (cleanupHeroDotGrid) { 467 cleanupHeroDotGrid(); 468 cleanupHeroDotGrid = null; 469 } 470 471 const canvas = document.getElementById('hero-dot-canvas'); 472 if (!canvas) return; 473 const ctx = canvas.getContext('2d', { willReadFrequently: false }); 474 475 // Handle high-DPI/retina displays 476 const dpr = window.devicePixelRatio || 1; 477 478 // Set canvas size accounting for pixel ratio 479 canvas.width = BASE_WIDTH * dpr; 480 canvas.height = BASE_HEIGHT * dpr; 481 482 // Scale context to match 483 ctx.scale(dpr, dpr); 484 485 // Use base dimensions for all calculations 486 const width = BASE_WIDTH; 487 const height = BASE_HEIGHT; 488 489 // Create fingerprint mask at base resolution 490 const maskCanvas = document.createElement('canvas'); 491 maskCanvas.width = width; 492 maskCanvas.height = height; 493 const maskCtx = maskCanvas.getContext('2d'); 494 495 // Draw fingerprint path to mask with offset for padding 496 maskCtx.translate(OFFSET_X, OFFSET_Y); 497 const path = new Path2D(fingerprintPath); 498 maskCtx.fillStyle = 'white'; 499 maskCtx.fill(path); 500 maskCtx.lineWidth = 20; 501 maskCtx.strokeStyle = 'white'; 502 maskCtx.stroke(path); 503 maskCtx.translate(-OFFSET_X, -OFFSET_Y); 504 505 // Get mask data 506 const maskData = maskCtx.getImageData(0, 0, width, height).data; 507 508 // Check if point is inside fingerprint 509 function getMaskValue(x, y) { 510 const px = Math.floor(x); 511 const py = Math.floor(y); 512 if (px < 0 || px >= width || py < 0 || py >= height) return 0; 513 const idx = (py * width + px) * 4; 514 return maskData[idx]; 515 } 516 517 function isInsideFingerprint(x, y) { 518 return getMaskValue(x, y) > 128; 519 } 520 521 // Check if point is near the edge of the fingerprint 522 function getEdgeDistance(x, y, checkRadius) { 523 const inside = isInsideFingerprint(x, y); 524 let minDist = checkRadius; 525 526 // Sample points in a circle to find edge 527 for (let angle = 0; angle < Math.PI * 2; angle += Math.PI / 4) { 528 for (let r = 1; r <= checkRadius; r += 2) {
529 const sx = x + Math.cos(angle) * r; 530 const sy = y + Math.sin(angle) * r; 531 const sampleInside = isInsideFingerprint(sx, sy); 532 if (sampleInside !== inside) { 533 minDist = Math.min(minDist, r); 534 break; 535 } 536 } 537 } 538 return { inside, distToEdge: minDist }; 539 } 540 541 // Generate dots 542 const gridCols = Math.ceil(width / CONFIG.cellSize); 543 const gridRows = Math.ceil(height / CONFIG.cellSize); 544 const dots = []; 545 const SCATTER_RADIUS = 25; // How far to scatter dots from edge 546 547 for (let row = 0; row < gridRows; row++) { 548 for (let col = 0; col < gridCols; col++) { 549 const seed = row * gridCols + col; 550 const random = seededRandom(seed); 551 552 if (random > CONFIG.fillRate) continue; 553 554 const x = col * CONFIG.cellSize; 555 const y = row * CONFIG.cellSize; 556 557 const { inside, distToEdge } = getEdgeDistance(x, y, SCATTER_RADIUS); 558 559 // Determine if dot should be shown based on edge proximity 560 let showDot = false; 561 if (inside) { 562 // Inside the shape - always show unless near edge with random chance 563 if (distToEdge > SCATTER_RADIUS * 0.4) { 564 showDot = true; // Far from edge, always show 565 } else { 566 // Near edge - small random chance to hide (creates scattered inner edge) 567 const hideChance = (1 - distToEdge / (SCATTER_RADIUS * 0.4)) * 0.25; 568 showDot = seededRandom(seed + 7000) > hideChance; 569 } 570 } else { 571 // Outside the shape - show with decreasing probability near edge (more dense) 572 if (distToEdge < SCATTER_RADIUS) { 573 const showChance = Math.pow(1 - distToEdge / SCATTER_RADIUS, 1.5) * 0.75; 574 showDot = seededRandom(seed + 8000) < showChance; 575 } 576 } 577 578 if (!showDot) continue; 579 580 const normalizedX = col / gridCols; 581 const normalizedY = row / gridRows; 582 const color = getBlendedColor(normalizedX, normalizedY); 583 const baseOpacity = 0.5 + seededRandom(seed + 3000) * 0.45; 584 const phase = seededRandom(seed + 4000) * Math.PI * 2; 585 586 // Calculate edge fade - dots near/outside edges are always lighter 587 let edgeFade = 1; 588 if (!inside) { 589 // Outside dots are always very light (20-40% opacity) 590 edgeFade = 0.2 + (1 - distToEdge / SCATTER_RADIUS) * 0.2; 591 } else if (distToEdge < SCATTER_RADIUS * 0.6) { 592 // Inside but near edge - fade based on distance 593 edgeFade = 0.4 + (distToEdge / (SCATTER_RADIUS * 0.6)) * 0.6; 594 } 595 596 // Calculate vertical fade factor (1 at top, 0 at bottom) 597 let verticalFade = 1; 598 if (normalizedY > FADE_START) { 599 verticalFade = 1 - Math.min(1, (normalizedY - FADE_START) / (FADE_END - FADE_START)); 600 // Apply easing for smoother fade 601 verticalFade = verticalFade * verticalFade; 602 } 603 604 // Calculate center fade factor (reduce opacity near center for text readability) 605 const dx = normalizedX - CENTER_X; 606 const dy = normalizedY - CENTER_Y; 607 const distFromCenter = Math.sqrt(dx * dx + dy * dy); 608 let centerFade = 1; 609 if (distFromCenter < CENTER_FADE_RADIUS) { 610 // Smooth falloff from edge to center 611 const t = 1 - (distFromCenter / CENTER_FADE_RADIUS); 612 centerFade = CENTER_MIN_OPACITY + (1 - CENTER_MIN_OPACITY) * (1 - t * t); 613 } 614 615 // Combined fade factor 616 const fadeFactor = verticalFade * centerFade * edgeFade; 617 618 // Individual animation speed variation (0.7x to 1.3x base speed) 619 const speedMult = 0.7 + seededRandom(seed + 5000) * 0.6; 620 621 // Secondary wave phase for more complex movement 622 const phase2 = seededRandom(seed + 6000) * Math.PI * 2; 623 624 dots.push({ 625 x, y, 626 // Current offset from original position (for mouse repulsion) 627 offsetX: 0, 628 offsetY: 0, 629 color, baseOpacity, phase, phase2, speedMult, fadeFactor, seed 630 }); 631 } 632 } 633 634 // Check for reduced motion preference 635 const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 636 637 // Mouse interaction configuration 638 const MOUSE_RADIUS = 80; // Radius of mouse influence 639 const REPULSION_STRENGTH = 50; // How far dots move away 640 const RETURN_SPEED = 0.15; // How fast dots return (0-1, higher = faster) 641 642 // Mouse position tracking (in canvas coordinates) 643 let mouseX = -1000; 644 let mouseY = -1000; 645 let mouseActive = false;
646 647 // Smooth mouse position for color effect (lerped) 648 let smoothMouseX = -1000; 649 let smoothMouseY = -1000; 650 let targetMouseX = -1000; 651 let targetMouseY = -1000; 652 653 // Get canvas bounding rect for coordinate conversion 654 function getCanvasCoords(clientX, clientY) { 655 const rect = canvas.getBoundingClientRect(); 656 const scaleX = width / rect.width; 657 const scaleY = height / rect.height; 658 return { 659 x: (clientX - rect.left) * scaleX, 660 y: (clientY - rect.top) * scaleY 661 }; 662 } 663 664 // Check if coordinates are within canvas bounds (with padding for edge effect) 665 function isNearCanvas(canvasX, canvasY) { 666 const padding = COLOR_RADIUS; 667 return canvasX >= -padding && canvasX <= width + padding && 668 canvasY >= -padding && canvasY <= height + padding; 669 } 670 671 // Track mouse at window level for color effect (works even when canvas is behind other elements) 672 const windowMouseMoveHandler = (e) => { 673 const coords = getCanvasCoords(e.clientX, e.clientY); 674 if (isNearCanvas(coords.x, coords.y)) { 675 targetMouseX = coords.x; 676 targetMouseY = coords.y; 677 } else { 678 targetMouseX = -1000; 679 targetMouseY = -1000; 680 } 681 }; 682 window.addEventListener('mousemove', windowMouseMoveHandler); 683 684 const documentMouseLeaveHandler = () => { 685 targetMouseX = -1000; 686 targetMouseY = -1000; 687 }; 688 document.addEventListener('mouseleave', documentMouseLeaveHandler); 689 690 // Canvas-level mouse tracking for repulsion (needs pointer-events) 691 const canvasMouseMoveHandler = (e) => { 692 const coords = getCanvasCoords(e.clientX, e.clientY); 693 mouseX = coords.x; 694 mouseY = coords.y; 695 mouseActive = true; 696 }; 697 canvas.addEventListener('mousemove', canvasMouseMoveHandler); 698 699 const canvasMouseLeaveHandler = () => { 700 mouseActive = false; 701 }; 702 canvas.addEventListener('mouseleave', canvasMouseLeaveHandler); 703 704 // Touch support for mobile 705 const touchStartHandler = (e) => { 706 const touch = e.touches[0]; 707 const coords = getCanvasCoords(touch.clientX, touch.clientY); 708 if (isNearCanvas(coords.x, coords.y)) { 709 targetMouseX = coords.x; 710 targetMouseY = coords.y; 711 smoothMouseX = targetMouseX; 712 smoothMouseY = targetMouseY; 713 } 714 }; 715 window.addEventListener('touchstart', touchStartHandler, { passive: true }); 716 717 const touchMoveHandler = (e) => { 718 const touch = e.touches[0]; 719 const coords = getCanvasCoords(touch.clientX, touch.clientY); 720 if (isNearCanvas(coords.x, coords.y)) { 721 targetMouseX = coords.x; 722 targetMouseY = coords.y; 723 } else { 724 targetMouseX = -1000; 725 targetMouseY = -1000; 726 } 727 }; 728 window.addEventListener('touchmove', touchMoveHandler, { passive: true }); 729 730 const touchEndHandler = () => { 731 targetMouseX = -1000; 732 targetMouseY = -1000; 733 }; 734 window.addEventListener('touchend', touchEndHandler); 735 736 // Animation loop 737 let animationId; 738 let lastTime = 0; 739 740 function animate(time) { 741 // Throttle framerate for performance (lower on mobile) 742 if (time - lastTime < CONFIG.frameThrottle) { 743 animationId = requestAnimationFrame(animate); 744 return; 745 } 746 lastTime = time; 747 748 // Smoothly interpolate mouse position for color effect 749 smoothMouseX += (targetMouseX - smoothMouseX) * MOUSE_LERP; 750 smoothMouseY += (targetMouseY - smoothMouseY) * MOUSE_LERP; 751 752 ctx.clearRect(0, 0, width, height); 753 754 const halfDot = CONFIG.dotSize / 2; 755 756 for (const dot of dots) { 757 // Calculate mouse repulsion 758 if (!prefersReducedMotion) { 759 const dx = dot.x - mouseX; 760 const dy = dot.y - mouseY; 761 const distance = Math.sqrt(dx * dx + dy * dy); 762 763 if (mouseActive && distance < MOUSE_RADIUS) { 764 // Calculate repulsion force (stronger when closer) 765 const force = (1 - distance / MOUSE_RADIUS) * REPULSION_STRENGTH; 766 const angle = Math.atan2(dy, dx); 767 768 // Target offset based on repulsion 769 const targetOffsetX = Math.cos(angle) * force; 770 const targetOffsetY = Math.sin(angle) * force; 771 772 // Smoothly move toward target offset 773 dot.offsetX += (targetOffsetX - dot.offsetX) * 0.3; 774 dot.offsetY += (targetOffsetY - dot.offsetY) * 0.3; 775 } else { 776 // Return to original position with spring effect 777 dot.offsetX *= (1 - RETURN_SPEED); 778 dot.offsetY *= (1 - RETURN_SPEED); 779 } 780 } 781 782 let opacity; 783 if (prefersReducedMotion) { 784 opacity = dot.baseOpacity; 785 } else { 786 // Primary wave with individual speed 787 const wave1 = Math.sin(time * CONFIG.animationSpeed * dot.speedMult + dot.phase); 788
789 // Secondary wave at different frequency for complexity 790 const wave2 = Math.sin(time * CONFIG.animationSpeed * 0.7 + dot.phase2); 791 792 // Combine waves (primary dominates, secondary adds variation) 793 const combinedWave = wave1 * 0.7 + wave2 * 0.3; 794 795 // Sharpen the wave for more "pop" (power curve) 796 const normalizedWave = (combinedWave + 1) / 2; // 0 to 1 797 const sharpenedWave = Math.pow(normalizedWave, 1.5); 798 799 // Occasional sparkle effect - random bright flash 800 const sparkleChance = Math.sin(time * 0.001 + dot.seed) * 0.5 + 0.5; 801 const sparkle = sparkleChance > 0.97 ? 1.5 : 1; 802 803 const minOp = Math.max(CONFIG.minOpacity, dot.baseOpacity * 0.08); 804 opacity = (minOp + (dot.baseOpacity - minOp) * sharpenedWave) * sparkle; 805 opacity = Math.min(opacity, 1); // Clamp to 1 806 } 807 808 // Apply vertical fade 809 const finalOpacity = opacity * dot.fadeFactor; 810 811 // Calculate color based on distance to mouse (brand color glow effect) 812 const colorDx = dot.x - smoothMouseX; 813 const colorDy = dot.y - smoothMouseY; 814 const colorDistance = Math.sqrt(colorDx * colorDx + colorDy * colorDy); 815 816 let finalR = dot.color.r; 817 let finalG = dot.color.g; 818 let finalB = dot.color.b; 819 let opacityBoost = 1; 820 821 if (colorDistance < COLOR_RADIUS) { 822 // Calculate blend factor with smooth falloff 823 const normalizedDist = colorDistance / COLOR_RADIUS; 824 const blendFactor = Math.pow(1 - normalizedDist, COLOR_FALLOFF); 825 826 // Lerp colors toward brand color 827 finalR = Math.round(dot.color.r + (BRAND_COLOR.r - dot.color.r) * blendFactor); 828 finalG = Math.round(dot.color.g + (BRAND_COLOR.g - dot.color.g) * blendFactor); 829 finalB = Math.round(dot.color.b + (BRAND_COLOR.b - dot.color.b) * blendFactor); 830 831 // Boost opacity slightly for dots near cursor (creates glow effect) 832 opacityBoost = 1 + blendFactor * 0.6; 833 } 834 835 const effectiveOpacity = Math.min(finalOpacity * opacityBoost, 1); 836 837 // Render dot with offset 838 const renderX = dot.x + dot.offsetX; 839 const renderY = dot.y + dot.offsetY; 840 841 ctx.fillStyle = `rgba(${finalR}, ${finalG}, ${finalB}, ${effectiveOpacity})`; 842 ctx.fillRect( 843 renderX - halfDot, 844 renderY - halfDot, 845 CONFIG.dotSize, 846 CONFIG.dotSize 847 ); 848 } 849 850 animationId = requestAnimationFrame(animate); 851 } 852 853 // Only start animation when visible (IntersectionObserver fires immediately on observe) 854 const observer = new IntersectionObserver((entries) => { 855 entries.forEach(entry => { 856 if (entry.isIntersecting) { 857 if (!animationId) { 858 lastTime = 0; // Reset timing 859 animationId = requestAnimationFrame(animate); 860 } 861 } else { 862 if (animationId) { 863 cancelAnimationFrame(animationId); 864 animationId = null; 865 } 866 } 867 }); 868 }, { threshold: 0 }); 869 870 // Start observing - animation will only begin if canvas is visible 871 observer.observe(canvas); 872 873 // Store cleanup function 874 cleanupHeroDotGrid = () => { 875 if (animationId) { 876 cancelAnimationFrame(animationId); 877 animationId = null; 878 } 879 observer.disconnect(); 880 window.removeEventListener('mousemove', windowMouseMoveHandler); 881 document.removeEventListener('mouseleave', documentMouseLeaveHandler); 882 canvas.removeEventListener('mousemove', canvasMouseMoveHandler); 883 canvas.removeEventListener('mouseleave', canvasMouseLeaveHandler); 884 window.removeEventListener('touchstart', touchStartHandler); 885 window.removeEventListener('touchmove', touchMoveHandler); 886 window.removeEventListener('touchend', touchEndHandler); 887 }; 888 } 889 890 // Run on page load 891 if (document.readyState === 'loading') { 892 document.addEventListener('DOMContentLoaded', initHeroDotGrid); 893 } else { 894 initHeroDotGrid(); 895 } 896 897 // Re-run on Astro page transitions 898 document.addEventListener('astro:page-load', initHeroDotGrid); 899 900 // Cleanup on page navigation 901 document.addEventListener('astro:before-swap', () => { 902 if (cleanupHeroDotGrid) { 903 cleanupHeroDotGrid(); 904 cleanupHeroDotGrid = null; 905 } 906 }); 907})();</script>
907 <div class="px-6 md:px-16" data-astro-cid-eaz7zv6b> <div class="max-w-3xl mx-auto" data-astro-cid-eaz7zv6b> <div class="flex flex-col gap-8 items-center w-full relative z-10" data-astro-cid-eaz7zv6b> <!-- Badge --> <div class="inline-flex items-center gap-2 h-8 px-4 rounded-full border border-[var(--alpha-border)] bg-white shadow-sm"><svg width="16" height="16" class="text-zinc-700" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M2 4.75C2 3.23122 3.23122 2 4.75 2H11.1616C11.8909 2 12.5904 2.28973 13.1061 2.80546L21.1161 10.8155C22.1901 11.8894 22.1901 13.6306 21.1161 14.7045L14.7045 21.1161C13.6306 22.1901 11.8894 22.1901 10.8155 21.1161L2.80546 13.1061C2.28973 12.5904 2 11.8909 2 11.1616V4.75ZM7.5 9C8.32843 9 9 8.32843 9 7.5C9 6.67157 8.32843 6 7.5 6C6.67157 6 6 6.67157 6 7.5C6 8.32843 6.67157 9 7.5 9Z" fill="currentColor"/></svg> 908<span class="eyebrow text-xs text-zinc-700">Pricing</span></div><style is:global> 909 .mask-logo { 910 mask-image: url('/logo-symbol.svg'); 911 mask-size: contain; 912 mask-repeat: no-repeat; 913 mask-position: center; 914 -webkit-mask-image: url('/logo-symbol.svg'); 915 -webkit-mask-size: contain; 916 -webkit-mask-repeat: no-repeat; 917 -webkit-mask-position: center; 918 } 919 </style> <!-- Heading and Description --> <div class="flex flex-col gap-3 items-center text-center [&_p:not([class*=max-w-])]:max-w-2xl w-full [&_h1]:text-balance" data-astro-cid-eaz7zv6b> <h1> 920Pricing that doesn't punish growth 921</h1> <p class="text-lg"> 922Start free. Scale without seat fees or surprise invoices. 923</p> </div> <!-- Actions --> </div> </div> </div> </section> </div> </section> <section class="page-section" data-variant="light" data-astro-cid-dnku4hyr> <div class="section-container" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content --> <section class="relative"> <div class="w-full max-w-5xl mx-auto px-4"> <!-- Billing toggle (above card, centered) --> <div class="flex justify-center mb-6"> <!-- Mobile: native dropdown --><div class="hidden" data-astro-cid-twm5uxey> <select data-tab-select data-variant="default" class="h-10 px-4 pr-8 rounded-full text-sm font-semibold appearance-none bg-no-repeat cursor-pointer border bg-[#f5f5f5] text-zinc-900 border-zinc-200" style="background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-position: right 0.75rem center;" data-astro-cid-twm5uxey> <option value="yearly" selected data-astro-cid-twm5uxey> Annual </option><option value="monthly" data-astro-cid-twm5uxey> Monthly </option> </select> </div> <!-- Desktop: pill tabs --> <div class="inline-flex items-center rounded-full bg-[#f5f5f5]" role="tablist" data-variant="default" id="billing-tabs" data-astro-cid-twm5uxey> <button type="button" role="tab" aria-selected="true" data-tab="yearly" class="flex items-center justify-center gap-2 h-10 px-4 rounded-full text-sm font-semibold transition-all flex-1 bg-white text-zinc-900 tab-active-shadow" data-astro-cid-twm5uxey> <span data-astro-cid-twm5uxey>Annual</span> <span class="text-xs px-1.5 py-0.5 rounded-full text-white whitespace-nowrap bg-jade-500" data-astro-cid-twm5uxey> ~ 30% off </span> </button><button type="button" role="tab" data-tab="monthly" class="flex items-center justify-center gap-2 h-10 px-4 rounded-full text-sm font-semibold transition-all flex-1 text-zinc-700 hover:text-zinc-900" data-astro-cid-twm5uxey> <span data-astro-cid-twm5uxey>Monthly</span> </button> </div> </div> <!-- Product Pricing (full width) --> <div id="platform-card" style="will-change: transform, opacity; transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 250ms cubic-bezier(0.4, 0, 0.2, 1);"> <div class="blob-card rounded-2xl overflow-hidden relative p-6 md:p-8 w-full" data-astro-cid-gijzu423> <!-- Gradient background with animated blobs --> <div class="absolute inset-0 rounded-2xl overflow-hidden bg-primary-500" data-astro-cid-gijzu423> <!-- Animated blobs --> <div class="blob-card-blob blob-card-blob-1" data-astro-cid-gijzu423></div> <div class="blob-card-blob blob-card-blob-2" data-astro-cid-gijzu423></div> <div class="blob-card-blob blob-card-blob-3" data-astro-cid-gijzu423></div> <div class="blob-card-blob blob-card-blob-4" data-astro-cid-gijzu423></div> <div class="blob-card-blob blob-card-blob-5" data-astro-cid-gijzu423></div> <!-- Noise overlay to reduce gradient banding --> <div class="blob-card-noise" data-astro-cid-gijzu423></div> </div> <!-- Content slot --> <div class="relative z-10 h-full" data-astro-cid-gijzu423> <div class="flex flex-col md:flex-row gap-8"> <!-- Left column: Product info --> <div class="w-full md:w-1/2 flex flex-col gap-5"> <span class="font-semibold text-base text-white">Platform</span> <!-- Headline & description --> <div class="flex flex-col gap-2"> <h3 class="text-white">
923Everything you need to identify visitors</h3> <p class="text-base text-white/80 leading-6">Our plans are based on the number of unique companies we ID each month. Full access to all features included.</p> </div> <!-- Feature list --> <div class="flex flex-col gap-2"> <div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 924 <span>Company identification</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 925 <span>User identification (Identity Layer)</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 926 <span>Intent signal detection</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 927 <span>Real-time Slack & email alerts</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 928 <span>CRM sync (HubSpot, Salesforce, Pipedrive)</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.
9280858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 929 <span>Unlimited team members</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 930 <span>REST API access</span> </div><div class="flex items-start gap-3 text-base text-white leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 931 <span>GDPR compliance tools</span> </div><div class="flex items-start gap-3 text-base text-white leading-6 opacity-50"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 932 <span>And more...</span> </div> </div> <!-- Buttons --> <div class="flex flex-col sm:flex-row gap-2 mt-auto items-stretch sm:items-start"> <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50 w-full sm:w-auto justify-center"> 933Get started 934</a>
934<script> 935 (function() { 936 function initButtonArrows() { 937 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 938 if (button.dataset.btnArrowInit) return; 939 button.dataset.btnArrowInit = 'true'; 940 941 var icon = button.querySelector('.btn-arrow-icon'); 942 if (!icon) return; 943 944 button.addEventListener('mouseenter', function() { 945 icon.classList.remove('slide-out'); 946 icon.classList.add('slide-in'); 947 }); 948 949 button.addEventListener('mouseleave', function() { 950 icon.classList.remove('slide-in'); 951 icon.classList.add('slide-out'); 952 }); 953 }); 954 } 955 956 if (document.readyState === 'loading') { 957 document.addEventListener('DOMContentLoaded', initButtonArrows); 958 } else { 959 initButtonArrows(); 960 } 961 962 document.addEventListener('astro:page-load', initButtonArrows); 963 })(); 964</script>
964 <a href="/demo" class="inline-flex items-center justify-center gap-2 pl-1 pr-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white/10 border border-white/10 !text-zinc-100 hover:bg-white/20 backdrop-blur-sm w-full sm:w-auto justify-center"><span class="flex items-center -space-x-1.5 isolate"> <span class="w-8 h-8 bg-jade-500 rounded-full border-2 border-white/20 flex items-center justify-center z-30"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" class="w-5 h-5"> <path fill-rule="evenodd" clip-rule="evenodd" d="M9.0017 14C9.0017 10.134 12.1357 6.99999 16.0017 6.99999C19.8677 6.99999 23.0017 10.134 23.0017 14C23.0017 17.866 19.8677 21 16.0017 21C12.1357 21 9.0017 17.866 9.0017 14ZM16.0017 11C16.554 11 17.0017 11.4477 17.0017 12V13.5858L18.3755 14.9595C18.766 15.3501 18.766 15.9832 18.3755 16.3738C17.9849 16.7643 17.3518 16.7643 16.9613 16.3738L15.2946 14.7071C15.1071 14.5196 15.0017 14.2652 15.0017 14V12C15.0017 11.4477 15.4494 11 16.0017 11Z" fill="white"></path> <path d="M1.59659 9.34793C1.21298 7.17236 2.66566 5.09772 4.84123 4.71411L11.7349 3.49857C13.2569 3.23019 14.7296 3.86059 15.6083 5.00852C13.1074 5.11659 10.871 6.24533 9.30541 7.98866L1.59659 9.34793Z" fill="white"></path> <path d="M7.80399 10.2843L1.94389 11.3175L2.63848 15.2568C3.0221 17.4324 5.09673 18.885 7.27231 18.5014L8.12348 18.3513C7.40983 17.0617 7.00356 15.5783 7.00356 14C7.00356 12.675 7.28987 11.417 7.80399 10.2843Z" fill="white"></path> </svg> </span> <img src="/_astro/leon.c0wmlxiL_Z2wsuca.webp" alt="" class="w-8 h-8 border-2 border-white/20 rounded-full object-cover z-20" loading="lazy" decoding="auto" width="600" height="600"><img src="/_astro/dean.7I-5NM-k_Z114K5E.webp" alt="" class="w-8 h-8 border-2 border-white/20 rounded-full object-cover z-10" loading="lazy" decoding="auto" width="600" height="600"> </span><span>Talk to sales</span></a>
964<script> 965 (function() { 966 function initButtonArrows() { 967 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 968 if (button.dataset.btnArrowInit) return; 969 button.dataset.btnArrowInit = 'true'; 970 971 var icon = button.querySelector('.btn-arrow-icon'); 972 if (!icon) return; 973 974 button.addEventListener('mouseenter', function() { 975 icon.classList.remove('slide-out'); 976 icon.classList.add('slide-in'); 977 }); 978 979 button.addEventListener('mouseleave', function() { 980 icon.classList.remove('slide-in'); 981 icon.classList.add('slide-out'); 982 }); 983 }); 984 } 985 986 if (document.readyState === 'loading') { 987 document.addEventListener('DOMContentLoaded', initButtonArrows); 988 } else { 989 initButtonArrows(); 990 } 991 992 document.addEventListener('astro:page-load', initButtonArrows); 993 })(); 994</script>
994 </div> <!-- Footer note --> <p class="text-sm text-white/60">14-day free trial · No credit card required</p> </div> <!-- Right column: Pricing tiers --> <div id="pricing-tiers" class="w-full md:w-1/2"> <div class="rounded-xl border border-white/10 overflow-hidden bg-black/5 p-6 flex flex-col gap-4"> <!-- Header row --> <div class="flex justify-between"> <span class="font-semibold text-sm text-white">Company IDs</span> <span class="font-semibold text-sm text-white">Monthly Cost</span> </div> <!-- Tier rows --> <div class="flex justify-between"> <span class="text-sm text-white">0-50</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-0" data-amount="49" data-yearly-price="49" data-monthly-price="79"><span class="price-value">$49</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">51-100</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-1" data-amount="69" data-yearly-price="69" data-monthly-price="109"><span class="price-value">$69</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">101-250</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-2" data-amount="99" data-yearly-price="99" data-monthly-price="149"><span class="price-value">$99</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">251-500</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-3" data-amount="139" data-yearly-price="139" data-monthly-price="199"><span class="price-value">$139</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">501-750</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-4" data-amount="179" data-yearly-price="179" data-monthly-price="269"><span class="price-value">$179</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">751-1,000</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-5" data-amount="229" data-yearly-price="229" data-monthly-price="339"><span class="price-value">$229</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">1,001-2,000</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-6" data-amount="279" data-yearly-price="279" data-monthly-price="419"><span class="price-value">$279</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">2,001-3,000</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-7" data-amount="349" data-yearly-price="349" data-monthly-price="529"><span class="price-value">$349</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">3,001-4,000</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-8" data-amount="439" data-yearly-price="439" data-monthly-price="649"><span class="price-value">$439</span></span> </div><div class="flex justify-between"> <span class="text-sm text-white">4,001-5,000</span> <span class="text-sm text-lavender-100 font-semibold price-localized" id="tier-price-9" data-amount="529" data-yearly-price="529" data-monthly-price="779"><span class="price-value">$529</span></span> </div> <!-- Custom row --> <div class="flex justify-between"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" class="w-5 h-5" aria-hidden="true"> <path d="M12 6V18M6 12H18" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> <span class="text-sm text-white/20">Custom</span> </div> </div> </div> </div> </div> </div>
994<script> 995 (function() { 996 var tabVisible = true; 997 var cardObservers = new Map(); 998 999 function setCardAnimationState(card, isVisible) { 1000 var shouldPlay = isVisible && tabVisible; 1001 var state = shouldPlay ? 'running' : 'paused'; 1002 var blobs = card.querySelectorAll('.blob-card-blob'); 1003 blobs.forEach(function(blob) { 1004 blob.style.animationPlayState = state; 1005 blob.style.willChange = shouldPlay ? 'transform' : 'auto'; 1006 }); 1007 } 1008 1009 // Randomize blob animation delays for more organic movement 1010 function initBlobCardAnimations() { 1011 var cards = document.querySelectorAll('.blob-card'); 1012 1013 cards.forEach(function(card) { 1014 var blobs = card.querySelectorAll('.blob-card-blob'); 1015 blobs.forEach(function(blob) { 1016 // Random delay between 0 and the animation duration 1017 var randomDelay = -(Math.random() * 15); // negative delay to start mid-animation 1018 blob.style.animationDelay = randomDelay + 's'; 1019 }); 1020 1021 // Set up IntersectionObserver to pause animations when off-screen 1022 if ('IntersectionObserver' in window) { 1023 var observer = new IntersectionObserver(function(entries) { 1024 entries.forEach(function(entry) { 1025 setCardAnimationState(entry.target, entry.isIntersecting); 1026 }); 1027 }, { threshold: 0 }); 1028 observer.observe(card); 1029 cardObservers.set(card, observer); 1030 } else { 1031 // Fallback: assume visible 1032 setCardAnimationState(card, true); 1033 } 1034 }); 1035 } 1036 1037 // Page Visibility API - pause animations when tab is hidden 1038 function initVisibilityHandler() { 1039 document.addEventListener('visibilitychange', function() { 1040 tabVisible = !document.hidden; 1041 var cards = document.querySelectorAll('.blob-card'); 1042 cards.forEach(function(card) { 1043 // Check if this card's observer has detected visibility 1044 var observer = cardObservers.get(card); 1045 // We need to re-evaluate visibility, but for simplicity just update all 1046 var blobs = card.querySelectorAll('.blob-card-blob'); 1047 blobs.forEach(function(blob) { 1048 if (!tabVisible) { 1049 blob.style.animationPlayState = 'paused'; 1050 } 1051 // When tab becomes visible, IntersectionObserver will handle it 1052 }); 1053 }); 1054 }); 1055 } 1056 1057 function cleanup() { 1058 cardObservers.forEach(function(observer) { 1059 observer.disconnect(); 1060 }); 1061 cardObservers.clear(); 1062 } 1063 1064 function init() { 1065 cleanup(); 1066 initBlobCardAnimations(); 1067 } 1068 1069 // Initialize visibility handler once 1070 initVisibilityHandler(); 1071 1072 if (document.readyState === 'loading') { 1073 document.addEventListener('DOMContentLoaded', init); 1074 } else { 1075 init(); 1076 } 1077 1078 // Re-init on Astro page transitions 1079 document.addEventListener('astro:page-load', init); 1080 document.addEventListener('astro:before-swap', cleanup); 1081 })(); 1082</script>
1082 </div> <!-- Developers & Agency cards --> <div class="flex flex-col md:flex-row gap-6 mt-6"> <!-- For platforms & developers --> <div class="bg-zinc-50 overflow-hidden rounded-2xl p-0 flex-1 flex flex-col"> <div class="flex flex-col gap-4 p-6 flex-1"> <!-- Header row: label --> <span class="font-semibold text-base text-primary-500">For platforms & developers</span> <!-- Headline & description --> <div class="flex flex-col gap-2"> <h3>Build on Snitcher infrastructure</h3> <p class="text-base text-zinc-900 leading-6">Embed <a href="/radar" class="text-primary-500 hover:underline">Radar</a> for visitor tracking or use <a href="/ip-to-company-api" class="text-primary-500 hover:underline">IP-to-company</a> lookups.</p> </div> <!-- Feature list --> <div class="flex flex-col gap-2 flex-1"> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1083 <span>White-label under your brand</span> </div> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1084 <span>Data only â no dashboard needed</span> </div> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1085 <span>Developer-first APIs & SDKs</span> </div> </div> <!-- Talk to sales button --> <a href="/demo" class="inline-flex items-center justify-center gap-2 pl-1 pr-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50"><span class="flex items-center -space-x-1.5 isolate"> <span class="w-8 h-8 bg-jade-500 rounded-full border-2 border-white flex items-center justify-center z-30"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" class="w-5 h-5"> <path fill-rule="evenodd" clip-rule="evenodd" d="M9.0017 14C9.0017 10.134 12.1357 6.99999 16.0017 6.99999C19.8677 6.99999 23.0017 10.134 23.0017 14C23.0017 17.866 19.8677 21 16.0017 21C12.1357 21 9.0017 17.866 9.0017 14ZM16.0017 11C16.554 11 17.0017 11.4477 17.0017 12V13.5858L18.3755 14.9595C18.766 15.3501 18.766 15.9832 18.3755 16.3738C17.9849 16.7643 17.3518 16.7643 16.9613 16.3738L15.2946 14.7071C15.1071 14.5196 15.0017 14.2652 15.0017 14V12C15.0017 11.4477 15.4494 11 16.0017 11Z" fill="white"></path> <path d="M1.59659 9.34793C1.21298 7.17236 2.66566 5.09772 4.84123 4.71411L11.7349 3.49857C13.2569 3.23019 14.7296 3.86059 15.6083 5.00852C13.1074 5.11659 10.871 6.24533 9.30541 7.98866L1.59659 9.34793Z" fill="white"></path> <path d="M7.80399 10.2843L1.94389 11.3175L2.63848 15.2568C3.0221 17.4324 5.09673 18.885 7.27231 18.5014L8.12348 18.3513C7.40983 17.0617 7.00356 15.5783 7.00356 14C7.00356 12.675 7.28987 11.417 7.80399 10.2843Z" fill="white"></path> </svg> </span> <img src="/_astro/leon.c0wmlxiL_Z2wsuca.webp" alt="" class="w-8 h-8 border-2 border-white rounded-full object-cover z-20" loading="lazy" decoding="auto" width="600" height="600"><img src="/_astro/dean.7I-5NM-k_Z114K5E.webp" alt="" class="w-8 h-8 border-2 border-white rounded-full object-cover z-10" loading="lazy" decoding="auto" width="600" height="600"> </span><span>Talk to sales</span></a>
1085<script> 1086 (function() { 1087 function initButtonArrows() { 1088 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1089 if (button.dataset.btnArrowInit) return; 1090 button.dataset.btnArrowInit = 'true'; 1091 1092 var icon = button.querySelector('.btn-arrow-icon'); 1093 if (!icon) return; 1094 1095 button.addEventListener('mouseenter', function() { 1096 icon.classList.remove('slide-out'); 1097 icon.classList.add('slide-in'); 1098 }); 1099 1100 button.addEventListener('mouseleave', function() { 1101 icon.classList.remove('slide-in'); 1102 icon.classList.add('slide-out'); 1103 }); 1104 }); 1105 } 1106 1107 if (document.readyState === 'loading') { 1108 document.addEventListener('DOMContentLoaded', initButtonArrows); 1109 } else { 1110 initButtonArrows(); 1111 } 1112 1113 document.addEventListener('astro:page-load', initButtonArrows); 1114 })(); 1115</script>
1115 </div> </div> <!-- Agency Partner Program --> <div class="bg-zinc-50 overflow-hidden rounded-2xl p-0 flex-1 flex flex-col"> <div class="flex flex-col gap-4 p-6 flex-1"> <!-- Header row: label --> <span class="font-semibold text-base text-primary-500">Agency Partner Program</span> <!-- Headline & description --> <div class="flex flex-col gap-2"> <h3>Offer Snitcher to your clients</h3> <p class="text-base text-zinc-900 leading-6">Resell or manage Snitcher accounts on behalf of your clients.</p> </div> <!-- Feature list --> <div class="flex flex-col gap-2 flex-1"> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1116 <span>Manage multiple client accounts</span> </div> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1117 <span>Partner pricing & discounts</span> </div> <div class="flex items-start gap-3 text-base text-zinc-900 leading-6"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1118 <span>Dedicated partner support</span> </div> </div> <!-- Start for free button --> <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50"> 1119Start for free 1120</a>
1120<script> 1121 (function() { 1122 function initButtonArrows() { 1123 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1124 if (button.dataset.btnArrowInit) return; 1125 button.dataset.btnArrowInit = 'true'; 1126 1127 var icon = button.querySelector('.btn-arrow-icon'); 1128 if (!icon) return; 1129 1130 button.addEventListener('mouseenter', function() { 1131 icon.classList.remove('slide-out'); 1132 icon.classList.add('slide-in'); 1133 }); 1134 1135 button.addEventListener('mouseleave', function() { 1136 icon.classList.remove('slide-in'); 1137 icon.classList.add('slide-out'); 1138 }); 1139 }); 1140 } 1141 1142 if (document.readyState === 'loading') { 1143 document.addEventListener('DOMContentLoaded', initButtonArrows); 1144 } else { 1145 initButtonArrows(); 1146 } 1147 1148 document.addEventListener('astro:page-load', initButtonArrows); 1149 })(); 1150</script>
1150 </div> </div> </div> </div> </section>
1150<script> 1151 (function() { 1152 var tierCount = 10; 1153 var card = null; 1154 var currentIsYearly = true; 1155 var animating = false; 1156 1157 function formatPrice(amount) { 1158 if (window.SnitcherCurrency && window.SnitcherCurrency.isReady()) { 1159 return window.SnitcherCurrency.formatPrice(amount); 1160 } 1161 return '$' + amount; 1162 } 1163 1164 function updatePrices(isYearly) { 1165 for (var i = 0; i < tierCount; i++) { 1166 var cell = document.getElementById('tier-price-' + i); 1167 if (cell) { 1168 var price = isYearly 1169 ? cell.getAttribute('data-yearly-price') 1170 : cell.getAttribute('data-monthly-price'); 1171 cell.setAttribute('data-amount', price); 1172 var valueEl = cell.querySelector('.price-value'); 1173 if (valueEl) { 1174 valueEl.textContent = formatPrice(parseInt(price, 10)); 1175 } 1176 } 1177 } 1178 } 1179 1180 var easing = 'transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 250ms cubic-bezier(0.4, 0, 0.2, 1)'; 1181 1182 function slideAndSwap(isYearly) { 1183 if (!card || isYearly === currentIsYearly || animating) return; 1184 currentIsYearly = isYearly; 1185 animating = true; 1186 1187 var exitX = isYearly ? '-32px' : '32px'; 1188 var enterX = isYearly ? '32px' : '-32px'; 1189 1190 // Phase 1: slide out + fade out 1191 card.style.transform = 'translateX(' + exitX + ')'; 1192 card.style.opacity = '0'; 1193 1194 function onExitDone() { 1195 card.removeEventListener('transitionend', onExitDone); 1196 1197 updatePrices(isYearly); 1198 1199 // Jump to enter position without transition 1200 card.style.transition = 'none'; 1201 card.style.transform = 'translateX(' + enterX + ')'; 1202 1203 // Double rAF ensures the browser has committed the jump before transitioning 1204 requestAnimationFrame(function() { 1205 requestAnimationFrame(function() { 1206 card.style.transition = easing; 1207 card.style.transform = 'translateX(0)'; 1208 card.style.opacity = '1'; 1209 1210 function onEnterDone() { 1211 card.removeEventListener('transitionend', onEnterDone); 1212 animating = false; 1213 } 1214 card.addEventListener('transitionend', onEnterDone); 1215 }); 1216 }); 1217 } 1218 card.addEventListener('transitionend', onExitDone); 1219 } 1220 1221 function initBillingTabs() { 1222 card = document.getElementById('platform-card'); 1223 var billingTabs = document.getElementById('billing-tabs'); 1224 if (billingTabs) { 1225 billingTabs.addEventListener('tabchange', function(e) { 1226 var isYearly = e.detail.tabId === 'yearly'; 1227 // Purchase-intent signal native pageviews can't show: which billing 1228 // cycle the visitor considered, in their own currency/region. 1229 if (isYearly !== currentIsYearly && !animating && window.snitcherTrack) { 1230 var currency = window.SnitcherCurrency; 1231 window.snitcherTrack('pricing_billing_toggled', { 1232 billing: isYearly ? 'yearly' : 'monthly', 1233 currency: currency && currency.isReady && currency.isReady() ? currency.getCode() : null, 1234 region: currency && currency.getRegion ? currency.getRegion() : null 1235 }); 1236 } 1237 slideAndSwap(isYearly); 1238 }); 1239 } 1240 } 1241 1242 if (document.readyState === 'loading') { 1243 document.addEventListener('DOMContentLoaded', initBillingTabs); 1244 } else { 1245 initBillingTabs(); 1246 } 1247 })(); 1248</script>
1248 </div> </section> <section class="page-section bg-zinc-50" data-variant="light" data-astro-cid-dnku4hyr> <div class="section-container bg-white" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content --> <section class="w-full"> <div class="mb-8 text-center flex flex-col items-center"> <h2 class="mb-2 max-w-3xl text-balance">All our features for<br />all of our customers</h2> <p class="text-base max-w-2xl">Snitcher helps you understand who's on your site and what they want. These are the features that make it work.</p> </div> <div class="bg-white border border-zinc-200 shadow overflow-hidden rounded-2xl p-0 shadow-md overflow-hidden shadow-lg"> <div class="flex flex-col gap-px bg-zinc-200"> <div class="grid gap-px grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 bg-zinc-200"> <div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1249 <span>Website visitor tracking</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1250 <span>Company identification</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1251 <span>Contact-level identification*</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1252 <span>Contact enrichment</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.
12520858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1253 <span>Technographic data reveal</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1254 <span>Multi-touch attribution</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1255 <span>Real-time activity tracking</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1256 <span>Account-level insights</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1257 <span>Buyer persona filters</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1258 <span>Industry segmentation</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.
12580858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1259 <span>Automated lead scoring</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1260 <span>Automated workflows</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1261 <span>Trigger-based notifications</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1262 <span>CRM integrations</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1263 <span>B2B web analytics</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1264 <span>Visitor activity tracking</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.
12640858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1265 <span>Campaign tracking</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1266 <span>Custom analytics</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1267 <span>Outreach integrations</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1268 <span>Real-time alerts</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1269 <span>Returning visitor alerts</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.0858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1270 <span>WFH tracking</span> </div><div class="flex items-start gap-3 bg-white px-6 py-5 items-center min-w-0 font-medium text-zinc-900"> <svg width="20" height="20" class="mt-0.5 shrink-0 text-primary-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.4299 4.20121C20.0092 4.57669 20.1744 5.3507 19.799 5.93002L11.049 19.43C10.835 19.7601 10.4782 19.9702 10.
12700858 19.9972C9.69333 20.0242 9.31109 19.8649 9.05399 19.5672L4.30399 14.0672C3.85276 13.5447 3.91052 12.7554 4.433 12.3041C4.95547 11.8529 5.74482 11.9106 6.19605 12.4331L9.85717 16.6723L17.7011 4.57028C18.0766 3.99096 18.8506 3.82573 19.4299 4.20121Z" fill="currentColor"/></svg> 1271 <span>Marketing automation sync</span> </div><div class="bg-white px-6 py-5 flex items-center bg-zinc-50"> <span class="font-medium text-zinc-500">. . . and many more.</span> </div> </div> </div> </div> </section> </div> </section> <section class="page-section" data-variant="light" data-astro-cid-dnku4hyr> <div class="section-container" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content --> <section class="testimonial-section relative overflow-hidden flex items-center justify-center px-6 sm:px-10 py-8 md:py-10 bg-palatinate-100" data-testimonial-section data-variant="light" style="--ts-dot-inactive:rgba(63,63,70,0.25);--ts-dot-inactive-hover:rgba(63,63,70,0.5);--ts-dot-active:var(--color-palatinate-600, #3e3ee6);--ts-dot-focus:var(--color-palatinate-500, #4c4cff);" data-astro-cid-7ajslof7> <!-- Wavy lines decorative background --> <!-- Bordered card (border applied via variant; particles is borderless) --> <div class="relative w-full max-w-[1340px] bg-transparent md:min-h-[496px]" data-astro-cid-7ajslof7> <div class="relative overflow-hidden flex flex-col items-center justify-center h-full px-6 sm:px-10 md:px-20 py-12 md:py-16 md:min-h-[496px]" data-astro-cid-7ajslof7> <!-- Soft radial glow behind quote --> <div class="pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[120%] max-w-[1400px] aspect-[1200/449]" aria-hidden="true" style="background: radial-gradient(ellipse at center, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.5) 35%, rgba(255,255,255,0) 70%);" data-astro-cid-7ajslof7></div> <!-- Slides (grid stack so the container sizes to the tallest) --> <div class="testimonial-section__slides relative grid w-full place-items-center" data-astro-cid-7ajslof7> <article class="testimonial-section__slide is-active" data-slide-index="0" data-astro-cid-7ajslof7> <div class="flex flex-col items-center justify-center gap-4 text-center h-full" data-astro-cid-7ajslof7> <div class="size-12 rounded-xl overflow-hidden bg-palatinate-100" data-astro-cid-7ajslof7> <img src="/_astro/hs-charles-tenot.DRPQ8ha-_6c6i2.webp" alt="Charles Tenot" class="size-12 rounded-xl object-cover" loading="lazy" decoding="auto" data-astro-cid-7ajslof7 width="200" height="200"> </div> <div class="flex flex-col items-center gap-8 max-w-[1080px]" data-astro-cid-7ajslof7> <h2 class="font-display font-semibold text-3xl md:text-5xl leading-[1.15] tracking-tight text-balance text-zinc-800" data-astro-cid-7ajslof7> 1272“Snitcher is simply the best company-level website visitor identification provider on the market.” 1273</h2> <div class="flex flex-wrap items-center justify-center gap-4" data-astro-cid-7ajslof7> <div class="flex h-6 items-center pr-4 border-r border-zinc-200" data-astro-cid-7ajslof7> <img src="/logos/main/lemlist.svg" alt="lemlist logo" class="h-full w-auto object-contain" loading="lazy" decoding="auto" data-astro-cid-7ajslof7> </div> <div class="flex items-center gap-1" data-astro-cid-7ajslof7> <span class="text-sm font-semibold leading-none text-zinc-800" data-astro-cid-7ajslof7>Charles Tenot</span> <span class="text-xs leading-4 text-zinc-500/50" aria-hidden="true" data-astro-cid-7ajslof7>â</span> <span class="text-sm leading-4 text-zinc-500" data-astro-cid-7ajslof7>Chief Operating Officer</span> </div> </div> </div> </div> </article> </div> <!-- Dots --> <!-- Optional slot for extra content below the testimonial (e.g. CTA) --> </div> </div> </section> <!-- Global rules: the TestimonialSection sits CONTAINED inside the standard 1274 PageSection box (side borders + corner pseudos stay visible â same 1275 visual language as every other section on the page). We: 1276 - zero the section-container's vertical padding so the testimonial's 1277 own padding governs spacing (no double-padding); horizontal padding 1278 is preserved so the side borders + corner pseudos keep their gutter 1279 - paint the page-section bg (the bleed) with the variant's colour so 1280 purple content isn't surrounded by grey --> <!-- Dot styles are GLOBAL so other components (e.g. the careers photo carousel) 1281 can reuse the exact same selectors + active state without redefining. The 1282 --ts-dot-* variables are inherited from any ancestor [data-testimonial-section] 1283 so colour palette follows the variant automatically. --> </div> </section> <section class="page-section" data-variant="light" data-astro-cid-dnku4hyr> <div class="section-container" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content -->
1283<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is Snitcher?","acceptedAnswer":{"@type":"Answer","text":"Snitcher identifies the companies visiting your website and turns that traffic into actionable insights. It enriches those companies with firmographic data, filters out noise, and lets GTM teams trigger workflows the moment interest appears."}},{"@type":"Question","name":"Is Snitcher GDPR compliant?","acceptedAnswer":{"@type":"Answer","text":"Yes. Snitcher is built for GDPR compliance and processes data under the legitimate interest basis (Art. 6(1)(f) GDPR). We focus on company-level intelligence â matching visitor IP addresses to corporate data â and surface individual contact details only when you choose to reveal them. Our data processing is designed to respect privacy while delivering valuable business intelligence."}},{"@type":"Question","name":"How does the free trial work?","acceptedAnswer":{"@type":"Answer","text":"Start your 14-day free trial with full access to all features. No credit card required. At the end of your trial, choose the plan that fits your needs."}},{"@type":"Question","name":"What counts as a unique identification?","acceptedA
1283nswer":{"@type":"Answer","text":"A unique identification is counted when Snitcher successfully identifies a company visiting your website for the first time within your billing period. Return visits from the same company don't count as additional identifications."}},{"@type":"Question","name":"How does Snitcher identify visitors?","acceptedAnswer":{"@type":"Answer","text":"Snitcher uses advanced IP-to-company matching technology combined with our proprietary database to identify the companies behind your website visitors. We match IP addresses to company information with industry-leading accuracy."}},{"@type":"Question","name":"Do you charge per seat/user?","acceptedAnswer":{"@type":"Answer","text":"No. All plans include unlimited team members. Add your whole sales team, marketing team, and RevOps â no extra cost."}},{"@type":"Question","name":"What happens if I exceed my monthly volume?","acceptedAnswer":{"@type":"Answer","text":"If you exceed your monthly identification limit, you can upgrade to a higher tier for more volume. We'll show an in-app warning as you approach your limit so you can plan accordingly."}},{"@type":"Question","name":"What integrations are included?","acceptedA
1283nswer":{"@type":"Answer","text":"All integrations are included in all plans at no extra cost: - CRMs: HubSpot, Salesforce, Pipedrive, Zoho, Dynamics, Attio, Close - Alerts: Slack, email - Analytics: Google Analytics (GA4) - Automation: Zapier, webhooks - Custom: REST API No per-integration fees."}},{"@type":"Question","name":"Why should I pick Snitcher over other providers?","acceptedAnswer":{"@type":"Answer","text":"Snitcher offers the highest identification rates in the industry, seamless integrations with your existing tools, real-time alerts, and dedicated support. Our customers consistently report better data quality and ROI compared to alternatives."}},{"@type":"Question","name":"Can I cancel anytime?","acceptedAnswer":{"@type":"Answer","text":"Yes, you can cancel your subscription at any time. There are no long-term contracts or cancellation fees. Your access continues until the end of your current billing period."}},{"@type":"Question","name":"Do you offer discounts?","acceptedAnswer":{"@type":"Answer","text":"Yes â pay annually and save 30% compared to monthly billing. We also consider discounts for startups, non-profits, and educational institutions, so contact our sales team to learn more."}}
1283,{"@type":"Question","name":"Still have questions?","acceptedAnswer":{"@type":"Answer","text":"We're here to help! Reach out to our support team via chat or email, or schedule a demo call with our sales team to get all your questions answered."}},{"@type":"Question","name":"How do I integrate Snitcher?","acceptedAnswer":{"@type":"Answer","text":"import { Button } from '../../components'; Follow these steps to get started: 1. Install our tracking script on your website 2. Configure your dashboard settings 3. Connect your CRM or marketing tools View all integrations"}}]}</script>
1283<section class="w-full"> <div class="px-6 md:px-16"> <div class="max-w-7xl mx-auto "> <div class="flex flex-col gap-6 md:gap-10 items-center"> <h3 class="text-h3-mobile md:text-h3 text-center text-zinc-900"> Frequently asked questions </h3> <div class="flex flex-col gap-2 w-full max-w-[720px]"> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-open data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" aria-expanded="true" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> What is Snitcher? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500 rotate-45" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 500px;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Snitcher identifies the companies visiting your website and turns that traffic into actionable insights. It enriches those companies with firmographic data, filters out noise, and lets GTM teams trigger workflows the moment interest appears.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Is Snitcher GDPR compliant? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Yes. Snitcher is built for GDPR compliance and processes data under the legitimate interest basis (Art. 6(1)(f) GDPR). We focus on company-level intelligence â matching visitor IP addresses to corporate data â and surface individual contact details only when you choose to reveal them. Our data processing is designed to respect privacy while delivering valuable business intelligence.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> How does the free trial work? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open -->
1283 <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Start your 14-day free trial with full access to all features. No credit card required. At the end of your trial, choose the plan that fits your needs.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> What counts as a unique identification? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>A unique identification is counted when Snitcher successfully identifies a company visiting your website for the first time within your billing period. Return visits from the same company donât count as additional identifications.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> How does Snitcher identify visitors? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Snitcher uses advanced IP-to-company matching technology combined with our proprietary database to identify the companies behind your website visitors. We match IP addresses to company information with industry-leading accuracy.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Do you charge per seat/user? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open -->
1283 <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>No. All plans include unlimited team members. Add your whole sales team, marketing team, and RevOps â no extra cost.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> What happens if I exceed my monthly volume? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>If you exceed your monthly identification limit, you can upgrade to a higher tier for more volume. Weâll show an in-app warning as you approach your limit so you can plan accordingly.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> What integrations are included? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>All integrations are included in all plans at no extra cost:</p> 1284<ul> 1285<li><strong>CRMs</strong>: HubSpot, Salesforce, Pipedrive, Zoho, Dynamics, Attio, Close</li> 1286<li><strong>Alerts</strong>: Slack, email</li> 1287<li><strong>Analytics</strong>: Google Analytics (GA4)</li> 1288<li><strong>Automation</strong>: Zapier, webhooks</li> 1289<li><strong>Custom</strong>: REST API</li> 1290</ul> 1291<p>No per-integration fees.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Why should I pick Snitcher over other providers? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open -->
1291 <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Snitcher offers the highest identification rates in the industry, seamless integrations with your existing tools, real-time alerts, and dedicated support. Our customers consistently report better data quality and ROI compared to alternatives.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Can I cancel anytime? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Yes, you can cancel your subscription at any time. There are no long-term contracts or cancellation fees. Your access continues until the end of your current billing period.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Do you offer discounts? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Yes â pay annually and save 30% compared to monthly billing. We also consider discounts for startups, non-profits, and educational institutions, so contact our sales team to learn more.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> Still have questions? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open -->
1291 <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Weâre here to help! Reach out to our support team via chat or email, or schedule a demo call with our sales team to get all your questions answered.</p> </div> </div> </div> </div> </div> <div class="bg-zinc-50 overflow-hidden rounded-2xl accordion w-full p-0" data-accordion data-astro-cid-u4rtwtdm> <button type="button" class="accordion-trigger flex items-center justify-between w-full px-6 py-5 text-left cursor-pointer" data-astro-cid-u4rtwtdm> <span class="accordion-title text-base font-semibold transition-colors text-zinc-900" data-astro-cid-u4rtwtdm> How do I integrate Snitcher? </span> <span class="accordion-icon shrink-0 w-6 h-6 flex items-center justify-center transition-transform duration-200 text-zinc-500" data-astro-cid-u4rtwtdm> <!-- Plus icon that rotates to X when open --> <svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" data-astro-cid-u4rtwtdm> <line x1="12" y1="5" x2="12" y2="19" data-astro-cid-u4rtwtdm></line> <line x1="5" y1="12" x2="19" y2="12" data-astro-cid-u4rtwtdm></line> </svg> </span> </button> <div class="accordion-content overflow-hidden transition-all duration-200 ease-out" style="max-height: 0;" data-astro-cid-u4rtwtdm> <div class="accordion-content-inner px-6 pb-5" data-astro-cid-u4rtwtdm> <div class="text-base text-zinc-700" data-astro-cid-u4rtwtdm> <div class="faq-answer prose prose-sm max-w-none prose-zinc"> <p>Follow these steps to get started:</p> 1292<ol> 1293<li>Install our <strong>tracking script</strong> on your website</li> 1294<li>Configure your dashboard settings</li> 1295<li>Connect your CRM or marketing tools</li> 1296</ol> 1297<a href="/integrations" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50">View all integrations</a>
1297<script> 1298 (function() { 1299 function initButtonArrows() { 1300 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1301 if (button.dataset.btnArrowInit) return; 1302 button.dataset.btnArrowInit = 'true'; 1303 1304 var icon = button.querySelector('.btn-arrow-icon'); 1305 if (!icon) return; 1306 1307 button.addEventListener('mouseenter', function() { 1308 icon.classList.remove('slide-out'); 1309 icon.classList.add('slide-in'); 1310 }); 1311 1312 button.addEventListener('mouseleave', function() { 1313 icon.classList.remove('slide-in'); 1314 icon.classList.add('slide-out'); 1315 }); 1316 }); 1317 } 1318 1319 if (document.readyState === 'loading') { 1320 document.addEventListener('DOMContentLoaded', initButtonArrows); 1321 } else { 1322 initButtonArrows(); 1323 } 1324 1325 document.addEventListener('astro:page-load', initButtonArrows); 1326 })(); 1327</script>
1327 </div> </div> </div> </div> </div> </div> </div> </div> </div> </section> <!-- 1328 @tailwindcss/typography is NOT installed (tailwind.config.mjs `plugins: []`), 1329 so the `prose*` classes above are inert and Preflight has already reset 1330 `a { color: inherit; text-decoration: inherit }` â without this, links in 1331 answers are indistinguishable from body text. Underline only: the colour stays 1332 inherited from the answer text. 1333--> </div> </section> <section class="page-section bg-zinc-50" data-variant="light" data-astro-cid-dnku4hyr> <div class="section-container bg-white" data-astro-cid-dnku4hyr> <!-- Corner decorations --> <!-- Content --> <div class="rounded-2xl overflow-hidden p-8 md:p-10 bg-zinc-50"><div class="flex flex-col gap-6 lg:flex-row lg:justify-between lg:items-end"><div class="flex flex-col gap-4 lg:max-w-[50%]"><h2 class="tracking-tight text-balance">Your pipeline won't wait while you compare tabs</h2><p class="text-balance">One closed deal from a visitor you would've missed covers a full year. Start free and do the math yourself.</p></div><div class="flex flex-col sm:flex-row gap-2 items-stretch sm:items-start w-full sm:w-auto lg:shrink-0"><div class="flex flex-col sm:flex-row gap-2 items-stretch sm:items-start w-full sm:w-auto"> <a href="/demo" class="inline-flex items-center justify-center gap-2 pl-1 pr-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white ring-1 ring-[var(--alpha-border)] !text-zinc-700 hover:bg-zinc-50 w-full sm:w-auto justify-center"><span class="flex items-center -space-x-1.5 isolate"> <span class="w-8 h-8 bg-jade-500 rounded-full border-2 border-white flex items-center justify-center z-30"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" class="w-5 h-5"> <path fill-rule="evenodd" clip-rule="evenodd" d="M9.0017 14C9.0017 10.134 12.1357 6.99999 16.0017 6.99999C19.8677 6.99999 23.0017 10.134 23.0017 14C23.0017 17.866 19.8677 21 16.0017 21C12.1357 21 9.0017 17.866 9.0017 14ZM16.0017 11C16.554 11 17.0017 11.4477 17.0017 12V13.5858L18.3755 14.9595C18.766 15.3501 18.766 15.9832 18.3755 16.3738C17.9849 16.7643 17.3518 16.7643 16.9613 16.3738L15.2946 14.7071C15.1071 14.5196 15.0017 14.2652 15.0017 14V12C15.0017 11.4477 15.4494 11 16.0017 11Z" fill="white"></path> <path d="M1.59659 9.34793C1.21298 7.17236 2.66566 5.09772 4.84123 4.71411L11.7349 3.49857C13.2569 3.23019 14.7296 3.86059 15.6083 5.00852C13.1074 5.11659 10.871 6.24533 9.30541 7.98866L1.59659 9.34793Z" fill="white"></path> <path d="M7.80399 10.2843L1.94389 11.3175L2.63848 15.2568C3.0221 17.4324 5.09673 18.885 7.27231 18.5014L8.12348 18.3513C7.40983 17.0617 7.00356 15.5783 7.00356 14C7.00356 12.675 7.28987 11.417 7.80399 10.2843Z" fill="white"></path> </svg> </span> <img src="/_astro/leon.c0wmlxiL_Z2wsuca.webp" alt="" class="w-8 h-8 border-2 border-white rounded-full object-cover z-20" loading="lazy" decoding="auto" width="600" height="600"><img src="/_astro/dean.7I-5NM-k_Z114K5E.webp" alt="" class="w-8 h-8 border-2 border-white rounded-full object-cover z-10" loading="lazy" decoding="auto" width="600" height="600"> </span><span>Talk to the team</span></a>
1333<script> 1334 (function() { 1335 function initButtonArrows() { 1336 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1337 if (button.dataset.btnArrowInit) return; 1338 button.dataset.btnArrowInit = 'true'; 1339 1340 var icon = button.querySelector('.btn-arrow-icon'); 1341 if (!icon) return; 1342 1343 button.addEventListener('mouseenter', function() { 1344 icon.classList.remove('slide-out'); 1345 icon.classList.add('slide-in'); 1346 }); 1347 1348 button.addEventListener('mouseleave', function() { 1349 icon.classList.remove('slide-in'); 1350 icon.classList.add('slide-out'); 1351 }); 1352 }); 1353 } 1354 1355 if (document.readyState === 'loading') { 1356 document.addEventListener('DOMContentLoaded', initButtonArrows); 1357 } else { 1358 initButtonArrows(); 1359 } 1360 1361 document.addEventListener('astro:page-load', initButtonArrows); 1362 })(); 1363</script>
1363 <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-primary-500 !text-white hover:bg-primary-600 btn-with-arrow w-full sm:w-auto justify-center">Start free<span class="btn-arrow-wrap"><svg width="20" height="20" class="btn-arrow-icon !text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.1161 5.36612C13.6043 4.87796 14.3957 4.87796 14.8839 5.36612L20.6339 11.1161C20.8683 11.3505 21 11.6685 21 12C21 12.3315 20.8683 12.6494 20.6339 12.8839L14.8839 18.6339C14.3957 19.122 13.6043 19.122 13.1161 18.6339C12.628 18.1457 12.628 17.3543 13.1161 16.8661L16.7322 13.25H4.25C3.55964 13.25 3 12.6903 3 12C3 11.3096 3.55964 10.75 4.25 10.75H16.7322L13.1161 7.13388C12.628 6.64573 12.628 5.85427 13.1161 5.36612Z" fill="currentColor"/></svg> 1364</span></a>
1364<script> 1365 (function() { 1366 function initButtonArrows() { 1367 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1368 if (button.dataset.btnArrowInit) return; 1369 button.dataset.btnArrowInit = 'true'; 1370 1371 var icon = button.querySelector('.btn-arrow-icon'); 1372 if (!icon) return; 1373 1374 button.addEventListener('mouseenter', function() { 1375 icon.classList.remove('slide-out'); 1376 icon.classList.add('slide-in'); 1377 }); 1378 1379 button.addEventListener('mouseleave', function() { 1380 icon.classList.remove('slide-in'); 1381 icon.classList.add('slide-out'); 1382 }); 1383 }); 1384 } 1385 1386 if (document.readyState === 'loading') { 1387 document.addEventListener('DOMContentLoaded', initButtonArrows); 1388 } else { 1389 initButtonArrows(); 1390 } 1391 1392 document.addEventListener('astro:page-load', initButtonArrows); 1393 })(); 1394</script>
1394 </div></div></div></div> </div> </section> </main> <footer class="w-full relative z-0" data-astro-cid-fqw42ge2> <!-- Footer CTA Section --> 1395 <section class="w-full bg-zinc-950 relative overflow-hidden" data-astro-cid-fqw42ge2> <!-- Fingerprint SVG Background with Solar Flare Animation --> <div class="absolute" style="top: -55.24%; left: 50%; transform: translateX(-50%); bottom: -58.45%; width: 1280px; height: 725px;" data-astro-cid-fqw42ge2> <svg xmlns="http://www.w3.org/2000/svg" width="1280" height="725" viewBox="0 0 911 516" fill="none" style="width: 100%; height: 100%; display: block;" class="fingerprint-svg" data-astro-cid-fqw42ge2> <defs data-astro-cid-fqw42ge2> <!-- Fade mask for bottom of fingerprint --> <mask id="footer-fingerprint-fade" data-astro-cid-fqw42ge2> <rect width="911" height="516" fill="white" data-astro-cid-fqw42ge2></rect> <rect x="0" y="376" width="911" height="140" fill="url(#footer-fade-gradient)" data-astro-cid-fqw42ge2></rect> </mask> <linearGradient id="footer-fade-gradient" x1="0" y1="0" x2="0" y2="1" gradientUnits="objectBoundingBox" data-astro-cid-fqw42ge2> <stop offset="0" stop-color="white" data-astro-cid-fqw42ge2></stop> <stop offset="1" stop-color="black" data-astro-cid-fqw42ge2></stop> </linearGradient> </defs> <!-- Base fingerprint path --> <path d="M479.105 123.715C508.165 123.715 537.121 127.711 565.171 135.593H565.172C723.388 180.032 810.209 336.775 758.861 484.95C672.839 733.133 441.175 815.165 372.169 834.403H372.168C366.003 836.13 360.107 837 354.642 837C336.377 837 326.758 827.516 324.962 818.309L324.883 817.87C323.209 807.91 329.776 793.276 355.402 786.121C417.687 768.769 627.121 694.667 705.011 469.948C725.42 411.091 720.361 348.893 690.761 294.827C661.139 240.726 610.544 201.314 548.32 183.835C525.75 177.497 502.431 174.283 479.011 174.283C371.227 174.283 272.458 241.933 238.85 338.877C233.287 354.919 218.695 366.846 205.139 366.846C197.37 366.846 192.438 362.809 189.639 359.385C182.575 350.738 180.643 336.461 185.006 323.875C225.841 206.064 346.768 123.715 479.105 123.715ZM478.957 1C521.618 1.00001 564.274 6.90814 605.741 18.5576C716.526 49.6745 807.083 118.96 860.766 213.628C914.723 308.784 924.703 418.105 888.864 521.47C850.909 630.962 781.867 729.724 689.108 807.245L686.913 809.072C674.246 819.571 663.235 821.729 656.295 821.729C645.632 821.729 636.927 816.576 633.413 808.462C628.742 797.678 633.925 784.249 648.096 772.514H648.097C735.016 700.475 799.655 608.478 835.02 506.468C866.145 416.68 857.829 321.486 811.604 238.445C765.548 155.708 687.314 95.0634 591.164 67.4512L588.89 66.8057C553.722 56.9306 517.085 51.9238 479.998 51.9238C310.011 51.9239 160.83 152.525 108.854 302.354C96.7623 337.202 102.92 374.427 125.368 401.906C144.581 425.426 173.675 438.9 205.174 438.9C253.822 438.9 298.979 406.62 315.014 360.395V360.394C338.279 293.254 405.65 246.323 478.859 246.323C494.333 246.323 509.728 248.445 524.608 252.625C566.639 264.424 600.584 291.382 620.213 328.518C639.767 365.513 642.843 408.092 628.859 448.432C570.466 616.91 396.076 734.653 204.729 734.653C180.618 734.653 156.325 732.773 132.521 729.062H132.52C106.527 725.021 96.6245 711.156 97.7158 699.718C98.7049 689.31 109.097 678.338 130.959 678.338C134.503 678.338 138.264 678.642 142.138 679.243C162.762 682.456 183.832 684.085 204.76 684.085H204.761C370.933 684.071 522.658 581.841 574.417 435.154L575.021 433.426C594.797 376.342 564.645 316.848 507.754 300.864H507.753C498.292 298.212 488.494 296.864 478.629 296.864C430.011 296.864 384.88 329.156 368.849 375.396V375.396C345.592 442.527 278.225 489.448 205.022 489.448C155.516 489.448 109.979 468.431 80.0645 431.818C47.034 391.388 37.6623 337.388 55.0059 287.355C113.434 118.797 287.749 1 478.957 1ZM477.126 369.297C479.15 369.297 481.136 369.531 483.041 369.995L483.853 370.208C490.288 372.016 496.057 376.531 499.22 383.507C502.381 390.481 502.979 400.016 498.863 411.912C457.99 529.799 336.787 612.2 204.079 612.2H204.047C137.242 612.195 73.7533 591.267 20.3223 551.662L19.0625 550.723C3.84284 539.273 -2.02901 525.738 2.49023 514.525C5.87123 506.138 14.6726 500.811 25.6582 500.811C35.1161 500.811 45.338 504.677 55.2158 512.099C98.2043 544.388 149.664 561.455 204.021 561.455C312.304 561.455 411.42 493.831 445.02 396.916V396.915C452.117 376.42 466.351 369.297 477.126 369.297Z" stroke="white" stroke-opacity="0.1" stroke-width="2" mask="url(#footer-fingerprint-fade)" data-astro-cid-fqw42ge2></path> </svg> <!-- Canvas overlay for GPU-accelerated flare animation --> <canvas class="fingerprint-canvas" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none;" aria-hidden="true" data-astro-cid-fqw42ge2></canvas> </div> <!-- Gradient fade at bottom --> <div class="absolute bottom-0 left-1/2 -translate-x-1/2 w-full max-w-screen-2xl h-60 bg-gradient-to-b from-transparent via-zinc-950/50 to-zinc-950 pointer-events-none" data-astro-cid-fqw42ge2></div> <!-- Content Container --> <div class="relative z-10 py-20 md:py-40 px-6 md:px-16" data-astro-cid-fqw42ge2> <div class="max-w-7xl mx-auto" data-astro-cid-fqw42ge2> <div class="flex flex-col gap-8 items-center justify-center px-0 rounded-t-3xl" data-astro-cid-fqw42ge2> <div class="flex flex-col gap-2 items-center max-w-xl w-full" data-astro-cid-fqw42ge2> <!-- Heading --> <h2 class="text-center text-white" data-astro-cid-fqw42ge2> 1396Own every revenue moment 1397</h2> <!-- Subheading --> <p class="text-lg text-center text-white" data-astro-cid-fqw42ge2> 1398Spot real buyers, take action and win more deals with Snitcher. 1399</p> </div> <!-- Action Buttons --> <div class="flex flex-col md:flex-row gap-2 items-stretch md:items-start w-full md:w-auto" data-astro-cid-fqw42ge2> <a href="/demo" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white/10 border border-white/10 !text-zinc-100 hover:bg-white/20 backdrop-blur-sm w-full md:w-auto justify-center">Talk to sales</a>
1399<script> 1400 (function() { 1401 function initButtonArrows() { 1402 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1403 if (button.dataset.btnArrowInit) return; 1404 button.dataset.btnArrowInit = 'true'; 1405 1406 var icon = button.querySelector('.btn-arrow-icon'); 1407 if (!icon) return; 1408 1409 button.addEventListener('mouseenter', function() { 1410 icon.classList.remove('slide-out'); 1411 icon.classList.add('slide-in'); 1412 }); 1413 1414 button.addEventListener('mouseleave', function() { 1415 icon.classList.remove('slide-in'); 1416 icon.classList.add('slide-out'); 1417 }); 1418 }); 1419 } 1420 1421 if (document.readyState === 'loading') { 1422 document.addEventListener('DOMContentLoaded', initButtonArrows); 1423 } else { 1424 initButtonArrows(); 1425 } 1426 1427 document.addEventListener('astro:page-load', initButtonArrows); 1428 })(); 1429</script>
1429 <a href="https://app.snitcher.com/register" class="inline-flex items-center justify-center gap-2 px-4 h-10 rounded-full font-semibold text-base transition-colors shadow group !no-underline cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 bg-white !text-zinc-950 hover:bg-zinc-100 !pl-3 w-full md:w-auto justify-center"> <svg width="20" height="20" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg" class="shrink-0" aria-hidden="true"> <path d="M211.265 148.37C187.598 224.219 123.858 249.286 104.886 255.161C89.5631 259.93 84.2516 243.014 99.6384 238.244C116.524 233.017 173.258 210.709 194.355 143.094C205.691 106.783 186.837 68.5577 152.325 57.79C117.074 46.7923 80.2423 68.8045 69.2412 104.054C67.5848 109.361 63.152 113.363 58.9333 113.363C52.8997 113.363 50.3043 105.281 52.3341 98.7783C66.1181 54.6057 112.724 26.8804 157.601 40.8841C202.129 54.7776 225.257 103.517 211.265 148.37ZM168.681 5.37712C102.536 -15.2639 36.1026 25.9353 16.8302 87.6986C7.05086 119.034 28.0846 150.559 58.9017 150.559C79.3873 150.559 98.2403 135.991 104.747 115.134C109.855 98.7636 126.062 88.5621 141.246 93.2947C156.164 97.95 164.06 115.32 158.854 132.015C145.032 176.301 103.905 207.232 58.8369 207.236H58.8306C53.1805 207.236 47.4893 206.748 41.9193 205.783C26.0231 203.042 23.0907 220.506 38.9072 223.237C45.4654 224.373 52.1665 224.95 58.822 224.95C111.569 224.95 159.656 188.902 175.758 137.291C183.809 111.494 170.991 84.021 146.522 76.39C121.831 68.6852 95.7658 84.4535 87.8419 109.858C83.6147 123.396 71.7306 132.852 58.9427 132.852C40.047 132.852 27.4971 112.952 33.7365 92.9742C51.7151 35.4079 111.149 5.98231 163.405 22.2851C217.821 39.2652 247.198 98.6229 229.863 154.174C220.278 184.887 202.64 212.731 179.141 234.367C167.297 245.262 179.436 258.135 191.286 247.224C217.073 223.484 236.259 193.132 246.77 159.45C267.275 93.7541 231.625 25.0164 168.681 5.37712ZM58.6439 187.8C95.3789 187.8 128.937 162.473 140.255 126.211C142.694 118.381 139.514 113.349 135.392 112.062C131.306 110.787 125.784 113.124 123.348 120.937C114.327 149.843 87.7136 170.032 58.6287 170.032C44.0506 170.032 30.2484 164.946 18.717 155.324C6.35199 145.002 -4.98893 158.544 7.38454 168.884C22.2568 181.257 39.9787 187.797 58.6349 187.8H58.6439Z" fill="currentColor"></path> </svg> <span>Start for free</span> </a>
1429<script> 1430 (function() { 1431 function initButtonArrows() { 1432 document.querySelectorAll('.btn-with-arrow').forEach(function(button) { 1433 if (button.dataset.btnArrowInit) return; 1434 button.dataset.btnArrowInit = 'true'; 1435 1436 var icon = button.querySelector('.btn-arrow-icon'); 1437 if (!icon) return; 1438 1439 button.addEventListener('mouseenter', function() { 1440 icon.classList.remove('slide-out'); 1441 icon.classList.add('slide-in'); 1442 }); 1443 1444 button.addEventListener('mouseleave', function() { 1445 icon.classList.remove('slide-in'); 1446 icon.classList.add('slide-out'); 1447 }); 1448 }); 1449 } 1450 1451 if (document.readyState === 'loading') { 1452 document.addEventListener('DOMContentLoaded', initButtonArrows); 1453 } else { 1454 initButtonArrows(); 1455 } 1456 1457 document.addEventListener('astro:page-load', initButtonArrows); 1458 })(); 1459</script>
1459 </div> </div> </div> </div> </section> <!-- Main Footer Content. Normally `pt-0` â the callout above supplies the top 1460 space. Without it the link columns would jam against the page. --> <div class="w-full bg-zinc-950 px-6 md:px-16 pb-8 pt-0" data-astro-cid-fqw42ge2> <div class="max-w-7xl mx-auto" data-astro-cid-fqw42ge2> <!-- Main Content: Logo and Navigation --> <div class="flex flex-col md:flex-row gap-24 items-start mb-16 md:mb-24 pt-0" data-astro-cid-fqw42ge2> <!-- Left Column: Logo, Tagline, Badges --> <div class="flex flex-col gap-8 w-full md:w-1/2" data-astro-cid-fqw42ge2> <!-- Logo --> <a href="/" class="flex items-center gap-2.5 w-64 h-14" data-astro-cid-fqw42ge2> <img src="/logo-symbol.svg" alt="Snitcher symbol" class="w-12 h-12 object-contain brightness-0 invert" loading="lazy" decoding="auto" data-astro-cid-fqw42ge2> <img src="/logo-wordmark.svg" alt="Snitcher" class="w-48 h-9 object-contain brightness-0 invert" loading="lazy" decoding="auto" data-astro-cid-fqw42ge2> </a> <!-- Tagline --> <p class="text-lg text-white" data-astro-cid-fqw42ge2> 1461Uncover your hidden website visitors. 1462</p> <!-- G2 Badges â the current release, straight off src/data/g2-badges.ts --> <a href="https://www.g2.com/products/snitcher/reviews" target="_blank" rel="noopener noreferrer" class="flex gap-2 items-center flex-wrap hover:opacity-80 transition-opacity"> <img src="/_astro/g2-summer-2026-leader.DXAU52y-.svg" alt="G2 Summer 2026 Leader" class="w-20 object-contain" loading="lazy" decoding="auto"><img src="/_astro/g2-summer-2026-best-results.DpsubBts.svg" alt="G2 Summer 2026 Best Results" class="w-20 object-contain" loading="lazy" decoding="auto"><img src="/_astro/g2-summer-2026-best-usability-smb.DbiWjGVi.svg" alt="G2 Summer 2026 Best Usability Small Business" class="w-20 object-contain" loading="lazy" decoding="auto"><img src="/_astro/g2-summer-2026-most-implementable.XtG3_GLc.svg" alt="G2 Summer 2026 Most Implementable" class="w-20 object-contain" loading="lazy" decoding="auto"><img src="/_astro/g2-summer-2026-best-estimated-roi-mid-market.CYMbXl6r.svg" alt="G2 Summer 2026 Best Estimated ROI Mid-Market" class="w-20 object-contain" loading="lazy" decoding="auto"><img src="/_astro/g2-summer-2026-best-relationship-smb.D5l7xB20.svg" alt="G2 Summer 2026 Best Relationship Small Business" class="w-20 object-contain" loading="lazy" decoding="auto"> </a> <!-- Compliance Badges --> <a href="https://trust.snitcher.com" target="_blank" rel="noopener noreferrer" class="flex gap-4 items-center hover:opacity-80 transition-opacity" data-astro-cid-fqw42ge2> <!-- GDPR Badge --> <img src="/footer-badges/gdpr-compliant.svg" alt="GDPR Compliant" class="w-16 object-contain" loading="lazy" decoding="auto" data-astro-cid-fqw42ge2> <!-- ISO 27001 Badge --> <img src="/footer-badges/iso-27001.svg" alt="ISO 27001 In Progress" class="w-16 object-contain" loading="lazy" decoding="auto" data-astro-cid-fqw42ge2> </a> <!-- Partner Program Callout --> <div class="partner-callout flex items-center gap-2.5 pt-2" data-astro-cid-fqw42ge2> <!-- Partner badge â links to the agency partner program explainer --> <a href="/partners/agency-program" class="partner-badge-link inline-flex shrink-0 rounded-xl transition-transform duration-200 hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-lavender-400 focus-visible:ring-offset-2 focus-visible:ring-offset-zinc-950" aria-label="Join the Snitcher agency partner program" data-astro-cid-fqw42ge2> <img src="/footer-badges/snitcher-partner.svg" alt="Snitcher Certified Partner" class="w-32 object-contain" loading="lazy" decoding="auto" data-astro-cid-fqw42ge2> </a> <!-- Doodle arrow pointing left at the badge --> <svg class="fill-current w-8 h-8 shrink-0 rotate-180 text-lavender-300" viewBox="0 -66.5 220 220" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-fqw42ge2> <path d="M3.17247 25.8421C5.28745 28.1788 7.82542 30.0907 9.7289 32.6399C26.0142 55.3699 49.279 66.6287 75.0817 72.7892C83.9646 74.9135 94.1165 74.7011 103.211 72.7892C129.225 67.6909 152.913 56.8569 173.428 39.8625C179.35 34.9766 184.426 28.8161 188.656 21.8059C186.33 22.6556 183.792 23.5054 181.465 24.5675C174.697 27.5415 167.929 30.728 160.95 33.2772C157.989 34.3393 154.393 34.3393 151.009 34.1269C149.74 34.1269 147.837 32.215 147.625 30.9404C147.414 29.6658 148.683 27.3291 149.74 27.1167C167.718 21.5935 183.369 10.972 199.654 1.83746C205.364 -1.34899 208.96 -0.49927 211.498 5.23635C217.631 19.4692 220.381 34.5517 219.958 50.0592C219.958 50.484 219.112 51.1213 217.843 52.3959C205.364 47.7224 209.171 34.1269 203.038 23.2929C201.557 25.8421 200.5 27.9664 199.231 29.6658C172.582 62.5926 137.262 80.0118 96.2315 86.3848C90.0981 87.4469 83.3301 87.022 76.9852 85.9599C53.7205 81.9237 32.9937 72.1519 15.8623 55.7948C10.3634 50.484 6.34493 43.4738 2.32647 36.8885C0.634492 34.3393 0.634494 30.728 0 27.754C1.05749 27.1167 2.11498 26.4794 3.17247 25.8421Z" data-astro-cid-fqw42ge2></path> </svg> <!-- Hand-written note --> <span class="font-hand text-2xl leading-[1.05] text-lavender-300 -rotate-2" data-astro-cid-fqw42ge2> 1463Run an agency?<br data-astro-cid-fqw42ge2>Join our partner programme 1464</span> </div> </div> <!-- Right Column: Navigation Links --> <div class="w-full md:w-1/2" data-astro-cid-fqw42ge2> <div class="grid grid-cols-2 md:grid-cols-3 gap-x-4 gap-y-8" data-astro-cid-fqw42ge2> <div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Product</h5> <a href="/platform" class="footer-nav-link" data-astro-cid-fqw42ge2> Platform </a><a href="/radar" class="footer-nav-link" data-astro-cid-fqw42ge2> Radar </a><a href="/ip-to-company-api" class="footer-nav-link" data-astro-cid-fqw42ge2> IP to Company </a><a href="/integrations" class="footer-nav-link" data-astro-cid-fqw42ge2> Integrations </a><a href="/changelog" class="footer-nav-link" data-astro-cid-fqw42ge2> Changelog </a> </div><div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Journey</h5> <a href="/identify" class="footer-nav-link" data-astro-cid-fqw42ge2> Identify </a><a href="/signal" class="footer-nav-link" data-astro-cid-fqw42ge2> Signal </a><a href="/automate" class="footer-nav-link" data-astro-cid-fqw42ge2> Automate </a><a href="/engage" class="footer-nav-link" data-astro-cid-fqw42ge2> Engage </a><a href="/measure" class="footer-nav-link" data-astro-cid-fqw42ge2> Measure </a> </div><div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Teams</h5> <a href="/solutions/sales" class="footer-nav-link" data-astro-cid-fqw42ge2> Sales </a><a href="/solutions/marketing" class="footer-nav-link" data-astro-cid-fqw42ge2> Marketing </a><a href="/solutions/revops" class="footer-nav-link" data-astro-cid-fqw42ge2> RevOps </a><a href="/solutions/agency" class="footer-nav-link" data-astro-cid-fqw42ge2> Agency </a> </div><div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Use Cases</h5> <a href="/use-cases/account-scoring" class="footer-nav-link" data-astro-cid-fqw42ge2> Account scoring </a><a href="/use-cases/contact-reveal" class="footer-nav-link" data-astro-cid-fqw42ge2> Contact reveal </a><a href="/use-cases/enrich-ga4" class="footer-nav-link" data-astro-cid-fqw42ge2> GA4 enrichment </a><a href="/use-cases/lead-generation" class="footer-nav-link" data-astro-cid-fqw42ge2> Lead generation </a><a href="/use-cases/marketing-attribution" class="footer-nav-link" data-astro-cid-fqw42ge2> Marketing attribution </a><a href="/use-cases/visitor-identification" class="footer-nav-link" data-astro-cid-fqw42ge2> Visitor identification </a> </div><div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Resources</h5> <a href="/blog" class="footer-nav-link" data-astro-cid-fqw42ge2> Blog </a><a href="https://docs.snitcher.com" class="footer-nav-link" target="_blank" rel="noopener noreferrer" data-astro-cid-fqw42ge2> Documentation </a><a href="https://help.snitcher.com" class="footer-nav-link" target="_blank" rel="noopener noreferrer" data-astro-cid-fqw42ge2> Help center </a><a href="/partners" class="footer-nav-link" data-astro-cid-fqw42ge2> Partner Program </a><a href="/refer" class="footer-nav-link" data-astro-cid-fqw42ge2> Refer a friend </a> </div><div class="flex flex-col gap-4" data-astro-cid-fqw42ge2> <h5 class="text-white" data-astro-cid-fqw42ge2>Company</h5> <a href="/about" class="footer-nav-link" data-astro-cid-fqw42ge2> About us </a><a href="/careers" class="footer-nav-link" data-astro-cid-fqw42ge2> Careers </a><a href="#" class="footer-nav-link" data-astro-cid-fqw42ge2> Contact </a><a href="/customers" class="footer-nav-link" data-astro-cid-fqw42ge2> Customers </a><a href="https://trust.snitcher.com" class="footer-nav-link" target="_blank" rel="noopener noreferrer" data-astro-cid-fqw42ge2> Trust centre </a> </div> </div> </div> </div> <!-- Bottom Row: Copyright and Links --> <div class="flex items-center justify-between pt-0" data-astro-cid-fqw42ge2> <p class="text-sm text-zinc-400" data-astro-cid-fqw42ge2> 1465© 2026 Snitcher. All rights reserved. 1466</p> <div class="flex gap-4 items-center" data-astro-cid-fqw42ge2> <a href="/privacy-policy" class="footer-bottom-link" data-astro-cid-fqw42ge2>Privacy Policy</a><a href="/terms-conditions" class="footer-bottom-link" data-astro-cid-fqw42ge2>Terms & Conditions</a><a href="/cookie-policy" class="footer-bottom-link" data-astro-cid-fqw42ge2>Cookie Policy</a> </div> </div> </div> </div> </footer> <!-- Footer Scripts --> <!-- Showdown (Markdown converter - may be needed for dynamic content) -->
1466<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/2.1.0/showdown.min.js" async></script>
1466 <!-- 1467 UTM Parameter Persistence is now handled by the AttributionProvider component. 1468 See: src/components/components/AttributionProvider.astro 1469 See: src/lib/attribution.ts 1470 1471 The AttributionProvider captures UTM params, stores them, and updates 1472 all app.snitcher.com links automatically. 1473--><!-- Intercom Chat Triggers (event delegation â survives View Transitions) -->
1473<script> 1474if (!window.__intercomChatTriggersAdded) { 1475 window.__intercomChatTriggersAdded = true; 1476 document.addEventListener('click', function(e) { 1477 var target = e.target.closest('#start-chat, #start-whitelabel-chat'); 1478 if (!target) return; 1479 if (typeof Intercom === 'undefined') return; 1480 1481 if (target.id === 'start-chat') { 1482 Intercom('showNewMessage'); 1483 } else if (target.id === 'start-whitelabel-chat') { 1484 Intercom('showNewMessage', 'Can you tell me more about your whitelabel programme?'); 1485 } 1486 }); 1487} 1488</script>
1488 <!-- 1489 Currency Localization is now handled by the CurrencyProvider component. 1490 See: src/components/components/CurrencyProvider.astro 1491 1492 The CurrencyProvider also maintains backward compatibility with 1493 .swap-currency and .swap-currency-2 classes for legacy elements. 1494--> <!-- Attribution & Currency --> <!-- Event Tracking -->
1494<script> 1495(function() { 1496 window.dataLayer = window.dataLayer || []; 1497 1498 // --- Page metadata --- 1499 function pushPageMetadata() { 1500 var path = window.location.pathname; 1501 var pageType = 'page'; 1502 if (path === '/') pageType = 'homepage'; 1503 else if (path.startsWith('/blog')) pageType = 'blog'; 1504 else if (path.startsWith('/customers')) pageType = 'case-study'; 1505 else if (path.startsWith('/partners')) pageType = 'partner'; 1506 else if (path.startsWith('/solutions')) pageType = 'solution'; 1507 else if (path.startsWith('/features')) pageType = 'feature'; 1508 else if (path.startsWith('/use-cases')) pageType = 'use-case'; 1509 else if (path.startsWith('/pricing')) pageType = 'pricing'; 1510 else if (path.startsWith('/demo')) pageType = 'demo'; 1511 else if (path.startsWith('/integrations')) pageType = 'integration'; 1512 else if (path.startsWith('/privacy') || path.startsWith('/terms') || path.startsWith('/legal')) pageType = 'legal'; 1513 1514 // dataLayer-only: Radar's native pageview already covers page context. 1515 window.dataLayer.push({ 1516 event: 'page_context', 1517 page_type: pageType, 1518 page_path: path, 1519 page_title: document.title 1520 }); 1521 } 1522 1523 // --- CTA click tracking --- 1524 function trackCTAClicks() { 1525 document.addEventListener('click', function(e) { 1526 var link = e.target.closest('a[href]'); 1527 if (!link) return; 1528 1529 var href = link.getAttribute('href') || ''; 1530 var text = (link.textContent || '').trim().substring(0, 100); 1531 var classes = link.className || ''; 1532 1533 // Track clicks to app.snitcher.com (signup/login CTAs) 1534 if (href.indexOf('app.snitcher.com') !== -1) { 1535 window.snitcherTrack('cta_clicked', { 1536 cta_text: text, 1537 cta_url: href, 1538 cta_location: getLinkLocation(link), 1539 cta_type: 'app_link' 1540 }); 1541 return; 1542 } 1543 1544 // Track clicks on button-styled elements (primary CTAs) 1545 if (classes.indexOf('btn') !== -1 || classes.indexOf('button') !== -1 || 1546 link.querySelector('button') || link.getAttribute('role') === 'button') { 1547 window.snitcherTrack('cta_clicked', { 1548 cta_text: text, 1549 cta_url: href, 1550 cta_location: getLinkLocation(link), 1551 cta_type: 'button' 1552 }); 1553 return; 1554 } 1555 1556 // Track demo page links 1557 if (href.indexOf('/demo') !== -1) { 1558 window.snitcherTrack('cta_clicked', { 1559 cta_text: text, 1560 cta_url: href, 1561 cta_location: getLinkLocation(link), 1562 cta_type: 'demo_request' 1563 }); 1564 } 1565 }); 1566 } 1567 1568 // --- Intercom chat tracking --- 1569 function trackIntercomOpens() { 1570 var chatButtons = document.querySelectorAll('#start-chat, #start-whitelabel-chat'); 1571 chatButtons.forEach(function(btn) { 1572 if (btn.hasAttribute('data-track-bound')) return; 1573 btn.setAttribute('data-track-bound', 'true'); 1574 btn.addEventListener('click', function() { 1575 window.snitcherTrack('intercom_chat_opened', { 1576 chat_trigger: btn.id 1577 }); 1578 }); 1579 }); 1580 } 1581 1582 // --- HubSpot form submission tracking (iframe embeds) --- 1583 // Radar's native formTracking can't see inside HubSpot iframes; this 1584 // postMessage hook is the only signal for those, and the submitted email 1585 // de-anonymizes the visitor's whole session via identify(). 1586 function trackHubSpotForms() { 1587 window.addEventListener('message', function(event) { 1588 if (event.data && event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormSubmitted') { 1589 window.snitcherTrack('hubspot_form_submitted', { 1590 form_id: event.data.id || 'unknown' 1591 }); 1592 1593 try { 1594 var values = event.data.data && event.data.data.submissionValues; 1595 var email = values && values.email; 1596 if (email && email.indexOf('@') !== -1 && 1597 window.Snitcher && typeof window.Snitcher.identify === 'function') { 1598 window.Snitcher.identify(email); 1599 } 1600 } catch (err) { /* ignore */ } 1601 } 1602 }); 1603 } 1604 1605 // --- Identify visitors we already know by email (personalized links) --- 1606 // PersonalizationCapture stores the email from outbound-campaign URLs; 1607 // pass it to Radar once per session so the whole visit is de-anonymized. 1608 function identifyFromPersonalization() { 1609 try { 1610 var api = window.SnitcherPersonalization; 1611 var data = api && api.get && api.get(); 1612 var email = data && data.email; 1613 if (!email || email.indexOf('@') === -1) return; 1614 1615 var key = 'snitcher_identified_' + email.toLowerCase(); 1616 if (sessionStorage.getItem(key)) return; 1617 if (window.Snitcher && typeof window.Snitcher.identify === 'function') { 1618 window.Snitcher.identify(email); 1619 sessionStorage.setItem(key, '1'); 1620 } 1621 } catch (err) { /* ignore */ } 1622 } 1623 1624 // --- Persist attribution + geo as Radar visitor traits --- 1625 // Radar has no client-side UTM breakout; register() stores traits on the 1626 // visitor without emitting an event, so every later event carries them. 1627 function registerVisitorTraits() { 1628 function pushAttributionTraits(attribution) {
1629 try { 1630 if (attribution && Object.keys(attribution).length > 0 && 1631 window.Snitcher && typeof window.Snitcher.register === 'function') { 1632 window.Snitcher.register(attribution); 1633 } 1634 } catch (err) { /* ignore */ } 1635 } 1636 1637 // AttributionProvider may have dispatched attributionReady before this 1638 // inline script's init ran â read the current state directly, then keep 1639 // listening for later captures (view-transition navigations). 1640 try { 1641 var api = window.SnitcherAttribution; 1642 if (api && typeof api.get === 'function') { 1643 pushAttributionTraits(api.get()); 1644 } 1645 } catch (err) { /* ignore */ } 1646 1647 window.addEventListener('attributionReady', function(e) { 1648 pushAttributionTraits(e.detail || {}); 1649 }); 1650 1651 try { 1652 var currency = window.SnitcherCurrency; 1653 if (currency && typeof currency.onCountryReady === 'function') { 1654 currency.onCountryReady(function(geo) { 1655 try { 1656 if (geo && window.Snitcher && typeof window.Snitcher.register === 'function') { 1657 window.Snitcher.register({ 1658 country_code: geo.countryCode || null, 1659 region: geo.region || null, 1660 is_eu: Boolean(geo.isEu) 1661 }); 1662 } 1663 } catch (err) { /* ignore */ } 1664 }); 1665 } 1666 } catch (err) { /* ignore */ } 1667 } 1668 1669 // --- Tab / filter interactions (Tabs.astro dispatches bubbling 'tabchange') --- 1670 function trackTabChanges() { 1671 document.addEventListener('tabchange', function(e) { 1672 var el = e.target; 1673 var elId = (el && el.id) || ''; 1674 // PricingSection emits its own richer pricing_billing_toggled event. 1675 if (elId === 'billing-tabs') return; 1676 window.snitcherTrack('tab_filter_changed', { 1677 tab_id: (e.detail && e.detail.tabId) || '', 1678 tabs_element: elId, 1679 page_path: window.location.pathname 1680 }); 1681 }); 1682 } 1683 1684 // --- Integration detail views --- 1685 // The detail page stamps [data-track-integration] with name/category/status 1686 // so coming-soon and beta interest is measurable per integration. 1687 function trackIntegrationView() { 1688 var el = document.querySelector('[data-track-integration]'); 1689 if (!el) return; 1690 window.snitcherTrack('integration_viewed', { 1691 integration: el.getAttribute('data-integration-name') || '', 1692 category: el.getAttribute('data-integration-category') || '', 1693 status: el.getAttribute('data-integration-status') || 'stable', 1694 page_path: window.location.pathname 1695 }); 1696 } 1697 1698 // --- Journey story pages: which sections actually get seen --- 1699 // Active time on page is native to Radar, but where the scroll story 1700 // loses people isn't. Fires once per section per pageview when the 1701 // section crosses the middle band of the viewport. 1702 var JOURNEY_PATHS = ['/identify', '/measure', '/engage', '/signal', '/automate']; 1703 1704 function trackJourneySections() { 1705 var path = window.location.pathname.replace(/\/$/, ''); 1706 if (JOURNEY_PATHS.indexOf(path) === -1) return; 1707 if (!('IntersectionObserver' in window)) return; 1708 1709 var sections = document.querySelectorAll('section.page-section'); 1710 if (!sections.length) return; 1711 1712 var observer = new IntersectionObserver(function(entries) { 1713 entries.forEach(function(entry) { 1714 if (!entry.isIntersecting) return; 1715 var el = entry.target; 1716 observer.unobserve(el); 1717 var heading = el.querySelector('h1, h2, h3'); 1718 window.snitcherTrack('journey_section_viewed', { 1719 page_path: path, 1720 section_index: parseInt(el.getAttribute('data-journey-index') || '0', 10), 1721 section_title: heading ? (heading.textContent || '').trim().substring(0, 80) : '' 1722 }); 1723 }); 1724 }, { rootMargin: '-30% 0px -30% 0px', threshold: 0 }); 1725 1726 sections.forEach(function(el, i) { 1727 el.setAttribute('data-journey-index', String(i)); 1728 observer.observe(el); 1729 }); 1730 } 1731 1732 // --- Article read depth (blog posts + customer stories) --- 1733 // Radar has no scroll-depth signal; active time alone can't tell 1734 // "finished the article" from "left the tab open". 1735 var articleRead = { path: null, article: null, fired: {} };
1736 var ARTICLE_MILESTONES = [50, 90]; 1737 1738 function resetArticleRead() { 1739 articleRead.path = window.location.pathname; 1740 articleRead.fired = {}; 1741 articleRead.article = null; 1742 var path = articleRead.path; 1743 if (/^\/(blog|customers)\/.+/.test(path)) { 1744 articleRead.article = document.querySelector('article.editorial-prose'); 1745 } 1746 } 1747 1748 function trackArticleReadDepth() { 1749 var rafPending = false; 1750 window.addEventListener('scroll', function() { 1751 if (!articleRead.article || rafPending) return; 1752 rafPending = true; 1753 requestAnimationFrame(function() { 1754 rafPending = false; 1755 var article = articleRead.article; 1756 if (!article || !document.contains(article)) return; 1757 var rect = article.getBoundingClientRect(); 1758 var articleTop = rect.top + window.scrollY; 1759 var readPx = window.scrollY + window.innerHeight - articleTop; 1760 var progress = Math.min(100, Math.round((readPx / article.offsetHeight) * 100)); 1761 1762 ARTICLE_MILESTONES.forEach(function(milestone) { 1763 if (progress >= milestone && !articleRead.fired[milestone]) { 1764 articleRead.fired[milestone] = true; 1765 window.snitcherTrack('article_read', { 1766 milestone: milestone, 1767 page_path: articleRead.path 1768 }); 1769 } 1770 }); 1771 }); 1772 }, { passive: true }); 1773 } 1774 1775 // --- Helper: determine link location on page --- 1776 function getLinkLocation(el) { 1777 var nav = el.closest('nav, [role="navigation"]'); 1778 if (nav) return 'navbar'; 1779 var footer = el.closest('footer'); 1780 if (footer) return 'footer'; 1781 var hero = el.closest('[class*="hero"], section:first-of-type'); 1782 if (hero) return 'hero'; 1783 return 'body'; 1784 } 1785 1786 // Initialize on DOMContentLoaded 1787 if (document.readyState === 'loading') { 1788 document.addEventListener('DOMContentLoaded', init); 1789 } else { 1790 init(); 1791 } 1792 1793 function init() { 1794 pushPageMetadata(); 1795 trackCTAClicks(); 1796 trackIntercomOpens(); 1797 trackHubSpotForms(); 1798 trackTabChanges(); 1799 trackArticleReadDepth(); 1800 registerVisitorTraits(); 1801 // Per-page trackers (re-run on view transitions below) 1802 identifyFromPersonalization(); 1803 trackIntegrationView(); 1804 trackJourneySections(); 1805 resetArticleRead(); 1806 } 1807 1808 // --- Re-init on Astro View Transitions (client-side navigation) --- 1809 // `astro:page-load` fires on both initial load AND subsequent navigations. 1810 // We skip the first fire to avoid double-tracking (inline scripts already ran). 1811 var isInitialLoad = true; 1812 1813 document.addEventListener('astro:page-load', function() { 1814 if (isInitialLoad) { 1815 isInitialLoad = false; 1816 return; 1817 } 1818 1819 // Re-push page metadata to dataLayer 1820 pushPageMetadata(); 1821 trackIntercomOpens(); 1822 1823 // Per-page trackers for the newly swapped-in page 1824 identifyFromPersonalization(); 1825 trackIntegrationView(); 1826 trackJourneySections(); 1827 resetArticleRead(); 1828 1829 // Push virtual pageview for GTM (triggers GTM tags including Intercom) 1830 window.dataLayer.push({ 1831 event: 'virtualPageview', 1832 page_path: window.location.pathname, 1833 page_title: document.title 1834 }); 1835 1836 // Re-trigger Segment page tracking 1837 if (window.analytics && typeof window.analytics.page === 'function') { 1838 window.analytics.page(); 1839 } 1840 1841 // Re-trigger Meta Pixel pageview 1842 if (typeof window.fbq === 'function') { 1843 window.fbq('track', 'PageView'); 1844 } 1845 1846 // Re-trigger Snitcher Radar page tracking 1847 if (window.Snitcher && typeof window.Snitcher.page === 'function') { 1848 window.Snitcher.page(); 1849 } 1850 1851 // Re-render Intercom widget (its DOM is destroyed by the body swap, 1852 // but the JS singleton on window survives â 'update' triggers a fresh render) 1853 if (typeof window.Intercom === 'function') { 1854 window.Intercom('update'); 1855 } 1856 }); 1857})(); 1858</script>
1858 </body></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.