1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" as="image" href="/images/Pluvia-Logo.webp"/><link rel="preload" as="image" href="/images/revamp/products-rain-dashboard-icon.png"/><link rel="preload" as="image" href="/images/revamp/products-rain-api-icon.png"/><link rel="preload" as="image" href="/images/revamp/rain-dashboard-hero-bg.png"/><link rel="preload" as="image" href="/images/revamp/products-hero-video-thumbnail.png"/><meta name="author" content="Pluvia"/><meta name="robots" content="index, follow"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Pluvia.ai"/><meta property="og:locale" content="en_SG"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@pluviaai"/><title>Rain Dashboard â Live Rain Maps & Site Alerts for SEA Ops | Pluvia.ai</title><meta name="description" content="Live rain maps, nowcasts, and site-level alerts for ops teams. Know which site is getting hit before your team calls."/><link rel="canonical" href="https://pluvia.ai/products/rain-dashboard"/><meta property="og:title" content="Rain Dashboard â Live Rain Maps & Site Alerts for SEA Ops | Pluvia.ai"/><meta property="og:description" content="Live rain maps, nowcasts, and site-level alerts for ops teams. Know which site is getting hit before your team calls."/><meta property="og:url" content="https://pluvia.ai/products/rain-dashboard"/><meta property="og:image" content="https://pluvia.ai/images/SocialCard.webp"/><meta name="twitter:title" content="Rain Dashboard â Live Rain Maps & Site Alerts for SEA Ops | Pluvia.ai"/><meta name="twitter:description" content="Live rain maps, nowcasts, and site-level alerts for ops teams. Know which site is getting hit before your team calls."/><meta name="twitter:image" content="https://pluvia.ai/images/SocialCard.webp"/><link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/svg+xml" href="/favicon.svg"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="modulepreload" href="/assets/entry.client-BzvlMv8o.js" nonce=""/><link rel="modulepreload" href="/assets/jsx-runtime-u17CrQMm.js" nonce=""/><link rel="modulepreload" href="/assets/chunk-OB3PAWPO-DGsADZjS.js" nonce=""/><link rel="modulepreload" href="/assets/index-BT3HAIeQ.js" nonce=""/><link rel="modulepreload" href="/assets/root-ybqq58Lh.js" nonce=""/><link rel="modulepreload" href="/assets/query-DLnmwjDE.js" nonce=""/><link rel="modulepreload" href="/assets/ReactQuery-ONBPx-gA.js" nonce=""/><link rel="modulepreload" href="/assets/mutation-CpizNbXJ.js" nonce=""/><link rel="modulepreload" href="/assets/homepage-D_I1uBdw.js" nonce=""/><link rel="modulepreload" href="/assets/footer-Dd5LXJPj.js" nonce=""/><link rel="modulepreload" href="/assets/chunk-SNIEDJZS-GQuG_x_l.js" nonce=""/><link rel="modulepreload" href="/assets/constans-Dut_ptOW.js" nonce=""/><link rel="modulepreload" href="/assets/enum-B1AnsxL7.js" nonce=""/><link rel="modulepreload" href="/assets/home-revamp-tok8Er7n.js" nonce=""/><link rel="modulepreload" href="/assets/index-C6ff1Mvk.js" nonce=""/><link rel="modulepreload" href="/assets/chevron-down-C7xxn8Y4.js" nonce=""/><link rel="modulepreload" href="/assets/createLucideIcon-HWTvh6mg.js" nonce=""/><link rel="modulepreload" href="/assets/x-CNC76e9a.js" nonce=""/><link rel="modulepreload" href="/assets/cloud-rain-BbNWdm0u.js" nonce=""/><link rel="modulepreload" href="/assets/products.rain-dashboard-e-I2BXdP.js" nonce=""/><link rel="modulepreload" href="/assets/meta-BY-btL_c.js" nonce=""/><link rel="modulepreload" href="/assets/TrustedBy-DiMejtKl.js" nonce=""/><link rel="modulepreload" href="/assets/hero-video-DixCJg1r.js" nonce=""/><link rel="modulepreload" href="/assets/PlansCta-ByfNVIy2.js" nonce=""/><link rel="modulepreload" href="/assets/utils-C3u6LSxm.js" nonce=""/><link rel="modulepreload" href="/assets/SectionHeading-DRVHLxB1.js" nonce=""/><link rel="modulepreload" href="/assets/accordion-DYGj0NZN.js" nonce=""/><link rel="modulepreload" href="/assets/play-DobBkId7.js" nonce=""/><link rel="modulepreload" href="/assets/index-DzM7ZyMr.js" nonce=""/><link rel="modulepreload" href="/assets/index-lde0ykuF.js" nonce=""/><link rel="modulepreload" href="/assets/index-uADQN3cs.js" nonce=""/><link rel="modulepreload" href="/assets/index-BsenuED8.js" nonce=""/><link rel="modulepreload" href="/assets/index-Ba9Um7bI.js" nonce=""/><link rel="modulepreload" href="/assets/index-DUVM4nd1.js" nonce=""/><link rel="modulepreload" href="/assets/index-C5CR6e2M.js" nonce=""/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Pluvia Rain Dashboard","applicationCategory":"BusinessApplication","operatingSystem":"Web","description":"No-code operational dashboard with live rain maps, nowcasts, site-level alerts, and historical playback for Southeast Asia.","offers":{"@type":"Offer","url":"https://pluvia.ai/pricing"},"featureList":["Live 100m rain maps","2-minute refresh rate","Site-level threshold alerts","Historical playback","Southeast Asia coverage"],"provider":{"@type":"Organization","name":"Pluvia.ai","url":"https://pluvia.ai"}}</script>
1<link rel="stylesheet" href="/assets/root-81iayd3M.css"/>
1<script type="application/ld+json" nonce="">{"@context":"https://schema.org","@type":"Organization","name":"Pluvia.ai","legalName":"Pluvia Pte. Ltd.","url":"https://pluvia.ai","logo":"https://pluvia.ai/apple-touch-icon.png","description":"Hyper-local weather and flood prediction APIs for Southeast Asia. 100m resolution, 2-minute refresh, physics-informed AI, ~90% forecast accuracy.","email":"[email protected]","foundingDate":"2022","address":{"@type":"PostalAddress","streetAddress":"77 Science Park Drive, Cintech III #03-05/7","addressLocality":"Singapore","postalCode":"118256","addressCountry":"SG"},"areaServed":["Singapore","Malaysia","Thailand","Indonesia","Philippines","Vietnam"]}</script>
1<script id="pagesenseCode" nonce="">!function(){if(typeof navigator!=="undefined"&&navigator.webdriver)return;var e="1.0",t=document,a=window,n="zps-page-screen",r=t.head||t.getElementsByTagName("head")[0],i=t.getElementById("pagesenseCode");if(!t.getElementById(n)){var o=t.createElement("style");o.type="text/css",o.id=n;var s="body { background: transparent !important; opacity: 0 !important; visibility: hidden !important; } html { opacity: 0 !important; visibility: hidden !important; }";o.styleSheet?o.styleSheet.cssText=s:o.appendChild(t.createTextNode(s)),r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),a._ps_conf={};var c={addScript:function(e){try{var n=t.createElement("script");if(n.type="text/javascript",n.async=!0,e.src?n.src=e.src:e.text&&(void 0!==n.text?n.text=e.text:n.appendChild(t.createTextNode(e.text))),i&&i.getAttribute){var o=i.getAttribute("nonce");o&&n.setAttribute("nonce",o)}n.onload=n.onreadystatechange=function(){this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState||(n.onload=n.onreadystatechange=null,a._ps_conf&&a._ps_conf.pauseRenderForManualActivation?clearTimeout(d):c.revealPage())},n.onerror=function(){c.revealPage()},r.appendChild(n)}catch(e){throw c.revealPage(),e}},revealPage:function(){var e=t.getElementById(n);e&&e.parentNode&&e.parentNode.removeChild(e)}},d=setTimeout((function(){c.revealPage()}),1e4),p=c.revealPage;c.revealPage=function(){clearTimeout(d),p()};try{a._ps_conf&&a._ps_conf.pauseRenderForManualActivation&&(a.pagesense=a.pagesense||[],a.pagesense.push=function(e){e&&"activate"==e[0]&&c&&c.revealPage()}),a._ps_conf?a._ps_conf.version=e:a._ps_conf={version:e},c.addScript({src:"https://cdn.pagesense.io/js/pluvia/2fa48b23025844bfbe1cb8463f9d2570.js"})}catch(e){c.revealPage()}}}();</script>
1</head><body><a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:left-4 focus:top-4 focus:z-[100] focus:rounded-md focus:bg-pluvia-blue focus:px-4 focus:py-2 focus:text-sm focus:font-semibold focus:text-white">Skip to content</a><header class="fixed left-0 top-0 z-20 w-full font-secondary transition-colors duration-300 bg-transparent"><div class="mx-auto flex max-w-7xl items-center justify-between px-6 py-4 md:px-10"><a rel="preload" class="relative z-30 shrink-0" href="/" data-discover="true"><img src="/images/Pluvia-Logo.webp" alt="Pluvia" width="240" height="40" class="h-[32px] w-auto md:h-[36px]"/></a><nav class="hidden lg:block"><ul class="flex items-center gap-8 text-[15px] xl:gap-10 text-white"><li class="group relative"><a class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80" href="/" data-discover="true">Home</a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span></li><li class="group relative"><a aria-current="page" class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80 active" href="/products/rain-dashboard" data-discover="true">Products<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 transition-transform group-hover:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span><div class="invisible absolute left-1/2 top-full z-30 -translate-x-1/2 pt-4 opacity-0 transition-all group-focus-within:visible group-focus-within:opacity-100 group-hover:visible group-hover:opacity-100"><ul class="w-[400px] space-y-1 rounded-2xl bg-white p-4 text-pluvia-dark shadow-[0_16px_48px_rgba(9,9,42,0.16)]"><li>
1<a aria-current="page" class="flex items-center gap-4 rounded-xl p-3 transition-colors hover:bg-pluvia-lightblue active" href="/products/rain-dashboard" data-discover="true"><img src="/images/revamp/products-rain-dashboard-icon.png" alt="" class="shrink-0 object-contain size-16"/><span class="flex-1"><span class="block text-[16px] font-semibold">Rain Dashboard</span><span class="mt-1 line-clamp-2 block text-[14px] leading-snug text-pluvia-lightgray">Live rain maps and threshold alerts across all your sites no code required.</span></span></a></li><li><a class="flex items-center gap-4 rounded-xl p-3 transition-colors hover:bg-pluvia-lightblue" href="/products/rain-api" data-discover="true"><img src="/images/revamp/products-rain-api-icon.png" alt="" class="shrink-0 object-contain size-16"/><span class="flex-1"><span class="block text-[16px] font-semibold">Rain API</span><span class="mt-1 line-clamp-2 block text-[14px] leading-snug text-pluvia-lightgray">Integrate real-time nowcasts, forecasts, and webhook alerts into any platform.</span></span></a></li></ul></div></li><li class="group relative"><a class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80" href="/science" data-discover="true">Science</a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span></li><li class="group relative"><a class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80" href="/pricing" data-discover="true">Pricing</a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span></li><li class="group relative"><a class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80" href="/about" data-discover="true">About us</a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span></li><li class="group relative"><a class="flex items-center gap-1 pb-1.5 transition-opacity hover:opacity-80" href="/blog" data-discover="true">Blog</a><span class="absolute -bottom-1 left-0 right-0 h-[3px] rounded-full bg-[#FF7A00] transition-opacity opacity-0 group-hover:opacity-60"></span></li></ul></nav><div class="hidden items-center gap-6 lg:flex"><a class="text-[15px] transition-opacity hover:opacity-80 text-white" href="/login" data-discover="true">Log in</a><a class="rounded-lg bg-[#0A1B3D] px-5 py-2.5 text-[15px] font-medium text-white transition-colors hover:bg-[#122a55]" href="/signup" data-discover="true">Sign up</a></div><button aria-label="Open menu" aria-expanded="false" class="z-30 lg:hidden text-white"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-6 w-6" aria-hidden="true"><path d="M4 12h16"></path><path d="M4 18h16"></path><path d="M4 6h16"></path></svg></button></div><div class="fixed left-0 top-0 z-20 flex h-dvh w-full transform flex-col bg-white pt-[64px] transition-transform duration-300 ease-in-out lg:hidden translate-x-full"><nav class="flex-1 overflow-y-auto px-4"><ul class="text-[17px] text-pluvia-dark"><li class="border-b border-pluvia-border/60"><a class="block py-4" href="/" data-discover="true">Home</a></li><li class="border-b border-pluvia-border/60"><button type="button" aria-expanded="false" class="flex w-full items-center justify-between py-4">Products<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-5 text-pluvia-lightgray transition-transform" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></li><li class="border-b border-pluvia-border/60"><a class="block py-4" href="/science" data-discover="true">Science</a></li><li class="border-b border-pluvia-border/60"><a class="block py-4" href="/pricing" data-discover="true">Pricing</a></li><li class="border-b border-pluvia-border/60"><a class="block py-4" href="/about" data-discover="true">About us</a></li><li class="border-b border-pluvia-border/60"><a class="block py-4" href="/blog" data-discover="true">Blog</a></li></ul></nav><div class="flex flex-col gap-3 px-4 pb-8 pt-4"><a class="rounded-lg border border-pluvia-border py-3 text-center text-[15px] font-medium text-pluvia-dark" href="/login" data-discover="true">Login</a><a class="rounded-lg bg-[#0A1B3D] py-3 text-center text-[15px] font-medium text-white" href="/signup" data-discover="true">Signup</a></div></div></header><main id="main-content"><div class="font-secondary"><section class="relative overflow-hidden px-9 bg-linear-to-b from-[#1266F1] via-[#0B5AE0] to-[#083A9C] text-white"><img src="/images/revamp/rain-dashboard-hero-bg.png" alt="" aria-hidden="true" class="pointer-events-none absolute inset-0 z-0 size-full select-none object-cover"/>
1<div class="relative mx-auto max-w-7xl px-6 pb-0 pt-28 text-center md:pt-40"><span class="inline-flex items-center rounded-full border border-white/40 bg-white/10 px-4 py-1.5 text-[13px] font-medium backdrop-blur-sm">Rain Dashboard</span><h1 class="mx-auto mt-6 max-w-2xl text-[36px] font-semibold leading-[115%] md:text-[56px]">Know which site is getting hit before your team calls.</h1><p class="mx-auto mt-6 max-w-xl text-[16px] leading-relaxed text-white/90 md:text-[18px]">Every site. Every 2 minutes. Set your thresholds once and let Pluvia alert you the moment conditions cross the line.</p><div class="mt-10 flex flex-col justify-center gap-3 md:flex-row md:gap-4"><a class="order-1 rounded-lg bg-[#0A1B3D] px-6 py-3.5 text-[15px] font-medium text-white transition-colors hover:bg-[#122a55] md:order-2" href="/contacts" data-discover="true">Get started for free</a><a class="order-2 rounded-lg bg-white px-6 py-3.5 text-[15px] font-medium text-pluvia-dark transition-colors hover:bg-gray-100 md:order-1" href="/contacts" data-discover="true">Book a Demo</a></div></div><div class="relative z-10 mx-auto mt-14 w-full max-w-7xl px-6 pb-20 md:mt-20"><div class="relative w-full overflow-hidden rounded-2xl border-2 border-white/60 shadow-[0_0_80px_rgba(38,120,255,0.65)] md:rounded-3xl"><img src="/images/revamp/products-hero-video-thumbnail.png" alt="Rain Dashboard introduction video" class="aspect-video w-full object-cover"/><button type="button" aria-label="Play video" class="absolute left-1/2 top-1/2 flex size-16 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-full bg-pluvia-blue transition-transform hover:scale-105 md:size-24"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play ml-1 size-7 fill-white text-white md:size-9" aria-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></button></div></div></section><section class="bg-white mt-24 px-9"><div class="mx-auto max-w-7xl px-6"><p class="text-center text-[15px] text-pluvia-lightgray md:text-[17px]">Trusted by leaders from various industries</p><div class="relative mt-8 w-full overflow-hidden [mask-image:linear-gradient(to_right,transparent,#000_8%,#000_92%,transparent)]"><div class="home-trusted-track flex w-max items-center animate-[home-trusted-marquee_25s_linear_infinite]"><img src="/images/client/jago.png" alt="Jago" aria-hidden="false" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-starhub.png" alt="StarHub" aria-hidden="false" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-furuno.png" alt="Furuno" aria-hidden="false" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-gojek.png" alt="Gojek" aria-hidden="false" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-pub.png" alt="PUB" aria-hidden="false" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/client/jago.png" alt="Jago" aria-hidden="true" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-starhub.png" alt="StarHub" aria-hidden="true" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-furuno.png" alt="Furuno" aria-hidden="true" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-gojek.png" alt="Gojek" aria-hidden="true" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/><img src="/images/revamp/logo-pub.png" alt="PUB" aria-hidden="true" class="h-7 w-auto shrink-0 object-contain mr-14 md:h-8 md:mr-20" loading="lazy"/></div></div></div></section><section class="bg-white px-9 py-[80px] md:py-[96px]"><div class="mx-auto max-w-7xl px-6"><div class="mx-auto max-w-3xl text-center"><span class="inline-flex items-center rounded-full border border-[#B3CFFF] bg-[#D9E7FF] px-4 py-1.5 text-[13px] font-medium text-pluvia-blue">Product Features</span><h2 class="mt-5 text-[28px] mx-auto max-w-2xl font-semibold leading-[120%] text-pluvia-dark md:text-[44px]">Every tool your ops team needs to stay ahead of rain</h2><p class="mx-auto mt-4 max-w-2xl text-[15px] leading-relaxed text-pluvia-lightgray md:text-[17px]">One dashboard. Live maps, short-term forecasts, smart alerts, and historical playback â everything your operations team needs to make confident weather-driven decisions</p></div><div class="mt-14 grid gap-6 md:mt-20 lg:grid-cols-6"><div class="flex flex-col overflow-hidden rounded-3xl border border-pluvia-border/70 bg-linear-to-br shadow-[0_12px_40px_rgba(38,120,255,0.06)] from-[#FFF3E9] to-white lg:col-span-3"><div class="px-7 pt-7 md:px-8 md:pt-8"><h3 class="text-[20px] font-semibold text-pluvia-dark md:text-[22px]">Live Rain Maps</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">100m-resolution rainfall maps across all your sites, refreshed every 2 minutes.</p></div><div class="mt-auto flex justify-end pl-5 md:pl-6">
1<img src="/images/revamp/product-feature-live-rain-maps.png" alt="Live Rain Maps preview" class="w-full max-w-full rounded-tl-xl object-contain object-bottom" loading="lazy"/></div></div><div class="flex flex-col overflow-hidden rounded-3xl border border-pluvia-border/70 bg-linear-to-br shadow-[0_12px_40px_rgba(38,120,255,0.06)] from-[#EDF3FF] to-white lg:col-span-3"><div class="px-7 pt-7 md:px-8 md:pt-8"><h3 class="text-[20px] font-semibold text-pluvia-dark md:text-[22px]">Nowcast + Forecast</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Hyperlocal nowcasts refreshed every 2 minutes for the next 3 hours. Hourly and daily forecasts out to 10 days â so you can act now and plan ahead</p></div><div class="mt-auto flex justify-end pl-5 md:pl-6"><img src="/images/revamp/product-feature-nowcast-forecast.png" alt="Nowcast + Forecast preview" class="w-full max-w-full rounded-tl-xl object-contain object-bottom" loading="lazy"/></div></div><div class="flex flex-col overflow-hidden rounded-3xl border border-pluvia-border/70 bg-linear-to-br shadow-[0_12px_40px_rgba(38,120,255,0.06)] from-[#FDEEF3] to-white lg:col-span-2"><div class="px-7 pt-7 md:px-8 md:pt-8"><h3 class="text-[20px] font-semibold text-pluvia-dark md:text-[22px]">Historical Playback</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Replay any rainfall event across any time window for incident reviews, pattern analysis, or team briefings</p></div><div class="mt-auto flex justify-end pl-5 md:pl-6"><img src="/images/revamp/product-feature-historical-playback.png" alt="Historical Playback preview" class="w-full max-w-full rounded-tl-xl object-contain object-bottom" loading="lazy"/></div></div><div class="flex flex-col overflow-hidden rounded-3xl border border-pluvia-border/70 bg-linear-to-br shadow-[0_12px_40px_rgba(38,120,255,0.06)] from-[#F0F7E9] to-white lg:col-span-2"><div class="px-7 pt-7 md:px-8 md:pt-8"><h3 class="text-[20px] font-semibold text-pluvia-dark md:text-[22px]">Smart Alerts</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Set your thresholds once. Get SMS, email, or webhook alerts the moment rainfall crosses the line.</p></div><div class="mt-auto flex justify-end pl-5 md:pl-6"><img src="/images/revamp/product-feature-smart-alerts.png" alt="Smart Alerts preview" class="w-full max-w-full rounded-tl-xl object-contain object-bottom" loading="lazy"/></div></div><div class="flex flex-col overflow-hidden rounded-3xl border border-pluvia-border/70 bg-linear-to-br shadow-[0_12px_40px_rgba(38,120,255,0.06)] from-[#E9F5FA] to-white lg:col-span-2"><div class="px-7 pt-7 md:px-8 md:pt-8"><h3 class="text-[20px] font-semibold text-pluvia-dark md:text-[22px]">Multi-Site Ops</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Monitor every site in one view â live status, instant drill-down, no tab-switching.</p></div><div class="mt-auto flex justify-end pl-5 md:pl-6"><img src="/images/revamp/product-feature-multi-site-ops.png" alt="Multi-Site Ops preview" class="w-full max-w-full rounded-tl-xl object-contain object-bottom" loading="lazy"/></div></div></div></div></section><section class="bg-linear-to-b from-[#EAF1FE] to-[#DCE9FD] px-9 py-[80px] md:py-[96px]"><div class="mx-auto max-w-7xl px-6"><div class="grid gap-12 md:grid-cols-2 md:gap-16"><div class="md:sticky md:top-32 md:self-start"><span class="inline-flex items-center rounded-full border border-[#B3CFFF] bg-[#D9E7FF] px-4 py-1.5 text-[13px] font-medium text-pluvia-blue">Alert Configuration</span><h2 class="mt-5 text-[28px] font-semibold leading-[120%] text-pluvia-dark md:text-[40px]">Stop finding out from your team. Find out first</h2><p class="mt-4 max-w-md text-[15px] leading-relaxed text-pluvia-lightgray md:text-[17px]">Set rainfall thresholds for every site. Pluvia monitors 24/7 and fires alerts via SMS, email, or webhook â so your team can act before conditions escalate.</p></div><div class="flex flex-col gap-6"><div class="rounded-2xl bg-white p-4 shadow-[0_12px_40px_rgba(38,120,255,0.08)] md:p-6"><div class="overflow-hidden rounded-xl"><img src="/images/revamp/rain-dashboard-alert-step-1.png" alt="Choose What to Monitor" class="w-full scale-105 rounded-xl" loading="lazy"/></div><p class="mt-5 text-[13px] font-semibold uppercase tracking-wide text-pluvia-blue">STEP 1</p><h3 class="mt-2 text-[18px] font-semibold text-pluvia-dark md:text-[20px]">Choose What to Monitor</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Select the locations, sites, or coordinates that matter most to your operations.</p></div><div class="rounded-2xl bg-white p-4 shadow-[0_12px_40px_rgba(38,120,255,0.08)] md:p-6"><div class="overflow-hidden rounded-xl"><img src="/images/revamp/rain-dashboard-alert-step-2.png" alt="Configure Alert Rules" class="w-full scale-105 rounded-xl" loading="lazy"/></div><p class="mt-5 text-[13px] font-semibold uppercase tracking-wide text-pluvia-blue">STEP 2</p><h3 class="mt-2 text-[18px] font-semibold text-pluvia-dark md:text-[20px]">Configure Alert Rules</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Define rainfall thresholds, cooldown periods, and how you want to be notified â per site or per condition.</p></div><div class="rounded-2xl bg-white p-4 shadow-[0_12px_40px_rgba(38,120,255,0.08)] md:p-6"><div class="overflow-hidden rounded-xl"><img src="/images/revamp/rain-dashboard-alert-step-3.png" alt="Get Notified Instantly" class="w-full scale-105 rounded-xl" loading="lazy"/></div><p class="mt-5 text-[13px] font-semibold uppercase tracking-wide text-pluvia-blue">STEP 3</p><h3 class="mt-2 text-[18px] font-semibold text-pluvia-dark md:text-[20px]">Get Notified Instantly</h3><p class="mt-2 text-[14px] leading-relaxed text-pluvia-lightgray md:text-[15px]">Alerts fire the moment conditions breach your threshold â via SMS, email, or webhook, straight to the right person.</p></div></div></div></div></section><section class="bg-white px-9 pb-10 pt-10 md:pt-22"><div class="mx-auto max-w-4xl px-6"><div class="mx-auto max-w-2xl text-center"><h2 class="text-[30px] font-semibold leading-[120%] text-pluvia-dark md:text-[44px]">Questions about the rAIn Dashboard</h2><p class="mx-auto mt-4 max-w-md text-[15px] text-pluvia-lightgray md:text-[17px]">Quick answers about how the dashboard works, what data it uses, and how to get started</p></div><div class="mt-12 md:mt-16" data-orientation="vertical"><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_6lp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">What is the Rain Dashboard?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_16lp5_" hidden="" role="region" aria-labelledby="radix-_R_6lp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_alp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">What weather parameters can be monitored?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1alp5_" hidden="" role="region" aria-labelledby="radix-_R_alp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_elp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">What does the dashboard actually show me?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1elp5_" hidden="" role="region" aria-labelledby="radix-_R_elp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_ilp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">How do threshold alerts work?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1ilp5_" hidden="" role="region" aria-labelledby="radix-_R_ilp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_mlp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">What makes Pluvia different from the competition?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1mlp5_" hidden="" role="region" aria-labelledby="radix-_R_mlp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_qlp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">What's the difference between Nowcast and Forecast?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1qlp5_" hidden="" role="region" aria-labelledby="radix-_R_qlp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="border-b last:border-b-0"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_ulp5_" class="flex flex-1 items-center justify-between transition-all text-left [&[data-state=open]>svg]:rotate-180 py-6 text-[16px] font-semibold text-pluvia-dark hover:no-underline md:text-[17px] [&>svg]:rounded-full [&>svg]:bg-[#F2F4F7] [&>svg]:p-0.5" data-radix-collection-item="">Which industries is the Rain Dashboard built for?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_1ulp5_" hidden="" role="region" aria-labelledby="radix-_R_ulp5_" data-orientation="vertical" class="overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div></div></div></section><section class="bg-white px-9 pb-[80px] md:pb-[96px]"><div class="mx-auto max-w-7xl px-6"><a aria-label="Find the right plan" class="hidden overflow-hidden rounded-[16px] transi
1tion-opacity hover:opacity-95 md:block" href="/pricing" data-discover="true"><img src="/images/revamp/rain-dashboard-plans-cta.png" alt="Plans built for operations, not experiments â find the right plan" class="w-full" loading="lazy"/></a><div class="flex h-[547px] w-full flex-col gap-6 overflow-hidden rounded-2xl bg-linear-to-b from-pluvia-blue to-[#001A45] pl-4 pr-4 pt-6 text-center text-white shadow-[0px_8px_30px_-4px_#005EEE2B] md:hidden"><div><h2 class="text-[24px] font-semibold leading-[120%]">Plans built for operations, not experiments</h2><p class="mt-3 text-[14px] leading-relaxed text-white/90">One plan for your ops team. Another for your developers. Both built on the same hyperlocal engine powering Southeast Asia's most weather-sensitive industries</p></div><a class="block rounded-lg bg-white py-3 text-center text-[15px] font-medium text-pluvia-dark transition-colors hover:bg-gray-100" href="/pricing" data-discover="true">Find the Right Plan</a><img src="/images/revamp/rain-dashboard-plans-cta-mobile.png" alt="Rain map and live nowcast preview" class="min-h-0 w-full flex-1 rounded-t-2xl object-cover" loading="lazy"/></div></div></section></div></main><footer class="bg-[#041333] font-secondary text-white"><div class="mx-auto max-w-7xl px-6 pt-16 md:pt-20"><div class="grid gap-12 md:grid-cols-[1.2fr_2fr] md:gap-16"><div><a class="inline-block" href="/" data-discover="true"><img src="/images/Pluvia-Logo.webp" alt="Pluvia" width="240" height="40" class="h-[36px] w-auto"/></a><p class="mt-6 max-w-xs text-[15px] leading-relaxed text-white/80">Hyperlocal weather intelligence for Southeast Asia's most demanding industries.</p></div><div class="grid grid-cols-2 gap-x-8 gap-y-10 md:grid-cols-4"><div><h4 class="text-[13px] text-white/60">Product</h4><ul class="mt-5 space-y-4"><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/products/rain-api" data-discover="true">Rain API</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/pricing" data-discover="true">Pricing</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/docs" data-discover="true">Docs</a></li></ul></div><div><h4 class="text-[13px] text-white/60">Company</h4><ul class="mt-5 space-y-4"><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/about" data-discover="true">About us</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/contacts" data-discover="true">Contact us</a></li></ul></div><div><h4 class="text-[13px] text-white/60">Resources</h4><ul class="mt-5 space-y-4"><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/blog" data-discover="true">Blog</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/contacts" data-discover="true">Support</a></li></ul></div><div><h4 class="text-[13px] text-white/60">Legal</h4><ul class="mt-5 space-y-4"><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/terms" data-discover="true">Terms</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/privacy" data-discover="true">Privacy</a></li><li><a class="text-[15px] transition-opacity hover:opacity-70" href="/privacy#cookies-tracking" data-discover="true">Cookies</a></li></ul></div></div></div><img src="/images/revamp/footer-pluvia.png" alt="" aria-hidden="true" class="mt-14 w-full select-none md:mt-16" loading="lazy"/><div class="flex flex-col items-start justify-between gap-4 py-6 md:flex-row md:items-center md:py-8"><p class="text-[14px] text-white/80">© 2025 Pluvia AI. All rights reserved.</p><div class="flex items-center gap-5"><a href="#" target="_blank" rel="noopener noreferrer" aria-label="X" class="text-white transition-opacity hover:opacity-70"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a href="https://www.linkedin.com/company/pluvia-ai" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" class="text-white transition-opacity hover:opacity-70"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455zM5.337 7.433a2.062 2.062 0 1 1 0-4.125 2.062 2.062 0 0 1 0 4.125M7.119 20.452H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z"></path></svg></a><a href="#" target="_blank" rel="noopener noreferrer" aria-label="Facebook" class="text-white transition-opacity hover:opacity-70"><svg viewBox="0 0 24 24" fill="currentColor" class="size-5" aria-hidden="true"><path d="M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047v-2.66c0-3.025 1.792-4.697 4.533-4.697 1.313 0 2.686.236 2.686.236v2.971H15.83c-1.491 0-1.956.93-1.956 1.886v2.264h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073"></path></svg></a></div></div></div></footer>
1<script nonce="">((storageKey2, restoreKey) => { 2 if (!window.history.state || !window.history.state.key) { 3 let key = Math.random().toString(32).slice(2); 4 window.history.replaceState({ key }, ""); 5 } 6 try { 7 let storedY = JSON.parse(sessionStorage.getItem(storageKey2) || "{}")[restoreKey || window.history.state.key]; 8 if (typeof storedY === "number") 9 window.scrollTo(0, storedY); 10 } catch (error) { 11 console.error(error); 12 sessionStorage.removeItem(storageKey2); 13 } 14 })("react-router-scroll-positions", null)</script>
14<script nonce="">window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"v8_passThroughRequests":false,"v8_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":false},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
14<script nonce="" type="module" async="">; 15import * as route0 from "/assets/root-ybqq58Lh.js"; 16import * as route1 from "/assets/homepage-D_I1uBdw.js"; 17import * as route2 from "/assets/products.rain-dashboard-e-I2BXdP.js"; 18 window.__reactRouterManifest = { 19 "entry": { 20 "module": "/assets/entry.client-BzvlMv8o.js", 21 "imports": [ 22 "/assets/jsx-runtime-u17CrQMm.js", 23 "/assets/chunk-OB3PAWPO-DGsADZjS.js", 24 "/assets/index-BT3HAIeQ.js" 25 ], 26 "css": [] 27 }, 28 "routes": { 29 "root": { 30 "id": "root", 31 "path": "", 32 "hasAction": false, 33 "hasLoader": true, 34 "hasClientAction": false, 35 "hasClientLoader": false, 36 "hasClientMiddleware": false, 37 "hasDefaultExport": true, 38 "hasErrorBoundary": true, 39 "module": "/assets/root-ybqq58Lh.js", 40 "imports": [ 41 "/assets/jsx-runtime-u17CrQMm.js", 42 "/assets/chunk-OB3PAWPO-DGsADZjS.js", 43 "/assets/index-BT3HAIeQ.js", 44 "/assets/query-DLnmwjDE.js", 45 "/assets/ReactQuery-ONBPx-gA.js", 46 "/assets/mutation-CpizNbXJ.js" 47 ], 48 "css": [ 49 "/assets/root-81iayd3M.css" 50 ] 51 }, 52 "layouts/homepage": { 53 "id": "layouts/homepage", 54 "parentId": "root", 55 "hasAction": false, 56 "hasLoader": false, 57 "hasClientAction": false, 58 "hasClientLoader": false, 59 "hasClientMiddleware": false, 60 "hasDefaultExport": true, 61 "hasErrorBoundary": false, 62 "module": "/assets/homepage-D_I1uBdw.js", 63 "imports": [ 64 "/assets/chunk-OB3PAWPO-DGsADZjS.js", 65 "/assets/jsx-runtime-u17CrQMm.js", 66 "/assets/footer-Dd5LXJPj.js", 67 "/assets/chunk-SNIEDJZS-GQuG_x_l.js", 68 "/assets/constans-Dut_ptOW.js", 69 "/assets/enum-B1AnsxL7.js", 70 "/assets/home-revamp-tok8Er7n.js", 71 "/assets/index-C6ff1Mvk.js", 72 "/assets/chevron-down-C7xxn8Y4.js", 73 "/assets/createLucideIcon-HWTvh6mg.js", 74 "/assets/x-CNC76e9a.js", 75 "/assets/cloud-rain-BbNWdm0u.js" 76 ], 77 "css": [] 78 }, 79 "routes/products.rain-dashboard": { 80 "id": "routes/products.rain-dashboard", 81 "parentId": "layouts/homepage", 82 "path": "products/rain-dashboard", 83 "hasAction": false, 84 "hasLoader": false, 85 "hasClientAction": false, 86 "hasClientLoader": false, 87 "hasClientMiddleware": false, 88 "hasDefaultExport": true, 89 "hasErrorBoundary": false, 90 "module": "/assets/products.rain-dashboard-e-I2BXdP.js", 91 "imports": [ 92 "/assets/chunk-OB3PAWPO-DGsADZjS.js", 93 "/assets/jsx-runtime-u17CrQMm.js", 94 "/assets/meta-BY-btL_c.js", 95 "/assets/TrustedBy-DiMejtKl.js", 96 "/assets/hero-video-DixCJg1r.js", 97 "/assets/PlansCta-ByfNVIy2.js", 98 "/assets/utils-C3u6LSxm.js", 99 "/assets/SectionHeading-DRVHLxB1.js", 100 "/assets/accordion-DYGj0NZN.js", 101 "/assets/constans-Dut_ptOW.js", 102 "/assets/enum-B1AnsxL7.js", 103 "/assets/home-revamp-tok8Er7n.js", 104 "/assets/play-DobBkId7.js", 105 "/assets/createLucideIcon-HWTvh6mg.js", 106 "/assets/x-CNC76e9a.js", 107 "/assets/index-DzM7ZyMr.js", 108 "/assets/index-lde0ykuF.js", 109 "/assets/index-uADQN3cs.js", 110 "/assets/index-BsenuED8.js", 111 "/assets/index-Ba9Um7bI.js", 112 "/assets/index-DUVM4nd1.js", 113 "/assets/index-BT3HAIeQ.js", 114 "/assets/index-C5CR6e2M.js", 115 "/assets/chevron-down-C7xxn8Y4.js" 116 ], 117 "css": [] 118 }, 119 "routes/home": { 120 "id": "routes/home", 121 "parentId": "layouts/homepage", 122 "index": true, 123 "hasAction": false, 124 "hasLoader": false, 125 "hasClientAction": false, 126 "hasClientLoader": false, 127 "hasClientMiddleware": false, 128 "hasDefaultExport": true, 129 "hasErrorBoundary": false, 130 "module": "/assets/home-C7hwsaOW.js", 131 "imports": [ 132 "/assets/chunk-OB3PAWPO-DGsADZjS.js", 133 "/assets/jsx-runtime-u17CrQMm.js", 134 "/assets/meta-BY-btL_c.js", 135 "/assets/hero-video-DixCJg1r.js", 136 "/assets/home-revamp-tok8Er7n.js", 137 "/assets/TrustedBy-DiMejtKl.js", 138 "/assets/utils-C3u6LSxm.js", 139 "/assets/SectionHeading-DRVHLxB1.js", 140 "/assets/code-xml-CP5kdr1d.js", 141 "/assets/createLucideIcon-HWTvh6mg.js", 142 "/assets/check-BoEHE5P4.js", 143 "/assets/star-CapT7njI.js", 144 "/assets/x-CNC76e9a.js", 145 "/assets/minus-Cjm8S19p.js", 146 "/assets/accordion-DYGj0NZN.js", 147 "/assets/ShowcaseCta-C5cz9WdX.js", 148 "/assets/constans-Dut_ptOW.js", 149 "/assets/enum-B1AnsxL7.js", 150 "/assets/play-DobBkId7.js", 151 "/assets/index-DzM7ZyMr.js", 152 "/assets/index-lde0ykuF.js", 153 "/assets/index-uADQN3cs.js", 154 "/assets/index-BsenuED8.js", 155 "/assets/index-Ba9Um7bI.js", 156 "/assets/index-DUVM4nd1.js", 157 "/assets/index-BT3HAIeQ.js", 158 "/assets/index-C5CR6e2M.js", 159 "/assets/chevron-down-C7xxn8Y4.js" 160 ], 161 "css": [] 162 } 163 }, 164 "url": "/assets/manifest-a694d8be.js", 165 "version": "a694d8be" 166}; 167 window.__reactRouterRouteModules = {"root":route0,"layouts/homepage":route1,"routes/products.rain-dashboard":route2}; 168 169import("/assets/entry.client-BzvlMv8o.js");</script>
169<script nonce="">!function(){if(typeof navigator!=="undefined"&&navigator.webdriver)return;window.$zoho=window.$zoho||{};$zoho.salesiq=$zoho.salesiq||{ready:function(){}};if(!document.getElementById("zsiqscript")){var s=document.createElement("script");s.id="zsiqscript";s.src="https://salesiq.zohopublic.com/widget?wc=siq71dddbdee2180a37a767d3b030eb0983d14acb81b4d18ecff5f18b82aeebd9c1";s.defer=true;var c=document.currentScript;if(c&&c.getAttribute){var n=c.getAttribute("nonce");n&&s.setAttribute("nonce",n)}(document.head||document.body).appendChild(s);}}();</script>
169<!--$-->
169<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6},\"actionData\",\"errors\",\"root\",{\"_7\":8},\"csrfToken\",\"4369155fc35f4c8e98a7fccc7c050c86\"]\n");</script>
169<!--$-->
169<script>window.__reactRouterContext.streamController.close();</script>
169<!--/$--><!--/$--></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.