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 & 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 & 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 & 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 & 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 & 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>© 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.