1<!DOCTYPE html> 2<html lang="en" style="background-color:#15171c;overscroll-behavior:none"> 3 <head> 4
4<script> 5 (function () { 6 var proto = XMLHttpRequest.prototype; 7 var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send; 8 var TOKEN_KEY = 'base44_access_token'; 9 var storedTokenHeader = function () { 10 try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; } 11 }; 12 var forgetStoredToken = function () { 13 try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {} 14 }; 15 16 proto.open = function (method, url) { 17 this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url); 18 return open.apply(this, arguments); 19 }; 20 21 proto.setRequestHeader = function (name, value) { 22 if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) { 23 this.__b44SentToken = value; 24 } 25 return setRequestHeader.call(this, name, value); 26 }; 27 28 proto.send = function () { 29 this.addEventListener('loadend', function () { 30 var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader(); 31 if (rejectedTokenStillStored) forgetStoredToken(); 32 }); 33 return send.apply(this, arguments); 34 }; 35})(); 36 </script>
36 37 <meta charset="utf-8"/> 38 <meta content="width=device-width, initial-scale=1.0, viewport-fit=cover" name="viewport"/> 39 <meta content="yes" name="apple-mobile-web-app-capable"/> 40 <meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"/> 41 <meta content="yes" name="mobile-web-app-capable"/> 42 <meta content="telephone=no" name="format-detection"/> 43 <!-- Primary SEO â visible to crawlers before JS executes --> 44 <title> 45 About | prodigywildfire.com 46 </title> 47 <meta content="About on prodigywildfire.com. ProdigyWildfire." name="description"/> 48 <meta content="wildfire protection, wildfire sprinkler system, protect home from wildfire, exterior fire sprinklers, bushfire protection, ember attack defence, wildfire home protection, fire protection system, wildfire defence, wildfire prevention, property fire protection, wildfire sprinkler cost, wildfire risk assessment, commercial wildfire protection, residential wildfire protection, BAL rated sprinkler, FireSmart sprinkler, NFPA wildfire" name="keywords"/> 49 <meta content="Prodigy Wildfire Solutions" name="author"/> 50 <meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="robots"/> 51 <!-- AI Citation Signals â pre-JS for non-rendering crawlers --> 52 <meta content="Prodigy Wildfire Solutions" name="citation_author"/> 53 <meta content="Prodigy Wildfire Solutions" name="publisher"/> 54 <meta content="Prodigy Wildfire Solutions designs and installs permanent exterior wildfire sprinkler systems for homes and businesses across the USA, Canada, and Australia." name="abstract"/> 55 <meta content="Prodigy Wildfire Solutions" name="DC.creator"/> 56 <meta content="Prodigy Wildfire Solutions" name="DC.publisher"/> 57 <meta content="en" name="DC.language"/> 58 <meta content="United States; Canada; Australia" name="DC.coverage"/> 59 <!-- Geo Targeting --> 60 <meta content="CA-BC" name="geo.region"/> 61 <meta content="Halfmoon Bay, British Columbia" name="geo.placename"/> 62 <meta content="49.5163;-123.9148" name="geo.position"/> 63 <meta content="49.5163, -123.9148" name="ICBM"/> 64 <!-- Open Graph â pre-JS fallback for social crawlers --> 65 <meta content="website" property="og:type"/> 66 <meta content="prodigywildfire.com" property="og:site_name"/> 67 <meta content="About | prodigywildfire.com" property="og:title"/> 68 <meta content="About on prodigywildfire.com. ProdigyWildfire." property="og:description"/> 69 <meta content="https://media.base44.com/images/public/69a3b85b94a575964ed0cdcd/8b99571e6_Screenshot2026-09-18092721.png/v1/fill/w_1200,h_630/8b99571e6_Screenshot2026-09-18092721.png" property="og:image"/> 70 <meta content="1200" property="og:image:width"/> 71 <meta content="630" property="og:image:height"/> 72 <meta content="https://prodigywildfire.com/about" property="og:url"/> 73 <meta content="en_US" property="og:locale"/> 74 <!-- Twitter Card --> 75 <meta content="summary_large_image" name="twitter:card"/> 76 <meta content="@prodigywildfire" name="twitter:site"/> 77 <meta content="About | prodigywildfire.com" name="twitter:title"/> 78 <meta content="About on prodigywildfire.com. ProdigyWildfire." name="twitter:description"/> 79 <meta content="https://media.base44.com/images/public/69a3b85b94a575964ed0cdcd/8b99571e6_Screenshot2026-09-18092721.png/v1/fill/w_1200,h_630/8b99571e6_Screenshot2026-09-18092721.png" name="twitter:image"/> 80 <!-- Favicon --> 81 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69a3b85b94a575964ed0cdcd/bafdd0ddc_PWSLogo_Whitewriting72ppi.png" rel="icon" type="image/png"/> 82 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69a3b85b94a575964ed0cdcd/bafdd0ddc_PWSLogo_Whitewriting72ppi.png" rel="apple-touch-icon"/> 83 <!-- Google Analytics (GA4) â SPA-aware configuration. 84 send_page_view:false disables the automatic pageview on load because 85 our SPA router (ga4Tracker.js) sends page_view events manually on 86 every navigation, including UTM/ref attribution data. 87 Admin pages are excluded from tracking entirely by the SPA tracker. -->
vendor: 69 bytes, lines 87-88
87 88 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
88G-MS62RQTE6P
vendor: 17 bytes, lines 88-90
88"> 89 </script> 90
90<script> 91
vendor: 145 bytes, lines 91-94
91window.dataLayer = window.dataLayer || []; 92 function gtag(){dataLayer.push(arguments);} 93 gtag('js', new Date()); 94 gtag('config', '
94G-MS62RQTE6P
vendor: 51 bytes, lines 94-97
94', { 95 send_page_view: false 96 }); 97
97gtag('config', 'AW-16633809912'); 98 </script>
98 99 <!-- Meta Pixel Code â eventID on PageView for CAPI deduplication --> 100
100<script>
vendor: 450 bytes, lines 100-109
100 101 !function(f,b,e,v,n,t,s) 102 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 103 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 104 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 105 n.queue=[];t=b.createElement(e);t.async=!0; 106 t.src=v;s=b.getElementsByTagName(e)[0]; 107 s.parentNode.insertBefore(t,s)}(window, document,'script', 108 'https://connect.facebook.net/en_US/fbevents.js'); 109 fbq('init', '
109393053123349759
vendor: 10 bytes, lines 109-110
109'); 110
110var _pvId='pv_'+Date.now().toString(36)+'_'+Math.random().toString(36).slice(2,8); 111 fbq('track', 'PageView', {}, {eventID: _pvId}); 112 window.__metaPageViewId=_pvId; 113 </script>
113 114 <!-- End Meta Pixel Code --> 115 <!-- Preconnect for performance --> 116 <link href="https://fonts.googleapis.com" rel="preconnect"/> 117 <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> 118 <link href="https://images.unsplash.com" rel="preconnect"/> 119 <link href="https://qtrypzzcjebvfcihiynt.supabase.co" rel="preconnect"/> 120 <!-- media.base44.com serves EVERY hero film, video reel and section image on 121 the site. Without this, the first video request pays a fresh DNS + TLS 122 handshake before a single byte of footage arrives, which is felt as 123 "the videos load slowly" even on a fast connection. --> 124 <link crossorigin="" href="https://media.base44.com" rel="preconnect"/> 125 <link href="https://media.base44.com" rel="dns-prefetch"/> 126 <link as="image" fetchpriority="high" href="https://media.base44.com/images/public/69a3b85b94a575964ed0cdcd/68538abd9_PWSLogo_Whitewriting300ppi.png" rel="preload"/> 127 <link as="image" fetchpriority="high" href="https://base44.app/api/apps/69a3b85b94a575964ed0cdcd/files/mp/public/69a3b85b94a575964ed0cdcd/fc8aa49d0_hero-poster-home.jpg" rel="preload"/> 128 <!-- Canonical â apex domain (matches PRODUCTION_DOMAIN SSOT in siteConfig.js). 129 Pre-React script below rewrites the href to the current pathname so 130 crawlers snapshotting the initial HTML never see a homepage canonical 131 on an inner page (root cause of "Duplicate, Google chose different 132 canonical than user" warnings in May 2026). The script also forces 133 lowercase pathnames since lowercase URLs are the only canonical. 134 If lowercase, the React SPA's SEOHead will later overwrite the same 135 value with no behavioural change. --> 136
136<script> 137 (function () { 138 try { 139 var path = window.location.pathname || '/'; 140 // Lowercase the first path segment (the only segment that varies in casing) 141 var parts = path.split('/'); 142 if (parts[1]) parts[1] = parts[1].toLowerCase(); 143 var lowerPath = parts.join('/'); 144 // Strip trailing slash on non-root paths for canonical consistency 145 if (lowerPath.length > 1 && lowerPath.endsWith('/')) { 146 lowerPath = lowerPath.slice(0, -1); 147 } 148 var link = document.getElementById('canonical-link'); 149 if (link) link.setAttribute('href', 'https://prodigywildfire.com' + lowerPath); 150 // Also update og:url to stay in sync 151 var ogUrl = document.querySelector('meta[property="og:url"]'); 152 if (ogUrl) ogUrl.setAttribute('content', 'https://prodigywildfire.com' + lowerPath); 153 } catch (e) { /* never block rendering */ } 154 })(); 155 </script>
155 156 <!-- Prerender hint for crawlers â tell them this is an SPA --> 157 <meta content="!" name="fragment"/> 158 <!-- PWA manifest --> 159 <link href="/manifest.json" rel="manifest"/> 160 <meta content="Prodigy Wildfire Solutions" name="application-name"/> 161 <meta content="Prodigy Wildfire" name="apple-mobile-web-app-title"/> 162 <meta content="#1a1d23" name="theme-color"/> 163
163<script crossorigin="" src="/assets/index-THpNDw-R.js" type="module"> 164 </script>
164 165 <link crossorigin="" href="/assets/index-D4hZ3_bw.css" rel="stylesheet"/> 166
166<script type="module"> 167 if (window.self === window.top) { 168 let lastPath = ""; 169 function getPageNameFromPath(path) { 170 const segments = path.split("/").filter(Boolean); 171 return segments[0] || null; 172 } 173 function trackPageView() { 174 const path = window.location.pathname; 175 if (path === lastPath) return; 176 lastPath = path; 177 const pageName = getPageNameFromPath(path) || "home"; 178 const appId = "69a3b85b94a575964ed0cdcd"; 179 if (!appId) return; 180 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 181 method: "POST", 182 }).catch(() => {}); 183 } 184 const originalPushState = history.pushState.bind(history); 185 history.pushState = function (...args) { 186 originalPushState(...args); 187 trackPageView(); 188 }; 189 const originalReplaceState = history.replaceState.bind(history); 190 history.replaceState = function (...args) { 191 originalReplaceState(...args); 192 trackPageView(); 193 }; 194 window.addEventListener("popstate", trackPageView); 195 trackPageView(); 196} 197 </script>
197 198 <meta content="https://prodigywildfire.com/about" name="twitter:url"/> 199
199<script> 200 (function () { 201 var titles = {"/about": "About | prodigywildfire.com", "/wildfires": "Wildfires | prodigywildfire.com", "/systems": "Systems | prodigywildfire.com", "/homeowners": "Homeowners | prodigywildfire.com", "/businesses": "Businesses | prodigywildfire.com", "/assessment": "Assessment | prodigywildfire.com", "/consultation": "Consultation | prodigywildfire.com", "/commercialconsultation": "Commercial Consultation | prodigywildfire.com", "/contact": "Contact | prodigywildfire.com", "/faq": "FAQ | prodigywildfire.com", "/partners": "Partners | prodigywildfire.com", "/regions": "Regions | prodigywildfire.com", "/canada": "Region Canada | prodigywildfire.com", "/usa": "Region USA | prodigywildfire.com", "/australia": "Region Australia | prodigywildfire.com", "/insights": "Insights | prodigywildfire.com", "/casestudies": "Case Studies | prodigywildfire.com", "/subscribe": "Subscribe | prodigywildfire.com", "/app": "App Demo | prodigywildfire.com", "/emberwatch": "Ember Watch | prodigywildfire.com", "/sms-consent": "SMS Consent | prodigywildfire.com", "/education/evacuation-preparedness": "Evacuation Preparedness | prodigywildfire.com", "/": "prodigywildfire.com", "/home2": "Home2 | prodigywildfire.com", "/wildfire-sprinkler-system-cost": "System Cost | prodigywildfire.com", "/finance": "Financing | prodigywildfire.com", "/payment-plans": "Financing | prodigywildfire.com", "/insights/wildfire-season-2026-contrast-protection-systems": "Insights Two Continents | prodigywildfire.com", "/insights/tracking-2026-wildfires-canada": "Insights Canada Tracker | prodigywildfire.com", "/insights/lancashire-magazine-feature": "Insights Magazine Feature | prodigywildfire.com", "/insights/nbc-los-angeles-wildfire-sprinkler-feature": "Insights Nbc Feature | prodigywildfire.com", "/reviews": "Reviews | prodigywildfire.com", "/privacy": "Privacy | prodigywildfire.com", "/terms": "Terms | prodigywildfire.com", "/cookies": "Cookies | prodigywildfire.com", "/sms-opt-in": "SMS Opt In | prodigywildfire.com", "/videos": "Videos | prodigywildfire.com", "/videos/intro": "Video Intro | prodigywildfire.com", "/login": "Login | prodigywildfire.com", "/register": "Register | prodigywildfire.com", "/forgot-password": "Forgot Password | prodigywildfire.com", "/reset-password": "Reset Password | prodigywildfire.com", "/portal-sso": "Portal Sso | prodigywildfire.com", "/aviva": "Aviva Partnership | prodigywildfire.com", "/partners/aviva": "Aviva Partnership | prodigywildfire.com", "/navacord": "Navacord Partnership | prodigywildfire.com", "/partners/navacord": "Navacord Partnership | prodigywildfire.com", "/go": "Go Redirect | prodigywildfire.com", "/partner-signup": "Partner Signup | prodigywildfire.com", "/lp-assessment": "Landing Assessment | prodigywildfire.com", "/thank-you": "Thank You | prodigywildfire.com", "/thank-you-assessment": "Thank You Assessment | prodigywildfire.com", "/wui": "WUI | prodigywildfire.com", "/internal/results-audit": "Internal Results Audit | prodigywildfire.com", "/credit-case": "Credit Case | prodigywildfire.com", "/stand-with-owners": "Stand With Owners | prodigywildfire.com", "/swo": "Stand With Owners | prodigywildfire.com", "/stand-with-owners-2026-review": "Stand With Owners | prodigywildfire.com", "/ad-two-houses": "Ad Two Houses | prodigywildfire.com", "/scenic-world-portfolio": "Scenic World Portfolio | prodigywildfire.com", "/masterclass-deck": "George Masterclass | prodigywildfire.com", "/resources/george-masterclass": "George Masterclass | prodigywildfire.com", "/masterclass-ask": "Masterclass Ask | prodigywildfire.com", "/masterclass-notes": "Masterclass Notes | prodigywildfire.com", "/costco-proposal": "Costco Proposal | prodigywildfire.com", "/ranch-presentation": "Ranch Presentation | prodigywildfire.com", "/australia-bushfire-protection": "Australian Commercial | prodigywildfire.com", "/au-commercial": "Australian Commercial | prodigywildfire.com", "/completed-installations": "Installations By Region | prodigywildfire.com", "/investor-update-2026": "Investor Update2026 | prodigywildfire.com", "/ca-tradeshow-brochure": "Ca Tradeshow Brochure | prodigywildfire.com", "/ad-decisions": "Ad Decisions | prodigywildfire.com", "/brand": "Brand Assets | prodigywildfire.com", "/resources/community-wildfire-resilience-bc": "Community Resilience BC | prodigywildfire.com", "/community-wildfire-resilience": "Community Resilience BC | prodigywildfire.com", "/resources/navacord-brief": "Navacord Brief | prodigywildfire.com", "/navacord-brief": "Navacord Brief | prodigywildfire.com", "/resources/lismore-bushfire-resilience": "Lismore Bushfire Brief | prodigywildfire.com", "/lismore-brief": "Lismore Bushfire Brief | prodigywildfire.com", "/resources/minister-bushfire-briefing": "Lismore Bushfire Brief | prodigywildfire.com", "/minister-brief": "Lismore Bushfire Brief | prodigywildfire.com", "/water-video-lab": "Water Video Lab | prodigywildfire.com", "/bubble-lab": "Bubble Lab | prodigywildfire.com", "/bcha-deck": "BCHA Wildfire Resilience Deck | prodigywildfire.com", "/resilience-deck": "Wildfire Resilience Brief | prodigywildfire.com", "/resources/wildfire-resilience": "Wildfire Resilience Brief | prodigywildfire.com", "/resources/coldwell-brief": "Coldwell Brief | prodigywildfire.com", "/coldwell-deck": "Coldwell Brief | prodigywildfire.com", "/resources/ibabc-brief": "Ibabc Brief | prodigywildfire.com", "/ibabc-deck": "Ibabc Brief | prodigywildfire.com", "/ibabc-pptx": "Ibabc Pptx | prodigywildfire.com", "/aviva-deck": "Aviva Brief | prodigywildfire.com", "/aviva-pptx": "Aviva Pptx | prodigywildfire.com", "/resources/malibu-brief": "Malibu Brief | prodigywildfire.com", "/malibu-deck": "Malibu Brief | prodigywildfire.com", "/resources/steamboat-brief": "Steamboat Brief | prodigywildfire.com", "/steamboat-deck": "Steamboat Brief | prodigywildfire.com", "/resources/calabasas-brief": "Calabasas Brief | prodigywildfire.com", "/calabasas-deck": "Calabasas Brief | prodigywildfire.com", "/resources/lilwat-brief": "Lilwat Brief | prodigywildfire.com", "/lilwat-deck": "Lilwat Brief | prodigywildfire.com", "/resources/lilwat-leave-behind": "Lilwat Leave Behind | prodigywildfire.com", "/lilwat-d
201oc": "Lilwat Leave Behind | prodigywildfire.com", "/guided-luxury": "Guided Luxury | prodigywildfire.com", "/ig": "Instagram Landing | prodigywildfire.com", "/whistler-demo": "Whistler Demo | prodigywildfire.com", "/demo": "Whistler Demo | prodigywildfire.com", "/firewise": "Firewise Festival | prodigywildfire.com", "/firewise-festival": "Firewise Festival | prodigywildfire.com", "/anzdemc": "Anz Demc | prodigywildfire.com", "/demc": "Demc | prodigywildfire.com", "/demc-flyer": "Demc Flyer | prodigywildfire.com", "/demc-outreach": "Demc Outreach | prodigywildfire.com", "/demc-letter": "Demc Community Letter | prodigywildfire.com", "/resources/anzdemc-brief": "Anzdemc Brief | prodigywildfire.com", "/anzdemc-deck": "Anzdemc Brief | prodigywildfire.com", "/anzdemc-pack": "Anzdemc Pack | prodigywildfire.com", "/rbcc-deck": "Rbcc Brief | prodigywildfire.com", "/resources/rbcc-brief": "Rbcc Brief | prodigywildfire.com", "/rbcc-buddy": "Rbcc Buddy | prodigywildfire.com", "/fires-near-me/usa": "Fires Near Me Hub | prodigywildfire.com", "/fires-near-me/canada": "Fires Near Me Hub | prodigywildfire.com", "/fires-near-me/australia": "Fires Near Me Hub | prodigywildfire.com", "/v2": "Home2 | prodigywildfire.com", "/v2/home": "Home2 | prodigywildfire.com", "/v2/installations": "V2 / Installations V2 | prodigywildfire.com", "/v2/portfolio": "Navigate With Query | prodigywildfire.com", "/v2/pricing": "V2 / Pricing V2 | prodigywildfire.com", "/v2/homeowners": "V2 / Homeowners V2 | prodigywildfire.com", "/v2/businesses": "V2 / Businesses V2 | prodigywildfire.com", "/v2/systems": "V2 / Systems V2 | prodigywildfire.com", "/v2/assessment": "V2 / Assessment V2 | prodigywildfire.com", "/v2/assessment-tool": "V2 / Assessment Tool V2 | prodigywildfire.com", "/v2/results-preview": "V2 / Results Preview V2 | prodigywildfire.com", "/v2/consultation": "V2 / Consultation V2 | prodigywildfire.com", "/v2/commercial-consultation": "V2 / Commercial Consultation V2 | prodigywildfire.com", "/v2/commercialconsultation": "V2 / Commercial Consultation V2 | prodigywildfire.com", "/v2/case-studies": "Navigate With Query | prodigywildfire.com", "/v2/casestudies": "Navigate With Query | prodigywildfire.com", "/v2/partners": "V2 / Partners V2 | prodigywildfire.com", "/v2/aviva": "V2 / Aviva V2 | prodigywildfire.com", "/v2/app": "V2 / App V2 | prodigywildfire.com", "/v2/emberwatch": "Navigate With Query | prodigywildfire.com", "/v2/ember-watch": "Navigate With Query | prodigywildfire.com", "/v2/insights": "V2 / Insights V2 | prodigywildfire.com", "/v2/wildfires": "V2 / Wildfires V2 | prodigywildfire.com", "/v2/education/evacuation-preparedness": "Navigate With Query | prodigywildfire.com", "/v2/faq": "V2 / Faq V2 | prodigywildfire.com", "/v2/about": "V2 / About V2 | prodigywildfire.com", "/v2/contact": "V2 / Contact V2 | prodigywildfire.com", "/v2/regions": "V2 / Regions V2 | prodigywildfire.com", "/v2/subscribe": "V2 / Subscribe V2 | prodigywildfire.com", "/v2/brand": "Navigate With Query | prodigywildfire.com", "/v2/privacy": "Navigate With Query | prodigywildfire.com", "/v2/terms": "Navigate With Query | prodigywildfire.com", "/v2/cookies": "Navigate With Query | prodigywildfire.com", "/v2/sms-consent": "Navigate With Query | prodigywildfire.com", "/assessment-tool": "V2 / Assessment Tool V2 | prodigywildfire.com", "/home": "prodigywildfire.com"}; 202 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 203 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 204 var dashed = function (s) { 205 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 206 }; 207 var decode = function (s) { 208 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 209 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 210 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 211 }; 212 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 213 var norm = function (path) { 214 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 215 return parts.length ? "/" + parts.join("/") : "/"; 216 };
217 var lastPath = location.pathname, written = document.title, on = true; 218 var sync = function () { 219 // Path only: a hash/query change is the same page, and the SDK strips its own auth 220 // params with replaceState -- neither must clobber a server-rendered title in place. 221 if (!on || location.pathname === lastPath) return; 222 lastPath = location.pathname; 223 if (document.title !== written) { on = false; return; } 224 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 225 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 226 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 227 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 228 // a redirect landing on an unmapped path would bake the placeholder into the stored 229 // snapshot. Leaving the title alone degrades to today's behavior instead. 230 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 231 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 232 // dashes there, and the client cannot tell the two apart. The map emits every reachable 233 // shape per segment instead (_client_url_variants). 234 var title = titles[norm(location.pathname)]; 235 if (title === undefined) return; 236 document.title = title; 237 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 238 // keeping the assigned string would make the next sync() read our own write as the app's. 239 written = document.title; 240 }; 241 var wrap = function (fn) { 242 // The history entry is already pushed by the time sync() runs, so a throw here would 243 // surface inside the host app's router and break navigation. This is injected into apps 244 // we cannot test, so it swallows rather than trusting the trace. 245 return function () { 246 var r = fn.apply(this, arguments); 247 try { sync(); } catch (e) {} 248 return r; 249 }; 250 }; 251 history.pushState = wrap(history.pushState); 252 history.replaceState = wrap(history.replaceState); 253 window.addEventListener("popstate", sync); 254})(); 255 </script>
255 256 <link href="https://prodigywildfire.com/about" rel="canonical"/> 257
257<script data-seo-source="builder" type="application/ld+json"> 258 {"name": "prodigywildfire.com", "@context": "https://schema.org", "@type": "WebSite", "url": "https://prodigywildfire.com"} 259 </script>
259 260
260<script data-seo-source="builder" type="application/ld+json"> 261 {"name": "prodigywildfire.com", "logo": "https://media.base44.com/images/public/69a3b85b94a575964ed0cdcd/3f62878f4_PWS-Apple-Store-Icon.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://prodigywildfire.com"} 262 </script>
262 263
263<script data-seo-source="builder" type="application/ld+json"> 264 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://prodigywildfire.com/"}, {"@type": "ListItem", "position": 2, "name": "About", "item": "https://prodigywildfire.com/about"}]} 265 </script>
265 266
266<script data-seo-source="builder" type="application/ld+json"> 267 {"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"name": "What is prodigywildfire.com?", "@type": "Question", "acceptedAnswer": {"@type": "Answer", "text": "prodigywildfire.com manages 5 data types including admin notifications. Helps you organize, track, and share your work in 1 place for teams and solo users."}}]} 268 </script>
268 269
269<script> 270 (function(){var SAMPLING_RATE=1.0;var sid=(crypto.randomUUID&&crypto.randomUUID())||(Date.now()+'-'+Math.random().toString(36).slice(2));function samplingValue(v){var h=2166136261;for(var i=0;i<v.length;i++){h^=v.charCodeAt(i);h=Math.imul(h,16777619);}return(h>>>0)/4294967296;}var _sampledOut=samplingValue(sid)>=SAMPLING_RATE;window.Base44=window.Base44||{};if(_sampledOut){var _noop=function(){};window.Base44.recordings=Object.freeze({version:'1',setUserID:_noop,setUserAnonymousID:_noop,setMetadata:_noop,event:_noop,issue:_noop,start:_noop,stop:_noop,isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_noop});try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}var s=document.createElement('script');window.Base44.__preQ=window.Base44.__preQ||[];if(!window.Base44.recordings){var _pre=function(m){return function(){if(window.Base44.__preQ.length<100)window.Base44.__preQ.push([m,Array.prototype.slice.call(arguments)]);};};window.Base44.recordings={version:'1',setUserID:_pre('setUserID'),setUserAnonymousID:_pre('setUserAnonymousID'),setMetadata:_pre('setMetadata'),event:_pre('event'),issue:_pre('issue'),start:_pre('start'),stop:_pre('stop'),isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_pre('forceFlushBatch')};}s.src='https://unpkg.com/[email protected]/dist/rrweb.umd.cjs';s.integrity='sha384-vi2VGEOczLoSZVrAqXzYd5VWgeBvxiOEgda6/sVzRK+lvhbs9TuqZ474UUptLXLB';s.crossOrigin='anonymous';s.async=true;s.onload=function(){if(!window.rrweb)return;var _started=false;var APP_ID="69a3b85b94a575964ed0cdcd";var INGEST_TOKEN="gy6IullU7jz-b4waVLQd5lnOkmUlBAik8RDwjIx1hxk";var NETWORK_IGNORE_HEADERS=["cookie", "set-cookie", "authorization", "x-api-key"];var buffer=[];var lastFlush=Date.now();var recorderStopFn=null;var _stopRequested=false;var MAX_SESSION_MS=1800000;var IDLE_TIMEOUT_MS=900000;var lastActivityAt=0;var idleTimer=null;var maxTimer=null;var _sdkActive=null;var _sdkPending=[];var SDK_CAP=256;var sdkSafe=function(v){try{return String(v).slice(0,SDK_CAP);}catch(_){return '';}};var sdkDeep=function(v){try{return JSON.parse(JSON.stringify(v||{}));}catch(_){return {};}};var sdkEmit=function(method,payload){if(_sampledOut)return;var ev={method:method,payload:payload||{}};if(_sdkActive){try{_sdkActive('base44_sdk',Object.assign({method:method},payload||{}));}catch(_){}return;}if(_sdkPending.length<100)_sdkPending.push(ev);};window.Base44=window.Base44||{};window.Base44.recordings=Object.freeze({version:'1',setUserID:function(id){sdkEmit('setUserID',{value:sdkSafe(id)});},setUserAnonymousID:function(id){sdkEmit('setUserAnonymousID',{value:sdkSafe(id)});},setMetadata:function(key,value){if(_sampledOut)return;if(typeof key!=='string'||key.length>64)return;var v;try{v=JSON.parse(JSON.stringify(value));}catch(_){return;}sdkEmit('setMetadata',{key:key,value:v});},event:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('event',{name:name.slice(0,64),payload:sdkDeep(payload)});},issue:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('issue',{name:name.slice(0,64),payload:sdkDeep(payload)});},start:function(){},stop:function(){stopRecording('manual',true);},isActive:function(){return !_sampledOut&&!_stopRequested&&!!recorderStopFn;},getSessionID:function(){return _sampledOut?null:sid;},getSessionURL:function(){return null;},forceFlushBatch:function(){if(_sampledOut)return;try{flush(false);}catch(_){}}});if(window.Base44.__preQ&&window.Base44.__preQ.length){var _pq=window.Base44.__preQ;window.Base44.__preQ=[];for(var _qi=0;_qi<_pq.length;_qi++){var _m=_pq[_qi][0],_a=_pq[_qi][1];try{var _fn=window.Base44.recordings[_m];if(typeof _fn==='function')_fn.apply(null,_a);}catch(_){}}}function redactUrl(u){try{u=String(u||'');var q=u.indexOf('?');if(q>=0)u=u.slice(0,q);var h=u.indexOf('#');if(h>=0)u=u.slice(0,h);return u;}catch(_){return'';}}function redactText(s){try{s=String(s||'');return s.replace(/https?:\/\/[^\s)'\"]+|\/[^\s)'\"]*[?#][^\s)'\"]*/g,function(m){return redactUrl(m);});}catch(_){return'';}}function stopRecording(reason,dropBuffered){if(_stopRequested){if(dropBuffered)buffer.length=0;return;}if(!dropBuffered){try{flush(false);}catch(_){}}_stopRequested=true;buffer.length=0;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}idleTimer=null;}if(maxTimer){try{clearTimeout(maxTimer);}catch(_){}maxTimer=null;}if(recorderStopFn){try{recorderStopFn();recorderStopFn=null;}catch(_){}}
270try{if(reason)console.debug('[base44 recordings] stopped: '+reason);}catch(_){}}function scheduleIdleStop(){if(_stopRequested)return;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}}var wait=IDLE_TIMEOUT_MS-(Date.now()-lastActivityAt);if(wait<0)wait=0;idleTimer=setTimeout(function(){if(_stopRequested)return;if(Date.now()-lastActivityAt>=IDLE_TIMEOUT_MS)stopRecording('idle_timeout',false);else scheduleIdleStop();},wait);}function markActivity(){if(_stopRequested)return;lastActivityAt=Date.now();scheduleIdleStop();}function isMeaningfulActivityEvent(ev){try{return !!(ev&&ev.type===3&&ev.data&&((ev.data.source===2&&(ev.data.type===2||ev.data.type===4||ev.data.type===9))||ev.data.source===3||ev.data.source===5));}catch(_){return false;}}function sessionLifetimeCapture(){lastActivityAt=Date.now();maxTimer=setTimeout(function(){stopRecording('max_duration',false);},MAX_SESSION_MS);scheduleIdleStop();}function flush(ka){if(_stopRequested){buffer.length=0;return;}if(!buffer.length)return;var tok=null;try{tok=localStorage.getItem('base44_access_token');}catch(_){}var payload={app_id:APP_ID,session_id:sid,events:buffer.splice(0),page_url:redactUrl(location.href),user_agent:navigator.userAgent,access_token:tok};lastFlush=Date.now();var opts={method:'POST',headers:{'Content-Type':'application/json','X-Base44-Recording-Token':INGEST_TOKEN},body:JSON.stringify(payload)};if(ka)opts.keepalive=true;fetch('/api/runtime/session-recordings/ingest',opts).then(function(r){try{var skip=r.headers.get('X-Base44-Recording-Skip');if(skip==='excluded'||skip==='admin'){stopRecording('excluded',true);return;}if(skip==='sampled'){stopRecording('sampled',true);return;}}catch(_){}if(!r.ok){try{console.warn('session-recordings ingest http',r.status);}catch(_){}try{if(r.status===429&&r.headers.get('X-Base44-Recording-Limit')==='reached'){stopRecording('quota_reached',true);}}catch(_){}}}).catch(function(e){try{console.warn('session-recordings ingest err',e);}catch(_){}});}function devtoolsCapture(){if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var add=window.rrweb.record.addCustomEvent;var inside=false;function safe(fn){return function(){if(inside)return;inside=true;try{return fn.apply(this,arguments);}finally{inside=false;}};}['log','info','warn','error','debug'].forEach(function(level){var orig=console[level];if(!orig)return;console[level]=function(){try{add('console',{level:level});}catch(_){}return orig.apply(console,arguments);};});window.addEventListener('error',safe(function(e){add('error',{message:redactText(String(e.message||'unknown')),source:redactUrl(e.filename||''),line:e.lineno||0,col:e.colno||0,stack:e.error&&e.error.stack?redactText(String(e.error.stack).slice(0,1000)):''});}));window.addEventListener('unhandledrejection',safe(function(e){var r=e.reason||{};add('error',{message:redactText(String(r.message||r||'unhandled rejection')),stack:r.stack?redactText(String(r.stack).slice(0,1000)):'',rejection:true});}));if(window.fetch){var of=window.fetch.bind(window);window.fetch=function(input,init){var t0=performance.now();var method=(init&&init.method)||(input&&input.method)||'GET';var url=typeof input==='string'?input:(input&&input.url)||'';if(url.indexOf('/api/runtime/session-recordings/ingest')>=0)return of(input,init);var rurl=redactUrl(url);return of(input,init).then(function(r){try{add('network',{kind:'fetch',method:method,url:rurl,status:r.status,duration:Math.round(performance.now()-t0)});}catch(_){}return r;}).catch(function(e){try{add('network',{kind:'fetch',method:method,url:rurl,status:0,duration:Math.round(performance.now()-t0),error:String(e&&e.message||e)});}catch(_){}throw e;});};}if(window.XMLHttpRequest){var xp=window.XMLHttpRequest.prototype;var oo=xp.open,os=xp.send;xp.open=function(m,u){this.__gp_m=m;this.__gp_u=u;return oo.apply(this,arguments);};xp.send=function(){var xhr=this,t0=performance.now();xhr.addEventListener('loadend',function(){try{if((xhr.__gp_u||'').indexOf('/api/runtime/session-recordings/ingest')<0)add('network',{kind:'xhr',method:xhr.__gp_m||'GET',url:redactUrl(xhr.__gp_u),status:xhr.status,duration:Math.round(performance.now()-t0)});}catch(_){}});return os.apply(this,arguments);};}}var EMAIL_RE=/([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g;var MASK_EMAILS=true;var MASK_NUMBERS=false;var CAPTURE_IFRAMES=true;function maskTextFn(text){if(!MASK_EMAILS||typeof text!=='string')return text;return text.replace(EMAIL_RE,'[email]');}function performanceCapture(){if(!('PerformanceObserver' in window))return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addPerf=window.rrweb.record.addCustomEvent;function emit(metric,value){try{addPerf('performance',{metric:metric,value:value,timestamp:Date.now()});}catch(_){}}try{new PerformanceObserver(function(list){var entries=list.getEntries();var last=entries[entries.length-1];if(last)emit('LCP',Math.round(last.renderTime||last.loadTime||last.startTime||0));}).observe({type:'largest-contentful-paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('FID',Math.round(e.processingStart-e.startTime));}}).observe({type:'first-input',buffered:true});}catch(_){}try{var clsValue=0;new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(!e.hadRecentInput){clsValue+=e.value;}}emit('CLS',Math.round(clsValue*1000)/1000);}).observe({type:'layout-shift',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(e.name==='first-contentful-paint')emit('FCP',Math.round(e.startTime));}}).observe({type:'paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('TTFB',Math.round(e.responseStart));}}).observe({type:'navigation',buffered:true});}catch(_){}}function issueCapture(){if(_sampledOut)return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addIssue=window.rrweb.record.addCustomEvent;var _crashEmitted=false;function emitIssue(kind){var page='';try{page=location.pathname;}catch(_){}try{addIssue('base44_issue',{kind:kind,page:page});}catch(_){}}var isReload=false;try{if(performance.getEntriesByType){var navEntry=performance.getEntriesByType('navigation')[0];if(navEntry&&navEntry.type==='reload')isReload=true;}}catch(_){}if(!isReload){try{if(performance.navigation&&performance.navigation.type===1)isReload=true;}catch(_){}}if(isReload)emitIssue('page_refresh');try{window.addEventListener('unhandledrejection',function(){try{if(_crashEmitted)return;_crashEmitted=true;emitIssue('app_crash');}catch(_){}},true);}catch(_){}}function startRecord(){if(_started)return;if(_stopRequested){try{console.debug('[base44 recordings] stop requested before start; not recording');}catch(_){}return;}if(_sampledOut){try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}_started=true;var maskInputOptions={password:true,email:true};if(MASK_NUMBERS){maskInputOptions.number=true;maskInputOptions.tel=true;maskInputOptions.date=true;}var recordOpts={emit:function(ev){if(_stopRequested)return;if(isMeaningfulActivityEvent(ev))markActivity();try{if(ev&&ev.type===4&&ev.data&&typeof ev.data.href==='string')ev.data.href=redactUrl(ev.data.href);}catch(_){}buffer.push(ev);if(ev.type===2){flush(false);return;}if(buffer.length>=50||Date.now()-lastFlush>5000)flush(false);},maskAllInputs:true,maskInputOptions:maskInputOptions,maskTextFn:maskTextFn,maskTextSelector:'.session-record-mask,[data-no-record]',blockSelector:'.session-record-block,[data-no-record-block]',recordCanvas:false,inlineStylesheet:true,checkoutEveryNms:60000};if(CAPTURE_IFRAMES)recordOpts.iframe=true;recorderStopFn=window.rrweb.record(recordOpts);if(window.rrweb.record.addCustomEvent){_sdkActive=window.rrweb.record.addCustomEvent;for(var _i=0;_i<_sdkPending.length;_i++){var _e=_sdkPending[_i];try{_sdkActive('base44_sdk',Object.assign({method:_e.method},_e.payload||{}));}catch(_){}}_sdkPending=[];}devtoolsCapture();performanceCapture();issueCapture();sessionLifetimeCapture();setTimeout(function(){try{window.rrweb.record.takeFullSnapshot&&window.rrweb.record.takeFullSnapshot(true);}catch(_){}},1500);setInterval(function(){flush(false);},5000);window.addEventListener('beforeunload',function(){flush(true);});}function whenReady(){var tries=0;function check(){var root=document.getElementById('root')||document.querySelector('main')||document.body;if(root&&root.childElementCount>0)return startRecord();if(++tries>50)return startRecord();setTimeout(check,100);}check();}
270if(document.readyState==='complete')whenReady();else window.addEventListener('load',whenReady);};(document.head||document.body).appendChild(s);})(); 271 </script>
271 272 </head> 273 <body style="background-color:#15171c;overscroll-behavior:none"> 274 <!-- Meta Pixel noscript fallback --> 275 <noscript> 276 <img height="1" src="https://www.facebook.com/tr?id=393053123349759&ev=PageView&noscript=1" style="display:none" width="1"/> 277 </noscript> 278 <div id="root"> 279 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 280 <main> 281 <header> 282 <h1> 283 About | prodigywildfire.com 284 </h1> 285 <p> 286 About on prodigywildfire.com. ProdigyWildfire. 287 </p> 288 </header> 289 <nav aria-label="Pages"> 290 <h2> 291 Pages 292 </h2> 293 <ul> 294 <li> 295 <a href="/"> 296 Home 297 </a> 298 </li> 299 <li> 300 <a href="/about"> 301 About 302 </a> 303 â About on prodigywildfire.com. ProdigyWildfire. 304 </li> 305 <li> 306 <a href="/wildfires"> 307 Wildfires 308 </a> 309 â Wildfires on prodigywildfire.com. ProdigyWildfire. 310 </li> 311 <li> 312 <a href="/systems"> 313 Systems 314 </a> 315 â Systems on prodigywildfire.com. ProdigyWildfire. 316 </li> 317 <li> 318 <a href="/homeowners"> 319 Homeowners 320 </a> 321 â Homeowners on prodigywildfire.com. ProdigyWildfire. 322 </li> 323 <li> 324 <a href="/businesses"> 325 Businesses 326 </a> 327 â Businesses on prodigywildfire.com. ProdigyWildfire. 328 </li> 329 <li> 330 <a href="/assessment"> 331 Assessment 332 </a> 333 â Assessment on prodigywildfire.com. ProdigyWildfire. 334 </li> 335 <li> 336 <a href="/consultation"> 337 Consultation 338 </a> 339 â Consultation on prodigywildfire.com. ProdigyWildfire. 340 </li> 341 <li> 342 <a href="/commercialconsultation"> 343 Commercial Consultation 344 </a> 345 â Commercial Consultation on prodigywildfire.com. ProdigyWildfire. 346 </li> 347 <li> 348 <a href="/contact"> 349 Contact 350 </a> 351 â Contact on prodigywildfire.com. ProdigyWildfire. 352 </li> 353 <li> 354 <a href="/faq"> 355 FAQ 356 </a> 357 â FAQ on prodigywildfire.com. ProdigyWildfire. 358 </li> 359 <li> 360 <a href="/partners"> 361 Partners 362 </a> 363 â Partners on prodigywildfire.com. ProdigyWildfire. 364 </li> 365 <li> 366 <a href="/regions"> 367 Regions 368 </a> 369 â Regions on prodigywildfire.com. ProdigyWildfire. 370 </li> 371 <li> 372 <a href="/canada"> 373 Region Canada 374 </a> 375 â Region Canada on prodigywildfire.com. ProdigyWildfire. 376 </li> 377 <li> 378 <a href="/usa"> 379 Region USA 380 </a> 381 â Region USA on prodigywildfire.com. ProdigyWildfire. 382 </li> 383 <li> 384 <a href="/australia"> 385 Region Australia 386 </a> 387 â Region Australia on prodigywildfire.com. ProdigyWildfire. 388 </li> 389 <li> 390 <a href="/insights"> 391 Insights 392 </a> 393 â Insights on prodigywildfire.com. ProdigyWildfire. 394 </li> 395 <li> 396 <a href="/casestudies"> 397 Case Studies 398 </a> 399 â Case Studies on prodigywildfire.com. ProdigyWildfire. 400 </li> 401 <li> 402 <a href="/subscribe"> 403 Subscribe 404 </a> 405 â Subscribe on prodigywildfire.com. ProdigyWildfire. 406 </li> 407 <li> 408 <a href="/app"> 409 App Demo 410 </a> 411 â App Demo on prodigywildfire.com. ProdigyWildfire. 412 </li> 413 <li> 414 <a href="/emberwatch"> 415 Ember Watch 416 </a> 417 â Ember Watch on prodigywildfire.com. ProdigyWildfire. 418 </li> 419 <li> 420 <a href="/sms-consent"> 421 SMS Consent 422 </a> 423 â SMS Consent on prodigywildfire.com. ProdigyWildfire. 424 </li> 425 <li> 426 <a href="/education/evacuation-preparedness"> 427 Evacuation Preparedness 428 </a> 429 â Evacuation Preparedness on prodigywildfire.com. ProdigyWildfire. 430 </li> 431 <li> 432 <a href="/home2"> 433 Home2 434 </a> 435 â Home2 on prodigywildfire.com. ProdigyWildfire. 436 </li> 437 <li> 438 <a href="/wildfire-sprinkler-system-cost"> 439 System Cost 440 </a> 441 â System Cost on prodigywildfire.com. ProdigyWildfire. 442 </li> 443 <li> 444 <a href="/finance"> 445 Financing 446 </a> 447 â Financing on prodigywildfire.com. ProdigyWildfire. 448 </li> 449 <li> 450 <a href="/insights/wildfire-season-2026-contrast-protection-systems"> 451 Insights Two Continents 452 </a> 453 â Insights Two Continents on prodigywildfire.com. ProdigyWildfire. 454 </li> 455 <li> 456 <a href="/insights/tracking-2026-wildfires-canada"> 457 Insights Canada Tracker 458 </a> 459 â Insights Canada Tracker on prodigywildfire.com. ProdigyWildfire. 460 </li> 461 <li> 462 <a href="/insights/lancashire-magazine-feature"> 463 Insights Magazine Feature 464 </a> 465 â Insights Magazine Feature on prodigywildfire.com. ProdigyWildfire. 466 </li> 467 <li> 468 <a href="/insights/nbc-los-angeles-wildfire-sprinkler-feature"> 469 Insights Nbc Feature 470 </a> 471 â Insights Nbc Feature on prodigywildfire.com. ProdigyWildfire. 472 </li> 473 <li> 474 <a href="/reviews"> 475 Reviews 476 </a> 477 â Reviews on prodigywildfire.com. ProdigyWildfire. 478 </li> 479 <li> 480 <a href="/privacy"> 481 Privacy 482 </a> 483 â Privacy on prodigywildfire.com. ProdigyWildfire. 484 </li> 485 <li> 486 <a href="/terms"> 487 Terms 488 </a> 489 â Terms on prodigywildfire.com. ProdigyWildfire. 490 </li> 491 <li> 492 <a href="/cookies"> 493 Cookies 494 </a> 495 â Cookies on prodigywildfire.com. ProdigyWildfire. 496 </li> 497 <li> 498 <a href="/sms-opt-in"> 499 SMS Opt In 500 </a> 501 â SMS Opt In on prodigywildfire.com. ProdigyWildfire. 502 </li> 503 <li> 504 <a href="/videos"> 505 Videos 506 </a> 507 â Videos on prodigywildfire.com. ProdigyWildfire. 508 </li> 509 <li> 510 <a href="/videos/intro"> 511 Video Intro 512 </a> 513 â Video Intro on prodigywildfire.com. ProdigyWildfire. 514 </li> 515 <li> 516 <a href="/login"> 517 Login 518 </a> 519 â Login on prodigywildfire.com. ProdigyWildfire. 520 </li> 521 <li> 522 <a href="/register"> 523 Register 524 </a> 525 â Register on prodigywildfire.com. ProdigyWildfire. 526 </li> 527 <li> 528 <a href="/forgot-password"> 529 Forgot Password 530 </a> 531 â Forgot Password on prodigywildfire.com. ProdigyWildfire. 532 </li> 533 <li> 534 <a href="/reset-password"> 535 Reset Password 536 </a> 537 â Reset Password on prodigywildfire.com. ProdigyWildfire. 538 </li> 539 <li> 540 <a href="/portal-sso"> 541 Portal Sso 542 </a> 543 â Portal Sso on prodigywildfire.com. ProdigyWildfire. 544 </li> 545 <li> 546 <a href="/aviva"> 547 Aviva Partnership 548 </a> 549 â Aviva Partnership on prodigywildfire.com. ProdigyWildfire. 550 </li> 551 <li> 552 <a href="/navacord"> 553 Navacord Partnership 554 </a> 555 â Navacord Partnership on prodigywildfire.com. ProdigyWildfire. 556 </li> 557 <li> 558 <a href="/go"> 559 Go Redirect 560 </a> 561 â Go Redirect on prodigywildfire.com. ProdigyWildfire. 562 </li> 563 <li> 564 <a href="/partner-signup"> 565 Partner Signup 566 </a> 567 â Partner Signup on prodigywildfire.com. ProdigyWildfire. 568 </li> 569 <li> 570 <a href="/lp-assessment"> 571 Landing Assessment 572 </a> 573 â Landing Assessment on prodigywildfire.com. ProdigyWildfire. 574 </li> 575 <li> 576 <a href="/thank-you"> 577 Thank You 578 </a> 579 â Thank You on prodigywildfire.com. ProdigyWildfire. 580 </li> 581 <li> 582 <a href="/thank-you-assessment"> 583 Thank You Assessment 584 </a> 585 â Thank You Assessment on prodigywildfire.com. ProdigyWildfire. 586 </li> 587 <li> 588 <a href="/wui"> 589 WUI 590 </a> 591 â WUI on prodigywildfire.com. ProdigyWildfire. 592 </li> 593 <li> 594 <a href="/internal/results-audit"> 595 Internal Results Audit 596 </a> 597 â Internal Results Audit on prodigywildfire.com. ProdigyWildfire. 598 </li> 599 <li> 600 <a href="/credit-case"> 601 Credit Case 602 </a> 603 â Credit Case on prodigywildfire.com. ProdigyWildfire. 604 </li> 605 <li> 606 <a href="/stand-with-owners"> 607 Stand With Owners 608 </a> 609 â Stand With Owners on prodigywildfire.com. ProdigyWildfire. 610 </li> 611 <li> 612 <a href="/ad-two-houses"> 613 Ad Two Houses 614 </a> 615 â Ad Two Houses on prodigywildfire.com. ProdigyWildfire. 616 </li> 617 <li> 618 <a href="/scenic-world-portfolio"> 619 Scenic World Portfolio 620 </a> 621 â Scenic World Portfolio on prodigywildfire.com. ProdigyWildfire. 622 </li> 623 <li> 624 <a href="/masterclass-deck"> 625 George Masterclass 626 </a> 627 â George Masterclass on prodigywildfire.com. ProdigyWildfire. 628 </li> 629 <li> 630 <a href="/masterclass-ask"> 631 Masterclass Ask 632 </a> 633 â Masterclass Ask on prodigywildfire.com. ProdigyWildfire. 634 </li> 635 <li> 636 <a href="/masterclass-notes"> 637 Masterclass Notes 638 </a> 639 â Masterclass Notes on prodigywildfire.com. ProdigyWildfire. 640 </li> 641 <li> 642 <a href="/costco-proposal"> 643 Costco Proposal 644 </a> 645 â Costco Proposal on prodigywildfire.com. ProdigyWildfire. 646 </li> 647 <li> 648 <a href="/ranch-presentation"> 649 Ranch Presentation 650 </a> 651 â Ranch Presentation on prodigywildfire.com. ProdigyWildfire. 652 </li> 653 <li> 654 <a href="/australia-bushfire-protection"> 655 Australian Commercial 656 </a> 657 â Australian Commercial on prodigywildfire.com. ProdigyWildfire. 658 </li> 659 <li> 660 <a href="/completed-installations"> 661 Installations By Region 662 </a> 663 â Installations By Region on prodigywildfire.com. ProdigyWildfire. 664 </li> 665 <li> 666 <a href="/investor-update-2026"> 667 Investor Update2026 668 </a> 669 â Investor Update2026 on prodigywildfire.com. ProdigyWildfire. 670 </li> 671 <li> 672 <a href="/ca-tradeshow-brochure"> 673 Ca Tradeshow Brochure 674 </a> 675 â Ca Tradeshow Brochure on prodigywildfire.com. ProdigyWildfire. 676 </li> 677 <li> 678 <a href="/ad-decisions"> 679 Ad Decisions 680 </a> 681 â Ad Decisions on prodigywildfire.com. ProdigyWildfire. 682 </li> 683 <li> 684 <a href="/brand"> 685 Brand Assets 686 </a> 687 â Brand Assets on prodigywildfire.com. ProdigyWildfire. 688 </li> 689 <li> 690 <a href="/resources/community-wildfire-resilience-bc"> 691 Community Resilience BC 692 </a> 693 â Community Resilience BC on prodigywildfire.com. ProdigyWildfire. 694 </li> 695 <li> 696 <a href="/resources/navacord-brief"> 697 Navacord Brief 698 </a> 699 â Navacord Brief on prodigywildfire.com. ProdigyWildfire. 700 </li> 701 <li> 702 <a href="/resources/lismore-bushfire-resilience"> 703 Lismore Bushfire Brief 704 </a> 705 â Lismore Bushfire Brief on prodigywildfire.com. ProdigyWildfire. 706 </li> 707 <li> 708 <a href="/water-video-lab"> 709 Water Video Lab 710 </a> 711 â Water Video Lab on prodigywildfire.com. ProdigyWildfire. 712 </li> 713 <li> 714 <a href="/bubble-lab"> 715 Bubble Lab 716 </a> 717 â Bubble Lab on prodigywildfire.com. ProdigyWildfire. 718 </li> 719 <li> 720 <a href="/bcha-deck"> 721 BCHA Wildfire Resilience Deck 722 </a> 723 â BCHA Wildfire Resilience Deck on prodigywildfire.com. ProdigyWildfire. 724 </li> 725 <li> 726 <a href="/resilience-deck"> 727 Wildfire Resilience Brief 728 </a> 729 â Wildfire Resilience Brief on prodigywildfire.com. ProdigyWildfire. 730 </li> 731 <li> 732 <a href="/resources/coldwell-brief"> 733 Coldwell Brief 734 </a> 735 â Coldwell Brief on prodigywildfire.com. ProdigyWildfire. 736 </li> 737 <li> 738 <a href="/resources/ibabc-brief"> 739 Ibabc Brief 740 </a> 741 â Ibabc Brief on prodigywildfire.com. ProdigyWildfire. 742 </li> 743 <li> 744 <a href="/ibabc-pptx"> 745 Ibabc Pptx 746 </a> 747 â Ibabc Pptx on prodigywildfire.com. ProdigyWildfire. 748 </li> 749 <li> 750 <a href="/aviva-deck"> 751 Aviva Brief 752 </a> 753 â Aviva Brief on prodigywildfire.com. ProdigyWildfire. 754 </li> 755 <li> 756 <a href="/aviva-pptx"> 757 Aviva Pptx 758 </a> 759 â Aviva Pptx on prodigywildfire.com. ProdigyWildfire. 760 </li> 761 <li> 762 <a href="/resources/malibu-brief"> 763 Malibu Brief 764 </a> 765 â Malibu Brief on prodigywildfire.com. ProdigyWildfire. 766 </li> 767 <li> 768 <a href="/resources/steamboat-brief"> 769 Steamboat Brief 770 </a> 771 â Steamboat Brief on prodigywildfire.com. ProdigyWildfire. 772 </li> 773 <li> 774 <a href="/resources/calabasas-brief"> 775 Calabasas Brief 776 </a> 777 â Calabasas Brief on prodigywildfire.com. ProdigyWildfire. 778 </li> 779 <li> 780 <a href="/resources/lilwat-brief"> 781 Lilwat Brief 782 </a> 783 â Lilwat Brief on prodigywildfire.com. ProdigyWildfire. 784 </li> 785 <li> 786 <a href="/resources/lilwat-leave-behind"> 787 Lilwat Leave Behind 788 </a> 789 â Lilwat Leave Behind on prodigywildfire.com. ProdigyWildfire. 790 </li> 791 <li> 792 <a href="/guided-luxury"> 793 Guided Luxury 794 </a> 795 â Guided Luxury on prodigywildfire.com. ProdigyWildfire. 796 </li> 797 <li> 798 <a href="/ig"> 799 Instagram Landing 800 </a> 801 â Instagram Landing on prodigywildfire.com. ProdigyWildfire. 802 </li> 803 <li> 804 <a href="/whistler-demo"> 805 Whistler Demo 806 </a> 807 â Whistler Demo on prodigywildfire.com. ProdigyWildfire. 808 </li> 809 <li> 810 <a href="/firewise"> 811 Firewise Festival 812 </a> 813 â Firewise Festival on prodigywildfire.com. ProdigyWildfire. 814 </li> 815 <li> 816 <a href="/anzdemc">
817 Anz Demc 818 </a> 819 â Anz Demc on prodigywildfire.com. ProdigyWildfire. 820 </li> 821 <li> 822 <a href="/demc"> 823 Demc 824 </a> 825 â Demc on prodigywildfire.com. ProdigyWildfire. 826 </li> 827 <li> 828 <a href="/demc-flyer"> 829 Demc Flyer 830 </a> 831 â Demc Flyer on prodigywildfire.com. ProdigyWildfire. 832 </li> 833 <li> 834 <a href="/demc-outreach"> 835 Demc Outreach 836 </a> 837 â Demc Outreach on prodigywildfire.com. ProdigyWildfire. 838 </li> 839 <li> 840 <a href="/demc-letter"> 841 Demc Community Letter 842 </a> 843 â Demc Community Letter on prodigywildfire.com. ProdigyWildfire. 844 </li> 845 <li> 846 <a href="/resources/anzdemc-brief"> 847 Anzdemc Brief 848 </a> 849 â Anzdemc Brief on prodigywildfire.com. ProdigyWildfire. 850 </li> 851 <li> 852 <a href="/anzdemc-pack"> 853 Anzdemc Pack 854 </a> 855 â Anzdemc Pack on prodigywildfire.com. ProdigyWildfire. 856 </li> 857 <li> 858 <a href="/rbcc-deck"> 859 Rbcc Brief 860 </a> 861 â Rbcc Brief on prodigywildfire.com. ProdigyWildfire. 862 </li> 863 <li> 864 <a href="/rbcc-buddy"> 865 Rbcc Buddy 866 </a> 867 â Rbcc Buddy on prodigywildfire.com. ProdigyWildfire. 868 </li> 869 <li> 870 <a href="/fires-near-me/usa"> 871 Fires Near Me Hub 872 </a> 873 â Fires Near Me Hub on prodigywildfire.com. ProdigyWildfire. 874 </li> 875 <li> 876 <a href="/v2/Installations"> 877 Installations V2 878 </a> 879 â V2 / Installations V2 on prodigywildfire.com. ProdigyWildfire. 880 </li> 881 <li> 882 <a href="/v2/Portfolio"> 883 Navigate With Query 884 </a> 885 â Navigate With Query on prodigywildfire.com. ProdigyWildfire. 886 </li> 887 <li> 888 <a href="/v2/Pricing"> 889 Pricing V2 890 </a> 891 â V2 / Pricing V2 on prodigywildfire.com. ProdigyWildfire. 892 </li> 893 <li> 894 <a href="/v2/Homeowners"> 895 Homeowners V2 896 </a> 897 â V2 / Homeowners V2 on prodigywildfire.com. ProdigyWildfire. 898 </li> 899 <li> 900 <a href="/v2/Businesses"> 901 Businesses V2 902 </a> 903 â V2 / Businesses V2 on prodigywildfire.com. ProdigyWildfire. 904 </li> 905 <li> 906 <a href="/v2/Systems"> 907 Systems V2 908 </a> 909 â V2 / Systems V2 on prodigywildfire.com. ProdigyWildfire. 910 </li> 911 <li> 912 <a href="/v2/Assessment"> 913 Assessment V2 914 </a> 915 â V2 / Assessment V2 on prodigywildfire.com. ProdigyWildfire. 916 </li> 917 <li> 918 <a href="/v2/assessment-tool"> 919 Assessment Tool V2 920 </a> 921 â V2 / Assessment Tool V2 on prodigywildfire.com. ProdigyWildfire. 922 </li> 923 <li> 924 <a href="/v2/results-preview"> 925 Results Preview V2 926 </a> 927 â V2 / Results Preview V2 on prodigywildfire.com. ProdigyWildfire. 928 </li> 929 <li> 930 <a href="/v2/Consultation"> 931 Consultation V2 932 </a> 933 â V2 / Consultation V2 on prodigywildfire.com. ProdigyWildfire. 934 </li> 935 <li> 936 <a href="/v2/CommercialConsultation"> 937 Commercial Consultation V2 938 </a> 939 â V2 / Commercial Consultation V2 on prodigywildfire.com. ProdigyWildfire. 940 </li> 941 <li> 942 <a href="/v2/Partners"> 943 Partners V2 944 </a> 945 â V2 / Partners V2 on prodigywildfire.com. ProdigyWildfire. 946 </li> 947 <li> 948 <a href="/v2/aviva"> 949 Aviva V2 950 </a> 951 â V2 / Aviva V2 on prodigywildfire.com. ProdigyWildfire. 952 </li> 953 <li> 954 <a href="/v2/App"> 955 App V2 956 </a> 957 â V2 / App V2 on prodigywildfire.com. ProdigyWildfire. 958 </li> 959 <li> 960 <a href="/v2/Insights"> 961 Insights V2 962 </a> 963 â V2 / Insights V2 on prodigywildfire.com. ProdigyWildfire. 964 </li> 965 <li> 966 <a href="/v2/Wildfires"> 967 Wildfires V2 968 </a> 969 â V2 / Wildfires V2 on prodigywildfire.com. ProdigyWildfire. 970 </li> 971 <li> 972 <a href="/v2/FAQ"> 973 Faq V2 974 </a> 975 â V2 / Faq V2 on prodigywildfire.com. ProdigyWildfire. 976 </li> 977 <li> 978 <a href="/v2/About"> 979 About V2 980 </a> 981 â V2 / About V2 on prodigywildfire.com. ProdigyWildfire. 982 </li> 983 <li> 984 <a href="/v2/Contact"> 985 Contact V2 986 </a> 987 â V2 / Contact V2 on prodigywildfire.com. ProdigyWildfire. 988 </li> 989 <li> 990 <a href="/v2/Regions"> 991 Regions V2 992 </a> 993 â V2 / Regions V2 on prodigywildfire.com. ProdigyWildfire. 994 </li> 995 <li> 996 <a href="/v2/Subscribe"> 997 Subscribe V2 998 </a> 999 â V2 / Subscribe V2 on prodigywildfire.com. ProdigyWildfire. 1000 </li> 1001 </ul> 1002 </nav> 1003 </main> 1004 </div> 1005 <!-- ProdigyLoader (pre-React) â SSOT branded first-paint loader. 1006 Mirrors components/shared/ProdigyLoader.jsx. React replaces #root's 1007 contents on mount, so this is auto-cleared. Inline styles only 1008 (index.css isn't parsed yet at this point). --> 1009 <div style="position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:#F5F5F5"> 1010 <img alt="Prodigy Wildfire Solutions" height="47" src="https://media.base44.com/images/public/69a3b85b94a575964ed0cdcd/aa9918f20_PWSLogo150ppi.png" style="width:min(210px,54vw);height:auto;object-fit:contain" width="220"/> 1011 <span style="position:relative;width:min(180px,46vw);height:2px;border-radius:999px;background:rgba(35,31,32,.1);overflow:hidden"> 1012 <i style="position:absolute;top:0;bottom:0;left:0;width:34%;border-radius:999px;background:linear-gradient(90deg,rgba(176,140,47,0),#B08C2F 45%,#C9A020 60%,rgba(201,160,32,0));animation:prodigySweepPre 1.35s cubic-bezier(.45,0,.55,1) infinite"> 1013 </i> 1014 </span> 1015 </div> 1016 <style>
1017 @keyframes prodigySweepPre{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}} 1018 </style> 1019 </div> 1020 <!-- PRE-RENDERED SEO CONTENT â visible to crawlers before JS executes. 1021 This is CRITICAL for SPA indexing. React will mount into #root and 1022 this noscript/sr-only content ensures Google sees keywords immediately. --> 1023 <div aria-hidden="true" id="seo-prerender" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap"> 1024 <h1> 1025 Prodigy Wildfire Solutions â Wildfire Protection Systems for Homes & Businesses 1026 </h1> 1027 <h2> 1028 Exterior Wildfire Sprinkler Systems | Ember Attack Defence | USA, Canada & Australia 1029 </h2> 1030 <p> 1031 Prodigy Wildfire Solutions designs and installs permanent exterior wildfire sprinkler systems that create a protective humidity bubble around homes and businesses. Our engineered wildfire defence systems protect against ember attack, radiant heat, and direct flame contact. Serving the USA, Canada, and Australia with NFPA, FireSmart, and BAL-compliant wildfire protection. 1032 </p> 1033 <h3> 1034 Wildfire Protection for Homes 1035 </h3> 1036 <p> 1037 Protect your home from wildfire with a permanent exterior sprinkler system. Residential wildfire protection starts at $15,000 USD. Installation completes in one day. Remote app activation from anywhere in the world. Defend against ember attack â the cause of 90% of wildfire home losses. 1038 </p> 1039 <h3> 1040 Commercial Wildfire Protection 1041 </h3> 1042 <p> 1043 Prodigy commercial wildfire sprinkler systems protect resorts, tourism infrastructure, utilities, wineries, and business properties. Scalable from single buildings to multi-structure campuses. Notable installations include the Banff Gondola and Golden Skybridge. Systems from $25,000 to $1.2M+. 1044 </p> 1045 <h3> 1046 Free Wildfire Risk Assessment 1047 </h3> 1048 <p> 1049 Get your free AI-powered wildfire risk assessment in 2 minutes. Enter your property address and receive a personalised risk score, nearby fire history, key risk factors, and tailored protection recommendations. Available for properties in the USA, Canada, and Australia. 1050 </p> 1051 <h3> 1052 How Wildfire Sprinkler Systems Work 1053 </h3> 1054 <p> 1055 Prodigy exterior wildfire sprinkler systems use roof-mounted nozzles to create a 360-degree humidity bubble around structures. The system includes ember detection sensors, remote smartphone activation, and programmable cycle times. Water saturates the building envelope â roof, walls, eaves, and surrounding vegetation â preventing ember ignition and reducing radiant heat absorption. 1056 </p> 1057 <h3> 1058 Wildfire Protection by Region 1059 </h3> 1060 <p> 1061 California wildfire protection and sprinkler systems. Colorado wildfire defence. Oregon and Washington fire protection. British Columbia wildfire sprinklers â FireSmart compliant. Alberta wildfire defence. Ontario fire protection systems. Australian bushfire protection â BAL-rated sprinkler systems for NSW, Victoria, and Queensland. 1062 </p> 1063 <h3> 1064 Ember Attack Prevention 1065 </h3> 1066 <p> 1067 Ember attack is the number one cause of home destruction during wildfires. Embers can travel over 20 kilometres ahead of the fire front at temperatures of 1,200°C. Up to 90% of homes lost in wildfires are destroyed by ember attack, not direct flames. Prodigy exterior sprinkler systems neutralise embers on contact. 1068 </p> 1069 <h3> 1070 Wildfire Insurance & Property Value 1071 </h3> 1072 <p> 1073 A permanent wildfire sprinkler system can help maintain property insurance coverage in fire-prone areas where insurers are withdrawing. Many insurers offer premium discounts for properties with permanent wildfire protection. Systems increase property value and transfer to new owners at point of sale. 1074 </p> 1075 <nav> 1076 <a href="/systems"> 1077 Wildfire Sprinkler Systems â Roof & Exterior Fire Sprinklers 1078 </a> 1079 <a href="/homeowners"> 1080 Residential Wildfire Protection â Home Sprinkler Systems 1081 </a> 1082 <a href="/businesses"> 1083 Commercial Wildfire Protection â Business Fire Sprinklers 1084 </a> 1085 <a href="/assessment"> 1086 Free Wildfire Risk Assessment 1087 </a> 1088 <a href="/wildfires"> 1089 How Wildfires Spread â Ember Attack 1090 </a> 1091 <a href="/canada"> 1092 Wildfire Protection Canada â BC, Alberta, Ontario 1093 </a> 1094 <a href="/usa"> 1095 Wildfire Protection USA â California, Colorado 1096 </a> 1097 <a href="/australia"> 1098 Bushfire Protection Australia â NSW, Victoria 1099 </a> 1100 <a href="/faq"> 1101 Wildfire Sprinkler System FAQ â Cost & Installation 1102 </a> 1103 <a href="/consultation"> 1104 Free Wildfire Protection Consultation 1105 </a> 1106 <a href="/contact"> 1107 Contact Prodigy Wildfire Solutions 1108 </a> 1109 <a href="/insights"> 1110 Wildfire Intelligence & Expert Articles 1111 </a> 1112 <a href="/casestudies"> 1113 Wildfire Protection Case Studies 1114 </a> 1115 <a href="/emberwatch"> 1116 Live Wildfire Map â EmberWatch Active Fire Tracker 1117 </a> 1118 </nav> 1119 </div> 1120 <noscript> 1121 <div style="max-width:800px;margin:0 auto;padding:40px 20px;font-family:sans-serif;color:#e0e0e0;background:#15171c"> 1122 <h1 style="color:#B18C19"> 1123 Prodigy Wildfire Solutions 1124 </h1> 1125 <p> 1126 Engineered exterior wildfire sprinkler systems for homes and businesses across the USA, Canada, and Australia. 1127 </p> 1128 <p> 1129 Residential systems from $15,000 USD. Commercial systems from $25,000. Free wildfire risk assessment available. 1130 </p> 1131 <p> 1132 Contact:
1133 <a href="mailto:[email protected]" style="color:#B18C19"> 1134 [email protected] 1135 </a> 1136 | +1-778-968-1200 1137 </p> 1138 <p> 1139 Please enable JavaScript to use the full Prodigy Wildfire Solutions website. 1140 </p> 1141 </div> 1142 </noscript> 1143 </body> 1144</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.