PageSourceSearch

https://infolia.ai/

html infolia.ai collected 2026-10-05 14:16:34 UTC 31,112 bytes, 593 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html lang="en">
5<head>
6    <meta charset="UTF-8">
7    <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
9    <title>Infolia AI - AI Newsletter for Professionals | Latest AI Trends &amp; Insights</title>
10    <meta name="description" content='Join thousands getting curated AI insights, emerging trends, and practical applications delivered weekly. Free newsletter covering machine learning news, AI tools, and breakthrough research.'>
11    <meta name="keywords" content='AI newsletter, artificial intelligence trends, AI insights, tech newsletter, AI news, machine learning news, AI tools, AI research, artificial intelligence updates'>
12
13    <link rel="icon" type="image/png" href="/favicon-96x96.png?v=2" sizes="96x96" />
14    <link rel="icon" type="image/svg+xml" href="/favicon.svg?v=2" />
15    <link rel="shortcut icon" href="/favicon.ico?v=2" />
16    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=2" />
17    <meta name="apple-mobile-web-app-title" content="Infolia AI" />
18    <link rel="manifest" href="/site.webmanifest?v=2" />
19
20
21    <!-- Google tag (gtag.js) - Deferred for performance -->
vendor: 68 bytes, lines 21-22
21
22    <script defer src="https://www.googletagmanager.com/gtag/js?id=
22G-NTZX6YNGCY
vendor: 16 bytes, lines 22-23
22"></script>
23    
23<script>
24        
vendor: 151 bytes, lines 24-27
24window.dataLayer = window.dataLayer || [];
25        function gtag(){dataLayer.push(arguments);}
26        gtag('js', new Date());
27        gtag('config', '
27G-NTZX6YNGCY
vendor: 8 bytes, lines 27-28
27');
28    
28</script>
28
29
30
31        <meta property="og:title" content="Infolia AI - AI Newsletter for Professionals">
32
33        <meta property="og:description" content="Join thousands getting curated AI insights, emerging trends, and practical applications delivered weekly. Cut through the noise with intelligence that actually matters.">
34
35        <meta property="og:image" content="https://infolia.ai/og-image.PNG">
36
37        <meta property="og:url" content="https://infolia.ai">
38
39        <meta property="og:type" content="website">
40
41        <meta property="og:site_name" content="Infolia AI">
42
43        <meta name="twitter:card" content="summary_large_image">
44
45        <meta name="twitter:title" content="Infolia AI - AI Newsletter for Professionals">
46
47        <meta name="twitter:description" content="Join thousands getting curated AI insights, emerging trends, and practical applications delivered weekly.">
48
49        <meta name="twitter:image" content="https://infolia.ai/og-image.PNG">
50
51    <link rel="canonical" href='https://infolia.ai'>
52
53    <!-- Resource hints for performance -->
54    <link rel="preconnect" href="https://fonts.googleapis.com">
55    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
56    <link rel="dns-prefetch" href="https://www.google.com">
57    <link rel="dns-prefetch" href="https://www.googletagmanager.com">
58
59    <!-- Structured Data - Organization -->
60    
60<script type="application/ld+json">
61        {
62          "@context": "https://schema.org",
63          "@type": "Organization",
64          "name": "Infolia AI",
65          "description": "Free newsletter for software engineers. AI trends & analysis Mondays, deep-dive AI tutorials Thursdays. Learn AI fundamentals.",
66          "url": "https://infolia.ai",
67          "logo": "https://infolia.ai/logo.png",
68          "sameAs": [],
69          "contactPoint": {
70            "@type": "ContactPoint",
71            "email": "[email protected]",
72            "contactType": "Customer Service"
73          }
74        }
75    </script>
75
76
77    <!-- Non-blocking font loading -->
78    <link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
79    <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"></noscript>
80
81    <link rel="stylesheet" href="/css/layout.css">
82    
83    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
84    <link rel="stylesheet" href="/css/home.css">
85
86    
87</head>
88<body>
89
90
91        <!-- Header -->
92        <header class="header">
93            <nav class="nav container">
94                <a href="/" class="logo" itemscope itemtype="https://schema.org/Organization">
95                    <span itemprop="name">Infolia AI</span>
96                </a>
97                <div class="nav-links">
98                    <a href="/learnAI" class="nav-link">Learn AI</a>
99                    <a href="/archive" class="nav-link">Newsletter</a>
100                    <a href="/blogs" class="nav-link">Blog</a>
101                </div>
102                <div class="nav-cta-container">
103                    <button class="nav-cta" onclick="toggleDropdown()">
104                        Subscribe Free
105                        <span class="nav-cta-arrow" id="nav-arrow">▼</span>
106                    </button>
107                    <div class="nav-dropdown" id="nav-dropdown">
108                        <h3>Get Started Today</h3>
109                        <p>Get curated AI insights delivered to your inbox</p>
110                        <form class="nav-dropdown-form" method="POST" action="/subscribe" data-type="subscription">
111                            <input name="__RequestVerificationToken" type="hidden" value="CfDJ8D61VCkyRoRCmE8J2A0MprRIyG5up4vgIOhQPS58Wc2Kvm8ofrtq5elKyxwAAUGpmW-8tioAFCMJTbHero7_jEqU1N3FIpYksCMaBMV5LRrKVwKXPnsKycCX2BoeqIVpFjitfFLif1XW-w_YjuyBNXE" />
112                            <input type="hidden" name="SOURCE" value="nav-dropdown">
113                            <input type="email" id="EMAIL" name="EMAIL" class="nav-dropdown-input" placeholder="Enter your email" required>
114                            <button type="submit" class="nav-dropdown-btn">Subscribe</button>
115                        </form>
116                        <div class="nav-dropdown-disclaimer">No spam, unsubscribe anytime</div>
117                    </div>
118                </div>
119            </nav>
120        </header>
121
122    
123
124
125
126<!-- Hero Section -->
127    <section class="hero" itemscope itemtype="https://schema.org/WebPage">
128        <div class="container">
129            <div class="hero-content">
130                <h1 itemprop="headline">Start Your AI Journey Today</h1>
131                <p class="subtitle" itemprop="description">Curated AI insights, emerging trends, and practical applications delivered to your inbox. Cut through the noise with intelligence that actually matters.</p>
132
133                <form class="signup-form" method="POST" action="/subscribe" data-type="subscription">
134                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8D61VCkyRoRCmE8J2A0MprRIyG5up4vgIOhQPS58Wc2Kvm8ofrtq5elKyxwAAUGpmW-8tioAFCMJTbHero7_jEqU1N3FIpYksCMaBMV5LRrKVwKXPnsKycCX2BoeqIVpFjitfFLif1XW-w_YjuyBNXE" />
135                    <input type="hidden" name="SOURCE" value="homepage-hero">
136                    <input type="email" id="EMAIL" name="EMAIL" class="email-input" placeholder="Enter your email address" required>
137                    <button type="submit" class="signup-btn sib-form-block__button sib-form-block__button-with-loader">Join Free Newsletter</button>
138                </form>                
139
140                <div class="social-proof">
141                    Join thousands of professionals staying informed about AI
142                </div>
143                
144                <div style="margin-top: 20px;">
145                    <a href="/archive/latest" style="color: var(--accent-primary); text-decoration: none; font-size: 16px; font-weight: 500; border-bottom: 1px solid var(--accent-primary); padding-bottom: 2px; transition: all 0.3s ease;">
146                        → See this week's insights
147                    </a>
148                </div>
149            </div>
150        </div>
151    </section>
152
153    <section class="recent-issues">
154        <div class="container">
155            <div class="section-header">
156                <h2 class="section-title">Recent Issues</h2>
157                <p class="section-subtitle">Our latest newsletters</p>
158            </div>
159
160            <div class="issues-grid">
161
162                    <div class="issue-card">
163
164                    <img src="https://infolia.ai/images/newsletters/newsletter-538ab703-94bf-46ec-89d4-5fbedb92abb6.png"
165                         alt="Transfer Learning: Build Powerful AI Models Without Training From Scratch"
166                             class="issue-featured-image"
167                             width="800"
168                             loading="lazy"
169                             decoding="async">
170    
171                        <div class="issue-content">
172                            <div class="issue-meta">
173                                <span class="issue-number">Issue #53</span>
174                                <span class="issue-date">Mar 12, 2026</span>
175                            </div>
176                        <h3 class="issue-title">Transfer Learning: Build Powerful AI Models Without Training From Scratch</h3>
177                            <a href="/archive/53" class="read-more">
178                                Read Full Issue
179                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
180                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
181                                </svg>
182                            </a>
183                        </div>
184                    </div>
185                    <div class="issue-card">
186
187                    <img src="https://infolia.ai/images/newsletters/newsletter-f12ad87b-83c9-4ab3-a900-13d75d982ca6.png"
188                         alt="Model Quantization: How a 70B Model Fits on Your Laptop"
189                             class="issue-featured-image"
190                             width="800"
191                             loading="lazy"
192                             decoding="async">
193    
194                        <div class="issue-content">
195                            <div class="issue-meta">
196                                <span class="issue-number">Issue #52</span>
197                                <span class="issue-date">Mar 06, 2026</span>
198                            </div>
199                        <h3 class="issue-title">Model Quantization: How a 70B Model Fits on Your Laptop</h3>
200                            <a href="/archive/52" class="read-more">
201                                Read Full Issue
202                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
203                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
204                                </svg>
205                            </a>
206                        </div>
207                    </div>
208                    <div class="issue-card">
209
210                    <img src="https://infolia.ai/images/newsletters/newsletter-a35cf637-e44f-4e85-8a88-880b47f95606.png"
211                         alt="Temperature &amp; Sampling: Why Your AI Gives Different Answers Every Time"
212                             class="issue-featured-image"
213                             width="800"
214                             loading="lazy"
215                             decoding="async">
216    
217                        <div class="issue-content">
218                            <div class="issue-meta">
219                                <span class="issue-number">Issue #51</span>
220                                <span class="issue-date">Mar 03, 2026</span>
221                            </div>
222                        <h3 class="issue-title">Temperature &amp; Sampling: Why Your AI Gives Different Answers Every Time</h3>
223                            <a href="/archive/51" class="read-more">
224                                Read Full Issue
225                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
226                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
227                                </svg>
228                            </a>
229                        </div>
230                    </div>
231                    <div class="issue-card">
232
233                    <img
234                         alt=" Tokens &amp; Context Windows: Why ChatGPT Has Limits"
235                             class="issue-featured-image"
236                             width="800"
237                             loading="lazy"
238                             decoding="async">
239    
240                        <div class="issue-content">
241                            <div class="issue-meta">
242                                <span class="issue-number">Issue #50</span>
243                                <span class="issue-date">Feb 27, 2026</span>
244                            </div>
245                        <h3 class="issue-title"> Tokens &amp; Context Windows: Why ChatGPT Has Limits</h3>
246                            <a href="/archive/50" class="read-more">
247                                Read Full Issue
248                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
249                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
250                                </svg>
251                            </a>
252                        </div>
253                    </div>
254                    <div class="issue-card">
255
256                    <img src="https://infolia.ai/images/newsletters/newsletter-d9c6316e-a129-4649-b127-ff878db57359.png"
257                         alt="Three Ways to Customize LLMs: Prompting, RAG, and Fine-Tuning"
258                             class="issue-featured-image"
259                             width="800"
260                             loading="lazy"
261                             decoding="async">
262    
263                        <div class="issue-content">
264                            <div class="issue-meta">
265                                <span class="issue-number">Issue #49</span>
266                                <span class="issue-date">Feb 18, 2026</span>
267                            </div>
268                        <h3 class="issue-title">Three Ways to Customize LLMs: Prompting, RAG, and Fine-Tuning</h3>
269                            <a href="/archive/49" class="read-more">
270                                Read Full Issue
271                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
272                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
273                                </svg>
274                            </a>
275                        </div>
276                    </div>
277                    <div class="issue-card">
278
279                    <img src="https://infolia.ai/images/newsletters/newsletter-b4d3119d-0a99-47a1-832c-4a25cca7d76c.png"
280                         alt="What is RAG? Building Production AI Without Training Models"
281                             class="issue-featured-image"
282                             width="800"
283                             loading="lazy"
284                             decoding="async">
285    
286                        <div class="issue-content">
287                            <div class="issue-meta">
288                                <span class="issue-number">Issue #48</span>
289                                <span class="issue-date">Feb 12, 2026</span>
290                            </div>
291                        <h3 class="issue-title">What is RAG? Building Production AI Without Training Models</h3>
292                            <a href="/archive/48" class="read-more">
293                                Read Full Issue
294                                <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
295                                    <path d="M5 12h14M12 5l7 7-7 7"></path>
296                                </svg>
297                            </a>
298                        </div>
299                    </div>
300            </div>
301
302            <div class="view-all-section">
303                <a href="/archive" class="view-all-btn">
304                    View All Issues
305                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
306                        <path d="M5 12h14M12 5l7 7-7 7"></path>
307                    </svg>
308                </a>
309            </div>
310        </div>
311    </section>
312
313
314
315    <!-- Benefits Section -->
316    <section class="benefits">
317        <div class="container">
318            <div class="section-header">
319                <h2 class="section-title">Why Choose Infolia AI</h2>
320                <p class="section-subtitle">Essential AI intelligence without the information overload</p>
321            </div>
322            
323            <div class="benefits-grid">
324                <div class="benefit-card">
325                    <div class="benefit-icon">
326                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
327                            <path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/>
328                        </svg>
329                    </div>
330                    <h3>Emerging Trends First</h3>
331                    <p>Spot breakthrough AI developments before they hit mainstream. Get the competitive edge with early insights from research to production.</p>
332                </div>
333                
334                <div class="benefit-card">
335                    <div class="benefit-icon">
336                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
337                            <path d="M12 2L2 7l10 5 10-5-10-5z"/>
338                            <path d="M2 17l10 5 10-5"/>
339                            <path d="M2 12l10 5 10-5"/>
340                        </svg>
341                    </div>
342                    <h3>Practical Applications</h3>
343                    <p>Real-world implementations and actionable insights you can apply immediately. From startup MVPs to enterprise transformations.</p>
344                </div>
345                
346                <div class="benefit-card">
347                    <div class="benefit-icon">
348                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
349                            <path d="M9 12l2 2 4-4"/>
350                            <circle cx="12" cy="12" r="10"/>
351                        </svg>
352                    </div>
353                    <h3>Zero Noise Guarantee</h3>
354                    <p>No fluff, no hype, no sponsored content. Every insight is carefully curated and validated. Save hours of research weekly.</p>
355                </div>
356            </div>
357        </div>
358    </section>
359
360    <!-- What You Get -->
361    <section class="content-preview" id="content">
362        <div class="container">
363            <div class="section-header">
364                <h2 class="section-title">What's Inside Every Issue</h2>
365                <p class="section-subtitle">Essential sections covering what matters in AI</p>
366            </div>
367            
368            <div class="preview-grid">
369                <div class="preview-card">
370                    <div class="preview-tag">
371                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
372                            <circle cx="12" cy="12" r="10"/>
373                            <line x1="12" y1="8" x2="12" y2="12"/>
374                            <line x1="12" y1="16" x2="12.01" y2="16"/>
375                        </svg>
376                        AI ALERT
377                    </div>
378                    <h3>The Story Everyone's Talking About</h3>
379                    <p>Deep dive into the week's most important AI development with practical implications for professionals and businesses.</p>
380                </div>
381                
382                <div class="preview-card">
383                    <div class="preview-tag">
384                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
385                            <circle cx="11" cy="11" r="8"/>
386                            <path d="m21 21-4.35-4.35"/>
387                        </svg>
388                        TREND RADAR
389                    </div>
390                    <h3>Research, Corporate Moves & New Tools</h3>
391                    <p>Three key developments shaping the AI landscape: breakthrough research, strategic business moves, and practical applications you can use.</p>
392                </div>
393                
394                <div class="preview-card">
395                    <div class="preview-tag">
396                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
397                            <path d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386z"/>
398                        </svg>
399                        PRO TIP
400                    </div>
401                    <h3>Implement This Week</h3>
402                    <p>Actionable techniques and strategies you can apply immediately to optimize your AI workflows and reduce costs.</p>
403                </div>
404            </div>
405        </div>
406    </section>
407
408    <!-- CTA Section -->
409    <section class="cta-section" id="subscribe">
410        <div class="container">
411            <div class="cta-content">
412                <h2>Ready to Stay Ahead in AI?</h2>
413                <p>Join thousands of professionals staying informed about artificial intelligence. Completely free, delivered regularly, unsubscribe anytime.</p>
414
415                <form class="signup-form" style="margin: 32px auto 0;" method="POST" action="/subscribe" data-type="subscription">
416                <input name="__RequestVerificationToken" type="hidden" value="CfDJ8D61VCkyRoRCm
416E8J2A0MprRIyG5up4vgIOhQPS58Wc2Kvm8ofrtq5elKyxwAAUGpmW-8tioAFCMJTbHero7_jEqU1N3FIpYksCMaBMV5LRrKVwKXPnsKycCX2BoeqIVpFjitfFLif1XW-w_YjuyBNXE" />
417                <input type="hidden" name="SOURCE" value="homepage-cta">
418                    <input type="email" id="EMAIL" name="EMAIL" class="email-input" placeholder="Enter your email address" required>
419                    <button type="submit" class="signup-btn">Join Free Newsletter</button>
420                </form>
421                
422                <p style="margin-top: 16px; font-size: 14px; color: var(--text-muted);">
423                    No spam, unsubscribe anytime • Join thousands already subscribed
424                </p>
425            </div>
426        </div>
427    </section>
428
429
430
431
432    
433    
434        <!-- Footer -->
435    <footer class="footer">
436        <div class="container">
437            <div class="footer-content">
438                <div class="footer-section">
439                    <h4>Infolia AI</h4>
440                    <p>The AI newsletter for professionals who want to stay informed about artificial intelligence developments and trends.</p>
441                </div>
442                
443                <div class="footer-section">
444                    <h4>Newsletter</h4>
445                    <p><a href="#content">What's Inside</a></p>
446                    <p><a href="/subscribe">Subscribe</a></p>
447                    <p><a href="/archive/latest">Latest Issue</a></p>
448                </div>
449                
450                <div class="footer-section">
451                    <h4>Stay Connected</h4>
452                    <p style="margin-bottom: 16px;">Get AI insights delivered to your inbox:</p>
453                    <form class="signup-form" style="margin-top: 0; max-width: 100%;" method="POST" action="/subscribe" data-type="subscription">
454                    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8D61VCkyRoRCmE8J2A0MprRIyG5up4vgIOhQPS58Wc2Kvm8ofrtq5elKyxwAAUGpmW-8tioAFCMJTbHero7_jEqU1N3FIpYksCMaBMV5LRrKVwKXPnsKycCX2BoeqIVpFjitfFLif1XW-w_YjuyBNXE" />
455                    <input type="hidden" name="SOURCE" value="footer">
456                        <input type="email" id="EMAIL" name="EMAIL" class="email-input" placeholder="Your email" required style="font-size: 14px; padding: 12px 16px;">
457                        <button type="submit" class="signup-btn" style="padding: 12px 20px; font-size: 14px; white-space: nowrap;">Subscribe</button>
458                    </form>
459                    <p style="margin-top: 12px; font-size: 12px; color: var(--text-muted);">No spam, unsubscribe anytime</p>
460                </div>
461                
462                <div class="footer-section">
463                    <h4>Legal</h4>
464                    <p><a href="/privacy">Privacy Policy</a></p>
465                    <p><a href="/terms">Terms of Service</a></p>
466                    <p><a href="mailto:[email protected]">Contact</a></p>
467                </div>
468            </div>
469            
470            <div class="footer-bottom">
471                <p>&copy; 2025 Infolia AI. Made for the AI community.</p>
472            </div>
473        </div>
474    </footer>
vendor: 67 bytes, lines 474-477
474
475
476
477    <script src="https://www.google.com/recaptcha/api.js?render=
4776LcqBo0rAAAAAETADGuldU4h4qBBdG0VyiuTmbFx
vendor: 22 bytes, lines 477-478
477" defer></script>
478    
478<script defer>
479
480            // Simple dropdown toggle
481            function toggleDropdown() {
482                const dropdown = document.getElementById('nav-dropdown');
483                const container = document.querySelector('.nav-cta-container');
484
485                if (dropdown.style.display === 'block') {
486                    dropdown.style.display = 'none';
487                    container.classList.remove('show');
488                } else {
489                    dropdown.style.display = 'block';
490                    container.classList.add('show');
491                }
492            }
493
494
495            // Use event delegation to handle forms added dynamically
496            document.addEventListener('submit', function (e) {
497                var form = e.target;
498
499                // Check if this is one of our subscription forms
500                if (!form.matches('.signup-form, .nav-dropdown-form, .subscribe-form-inline, .popup-form, .content-gate-form')) {
501                    return;
502                }
503
504                e.preventDefault();
505                form.classList.add('loading');
506
507                // Find or create message div for this form
508                var messageDiv = form.previousElementSibling;
509                if (!messageDiv || !messageDiv.classList.contains('signup-message')) {
510                    messageDiv = document.createElement('div');
511                    messageDiv.className = 'signup-message';
512                    form.parentNode.insertBefore(messageDiv, form);
513                }
514
515                // Clear any previous messages
516                messageDiv.textContent = '';
517                messageDiv.className = 'signup-message';
518
519                if (typeof grecaptcha === 'undefined') {
520                    messageDiv.className = 'alert alert-danger';
521                    messageDiv.textContent = 'reCAPTCHA not loaded. Please refresh the page.';
522                    return;
523                }
524
525                grecaptcha.ready(function () {
526                    grecaptcha.execute('6LcqBo0rAAAAAETADGuldU4h4qBBdG0VyiuTmbFx', { action: 'submit' })
527                        .then(function (token) {
528                            if (!token) {
529                                throw new Error('reCAPTCHA token is empty');
530                            }
531
532                            let formData = new FormData(form);
533                            formData.set('recaptcha_token', token);
534
535                            return fetch(form.action, {
536                                method: 'POST',
537                                body: formData,
538                                headers: {
539                                    'X-Requested-With': 'XMLHttpRequest'
540                                }
541                            });
542                        })
543                        .then(response => {
544                            if (!response.ok) {
545                                throw new Error(`HTTP error! status: ${response.status}`);
546                            }
547                            return response.json();
548                        })
549                        .then(data => {
550                            if (data.success) {
551                                form.classList.remove('loading');
552                                messageDiv.className = 'alert alert-success success-message';
553                                messageDiv.innerHTML = data.message || '<span class="success-title"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20,6 9,17 4,12"></polyline></svg>Almost there!</span> <span class="success-text">Check your email to confirm your subscription and start receiving AI insights.</span>';
554                                form.reset();
555
556                                // Dispatch custom event for gated content unlock
557                                document.dispatchEvent(new CustomEvent('subscriptionSuccess', {
558                                    detail: { form: form }
559                                }));
560
561                                // Close popup after 8 seconds if it's a popup form
562                                if (form.classList.contains('popup-form')) {
563                                    setTimeout(() => {
564                                        if (form.closest('#scroll-popup') && typeof window.closeScrollPopup === 'function') {
565                                            window.closeScrollPopup();
566                                        } else if (form.closest('#exit-popup') && typeof window.closeExitPopup === 'function') {
567                                            window.closeExitPopup();
568                                        }
569                                    }, 5000);
570                                }
571                            } else {
572                                form.classList.remove('loading');
573                                messageDiv.className = 'alert alert-danger';
574                                messageDiv.textContent = data.message || "There was an error. Please try again.";
575                            }
576                        })
577                        .catch((error) => {
578                            messageDiv.className = 'alert alert-danger';
579                            messageDiv.textContent = "There was an error. Please try again.";
580                        });
581                });
582            });
583
584    </script>
584
585
586    
587
588    
588<script type="text/javascript" src="/js/home.js"></script>
588
589
590
591    
592</body>
593</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.