PageSourceSearch

https://prodigywildfire.com/about

html prodigywildfire.com collected 2026-10-05 17:40:48 UTC 65,514 bytes, 1,144 lines download raw bytes

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&amp;ev=PageView&amp;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 &amp; Businesses
1026   </h1>
1027   <h2>
1028    Exterior Wildfire Sprinkler Systems | Ember Attack Defence | USA, Canada &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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.