1<!DOCTYPE html><html class="2xl:text-[20px]" dir="ltr" lang="en"><head><meta charset="UTF-8"><meta content="width=device-width,initial-scale=1" name="viewport"><link href="/sitemap-index.xml" rel="sitemap"><link href="/_astro/favicon.hYpDKHDT.ico" rel="shortcut icon"><link href="/_astro/favicon.BmM8shuK.svg" rel="icon" type="image/svg+xml"><link href="/_astro/favicon.BmM8shuK.svg" rel="mask-icon" color="#8D46E7"><link href="/_astro/apple-touch-icon.CLDMfpU_.png" rel="apple-touch-icon" sizes="180x180"><style>:root{--aw-font-sans:'Inter Variable';--aw-font-serif:'Inter Variable';--aw-font-heading:'Inter Variable';--aw-color-primary:rgb(251 153 12);--aw-color-secondary:rgb(245 158 11);--aw-color-accent:rgb(220 38 38);--aw-color-text-heading:rgb(0 0 0);--aw-color-text-default:rgb(16 16 16);--aw-color-text-muted:rgb(16 16 16 / 66%);--aw-color-bg-page:rgb(255 255 255);--aw-color-bg-page-dark:rgb(3 6 32)}.dark{--aw-font-sans:'Inter Variable';--aw-font-serif:'Inter Variable';--aw-font-heading:'Inter Variable';--aw-color-primary:rgb(251 153 12);--aw-color-secondary:rgb(245 158 11);--aw-color-accent:rgb(220 38 38);--aw-color-text-heading:rgb(247, 248, 248);--aw-color-text-default:rgb(229 236 246);--aw-color-text-muted:rgb(229 236 246 / 66%);--aw-color-bg-page:rgb(3 6 32)}</style>
1<script>!function(){const e="light";function t(e){"dark"===e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark");const t=document.querySelectorAll("[data-aw-toggle-color-scheme] > input");t&&t.length&&t.forEach((t=>{t.checked="dark"!==e}))}e&&e.endsWith(":only")||!localStorage.theme?t(e.replace(":only","")):"dark"===localStorage.theme||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):t("light")}()</script>
1<title>IELTS Speaking App | AI Practice & Instant Feedback â SpeakPrac</title><meta content="Boost your score with the SpeakPrac IELTS Speaking app. Get instant AI feedback, band scores, and practice with unlimited questions for fluency, grammar, and vocabulary." name="description"><meta content="index,follow" name="robots"><link href="https://speakprac.com/ielts-speaking-app" rel="canonical"><meta content="IELTS Speaking App | AI Practice & Instant Feedback" property="og:title"><meta content="Boost your score with the SpeakPrac IELTS Speaking app. Get instant AI feedback, band scores, and practice with unlimited questions for fluency, grammar, and vocabulary." property="og:description"><meta content="https://speakprac.com/ielts-speaking-app" property="og:url"><meta content="website" property="og:type"><meta content="https://speakprac.com/_astro/og-default.DGHMYEc9_Z20v6RT.jpg" property="og:image"><meta content="1200" property="og:image:width"><meta content="630" property="og:image:height"><meta content="en" property="og:locale"><meta content="SpeakPrac" property="og:site_name"><meta content="summary_large_image" name="twitter:card"><meta content="@speakprac" name="twitter:site"><meta content="@speakprac" name="twitter:creator"><meta content="orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M" name="google-site-verification">
vendor: 79 bytes, line 1
1<script type="text/partytown" src="https://www.googletagmanager.com/gtag/js?id=
1G-WLQGNWDBFE
vendor: 17 bytes, line 1
1" async></script>
1<script type="text/partytown">(function(){const id = "G-WLQGNWDBFE"; 2 3 window.dataLayer = window.dataLayer || []; 4 function gtag() { 5 window.dataLayer.push(arguments); 6 } 7 gtag("js", new Date()); 8 gtag("config", id); 9})();</script>
9<meta content="true" name="astro-view-transitions-enabled"><meta content="swap" name="astro-view-transitions-fallback">
9<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CDGfc0hd.js"></script>
9<script type="application/ld+json">[{"@context":"https://schema.org","@type":"Organization","name":"SpeakPrac","url":"https://speakprac.com","logo":"https://speakprac.com/_astro/speakprac-logo.FQuCDs0s_Z1FEK2E.webp","contactPoint":{"@type":"ContactPoint","email":"[email protected]","contactType":"Customer Support"}},{"@context":"https://schema.org","@type":"SoftwareApplication","name":"SpeakPrac","applicationCategory":"EducationalApplication","operatingSystem":"Android, Web","offers":[{"@type":"Offer","name":"7-Day Free Trial","price":"0.00","priceCurrency":"USD","description":"Try SpeakPrac Pro free for 7 days."},{"@type":"Offer","name":"SpeakPrac Pro - Monthly","price":"19.00","priceCurrency":"USD","description":"Monthly subscription to SpeakPrac Pro.","availability":"https://schema.org/OnlineOnly","url":"https://speakprac.com"},{"@type":"Offer","name":"SpeakPrac Pro - Yearly","price":"199.00","priceCurrency":"USD","description":"Yearly subscription to SpeakPrac Pro.","availability":"https://schema.org/OnlineOnly","url":"https://speakprac.com"}],"description":"AI-powered English speaking practice app for IELTS and professionals. Get instant feedback, band scores, and improve fluency, grammar, and vocabulary.","url":"https://speakprac.com","logo":"https://speakprac.com/_astro/speakprac-logo.FQuCDs0s_Z1FEK2E.webp","downloadUrl":"https://play.google.com/store/apps/details?id=com.speakprac.speakprac","softwareVersion":"25.05.21","keywords":"IELTS speaking, English speaking practice, AI feedback, language learning, pronunciation, fluency, vocabulary, grammar"}]</script>
9<link href="/_astro/common-mistakes.DWcKtRcW.css" rel="stylesheet">
9<script>!function(t,e,n,r){(window.crossOriginIsolated||navigator.serviceWorker)&&((r=t[e]=Object.assign(t[e]||{},{lib:"/~partytown/",debug:!1}))[n]=(r[n]||[]).concat(["dataLayer.push"]))}(window,"partytown","forward");const t={preserveBehavior:!1},e=e=>{if("string"==typeof e)return[e,t];const[n,r=t]=e;return[n,{...t,...r}]},n=Object.freeze((()=>{const t=new Set;let e=[];do{Object.getOwnPropertyNames(e).forEach((n=>{"function"==typeof e[n]&&t.add(n)}))}while((e=Object.getPrototypeOf(e))!==Object.prototype);return Array.from(t)})());!function(t,r,o,i,a,s,c,d,l,p,u=t,f){function y(){f||(f=1,"/"==(c=(s.lib||"/~partytown/")+(s.debug?"debug/":""))[0]&&(l=r.querySelectorAll('script[type="text/partytown"]'),i!=t?i.dispatchEvent(new CustomEvent("pt1",{detail:t})):(d=setTimeout(h,(null==s?void 0:s.fallbackTimeout)||1e4),r.addEventListener("pt0",b),a?w(1):o.serviceWorker?o.serviceWorker.register(c+(s.swPath||"partytown-sw.js"),{scope:c}).then((function(t){t.active?w():t.installing&&t.installing.addEventListener("statechange",(function(t){"activated"==t.target.state&&w()}))}),console.error):h())))}function w(e){p=r.createElement(e?"script":"iframe"),t._pttab=Date.now(),e||(p.style.display="block",p.style.width="0",p.style.height="0",p.style.border="0",p.style.visibility="hidden",p.setAttribute("aria-hidden",!0)),p.src=c+"partytown-"+(e?"atomics.js?v=0.11.0":"sandbox-sw.html?"+t._pttab),r.querySelector(s.sandboxParent||"body").appendChild(p)}function h(n,o){for(b(),i==t&&(s.forward||[]).map((function(n){const[r]=e(n);delete t[r.split(".")[0]]})),n=0;n<l.length;n++)(o=r.createElement("script")).innerHTML=l[n].innerHTML,o.nonce=s.nonce,r.head.appendChild(o);p&&p.parentNode.removeChild(p)}function b(){clearTimeout(d)}s=t.partytown||{},i==t&&(s.forward||[]).map((function(r){const[o,{preserveBehavior:i}]=e(r);u=t,o.split(".").map((function(e,r,o){var a;u=u[o[r]]=r+1<o.length?u[o[r]]||(a=o[r+1],n.includes(a)?[]:{}):(()=>{let e=null;if(i){const{methodOrProperty:n,thisObject:r}=((t,e)=>{let n=t;for(let t=0;t<e.length-1;t+=1)n=n[e[t]];return{thisObject:n,methodOrProperty:e.length>0?n[e[e.length-1]]:void 0}})(t,o);"function"==typeof n&&(e=(...t)=>n.apply(r,...t))}return function(){let n;return e&&(n=e(arguments)),(t._ptf=t._ptf||[]).push(o,arguments),n}})()}))})),"complete"==r.readyState?y():(t.addEventListener("DOMContentLoaded",y),t.addEventListener("load",y))}(window,document,navigator,top,window.crossOriginIsolated),document.addEventListener("astro:before-swap",(t=>{let e=document.body.querySelector("iframe[src*='/~partytown/']");e&&t.newDocument.body.append(e)}))</script>
9</head><body class="tracking-tight antialiased bg-page text-default"><header class="w-full mx-auto bg-white border-b border-gray-50/0 dark:bg-slate-900 ease-in-out flex-none sticky top-0 transition-[opacity] z-40" data-aw-sticky-header="true" id="header"><div class="absolute inset-0"></div><div class="w-full mx-auto max-w-7xl md:flex md:items-center md:justify-between md:px-6 px-3 py-1 relative text-default"><div class="flex justify-between lg:flex-shrink-0 lg:min-w-0 md:min-w-[200px]"><a href="/" class="flex items-center gap-2"><img alt="SpeakPrac Logo" class="h-auto" decoding="async" fetchpriority="high" height="40" loading="eager" src="/_astro/speakprac-logo.FQuCDs0s_Z1DI9uN.webp" width="31" srcset="/_astro/speakprac-logo.FQuCDs0s_Z1DI9uN.webp, /_astro/speakprac-logo.FQuCDs0s_Z1FEK2E.webp 2x"> <img alt="SpeakPrac" class="-mt-1.2 h-auto" decoding="async" fetchpriority="high" height="20" loading="eager" src="/_astro/speakprac-text-logo.BQPCm0bx_17kdK8.webp" width="102" srcset="/_astro/speakprac-text-logo.BQPCm0bx_17kdK8.webp, /_astro/speakprac-text-logo.BQPCm0bx_9kLxr.webp 2x"></a><div class="flex items-center md:hidden"><button aria-label="Toggle Menu" class="flex items-center justify-center flex-col cursor-pointer group h-12 rounded w-12" type="button" data-aw-toggle-menu><span class="sr-only">Toggle Menu</span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:rotate-45 group-[.expanded]:translate-y-2.5" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:opacity-0" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:-rotate-45 group-[.expanded]:-translate-y-2.5" aria-hidden="true"></span></button></div></div><nav aria-label="Main navigation" class="items-center hidden lg:flex lg:flex-1 lg:overflow-visible lg:w-auto overflow-x-hidden overflow-y-auto text-default w-full"><ul class="flex font-medium flex-col lg:flex-row lg:justify-center lg:mx-8 lg:self-center lg:space-x-6 lg:text-[0.9375rem] lg:w-auto text-xl tracking-[0.01rem] w-full xl:space-x-8"><li class="relative group"><a href="/ielts-speaking-course" class="flex items-center px-4 whitespace-nowrap dark:hover:text-white hover:text-link py-3"><span>IELTS Speaking Course</span> <span class="text-white font-semibold leading-none ml-2 px-1.5 py-0.5 rounded-sm text-[10px] bg-green-600">FREE</span></a></li><li class="relative group"><a href="/ielts-speaking-app" class="flex items-center px-4 whitespace-nowrap dark:hover:text-white hover:text-link py-3 aw-link-active"><span>SpeakPrac App</span> <span class="text-white font-semibold leading-none ml-2 px-1.5 py-0.5 rounded-sm text-[10px] bg-blue-600">AI</span></a></li><li class="relative group js-dropdown"><div class="flex items-center"><a href="/ielts-flashcards" class="pl-4 dark:hover:text-white hover:text-link pr-1 py-3 whitespace-nowrap"><span>IELTS Flashcards</span> </a><button aria-label="Toggle submenu" class="js-dropdown-toggle dark:hover:text-white hover:text-link pl-1 pr-4 py-3" type="button"><svg class="transition-transform duration-200 ease-in-out h-4 w-4" data-icon="tabler:chevron-down" height="1em" width="1em"><symbol id="ai:tabler:chevron-down" viewBox="0 0 24 24"><path d="m6 9l6 6l6-6" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="none" stroke="currentColor"/></symbol><use href="#ai:tabler:chevron-down"></use></svg></button></div><ul class="pl-4 block border-l-2 border-slate-200 dark:border-slate-700 lg:-translate-x-1/2 lg:absolute lg:bg-white lg:border lg:border-gray-200 lg:border-l-0 lg:dark:bg-slate-800 lg:dark:border-slate-700 lg:group-hover:block lg:hidden lg:left-1/2 lg:min-w-[240px] lg:ml-0 lg:mt-0 lg:pl-0 lg:py-2 lg:rounded-md lg:shadow-lg lg:top-full lg:z-50 ml-4 mt-2 sub-menu"><li><a href="/ielts-flashcards/bundle" class="flex items-center px-4 whitespace-nowrap dark:hover:bg-slate-700 hover:bg-gray-100 justify-between py-2 text-left w-full"><span class="flex-1">
9â Ultimate Bundle</span></a></li><li><a href="/ielts-flashcards/pronunciation" class="flex items-center px-4 whitespace-nowrap dark:hover:bg-slate-700 hover:bg-gray-100 justify-between py-2 text-left w-full"><span class="flex-1">Pronunciation Flashcards</span></a></li><li><a href="/ielts-flashcards/vocabulary" class="flex items-center px-4 whitespace-nowrap dark:hover:bg-slate-700 hover:bg-gray-100 justify-between py-2 text-left w-full"><span class="flex-1">Vocabulary Flashcards</span></a></li><li><a href="/ielts-flashcards/grammar" class="flex items-center px-4 whitespace-nowrap dark:hover:bg-slate-700 hover:bg-gray-100 justify-between py-2 text-left w-full"><span class="flex-1">Grammar Flashcards</span></a></li></ul></li><li class="relative group"><a href="/ielts-speaking-tips" class="flex items-center px-4 whitespace-nowrap dark:hover:text-white hover:text-link py-3"><span>Speaking Tips</span></a></li><li class="relative group"><a href="/ielts-speaking-app" class="flex flex items-center items-center px-4 whitespace-nowrap dark:hover:text-white hover:text-link py-3 aw-link-active bg-primary duration-200 font-bold hover:bg-secondary leading-tight ml-4 px-6 py-2.5 rounded-full self-center shadow-md text-white transition-colors"><span>Get the App</span></a></li></ul></nav><div class="items-center hidden md:flex justify-end lg:flex-shrink-0 lg:min-w-0 md:min-w-[200px] md:p-0"><div class="items-center hidden md:flex lg:hidden"><button aria-label="Toggle Menu" class="flex items-center justify-center flex-col cursor-pointer group h-12 rounded w-12" type="button" data-aw-toggle-menu><span class="sr-only">Toggle Menu</span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:rotate-45 group-[.expanded]:translate-y-2.5" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:opacity-0" aria-hidden="true"></span> <span class="transition bg-black dark:bg-white duration-200 ease h-0.5 my-1 opacity-80 rounded-full transform w-6 group-[.expanded]:-rotate-45 group-[.expanded]:-translate-y-2.5" aria-hidden="true"></span></button></div></div></div></header>
9<script>function setupDropdowns(){const e=document.querySelectorAll(".js-dropdown");document.addEventListener("click",(o=>{window.innerWidth<1024||e.forEach((e=>{if(!e.contains(o.target)){e.classList.remove("is-open");const o=e.querySelector(".js-dropdown-toggle svg");o?.classList.remove("rotate-180")}}))})),e.forEach((e=>{const o=e.querySelector(".js-dropdown-toggle"),t=e.querySelector(".sub-menu"),s=o?.querySelector("svg");o&&t&&s&&(window.innerWidth<1024&&(e.classList.add("is-open"),s.classList.add("rotate-180")),o.addEventListener("click",(o=>{o.stopPropagation();const n=e.classList.contains("is-open");window.innerWidth>=1024&&document.querySelectorAll(".js-dropdown.is-open").forEach((o=>{if(o!==e){o.classList.remove("is-open");const e=o.querySelector(".js-dropdown-toggle svg");e?.classList.remove("rotate-180")}})),e.classList.toggle("is-open",!n),s.classList.toggle("rotate-180",!n),window.innerWidth<1024&&t.classList.toggle("hidden")})))}))}document.addEventListener("DOMContentLoaded",setupDropdowns),document.addEventListener("astro:after-swap",setupDropdowns)</script>
9<main><section class="flex items-center bg-slate-100 dark:bg-slate-800 lg:h-[500px] lg:pb-0 lg:pt-0 md:h-[550px] md:min-h-0 md:pb-0 md:pt-0 min-h-[calc(100vh-70px)] pb-2 pt-4 relative" id="ielts-speaking"><div class="mx-auto px-4 sm:px-6 container lg:px-8"><div class="items-center grid md:grid-cols-2 md:gap-6 gap-0 lg:gap-8 md:items-start"><div class="text-center md:text-left pl-4 pr-4 lg:pt-24 md:pl-8 md:pt-8 pt-4"><h1 class="font-bold md:text-4xl dark:text-white text-gray-900 lg:text-5xl sm:text-5xl text-4xl tracking-tight"><span class="text-red-600">IELTS Speaking Practice</span></h1><p class="dark:text-gray-300 text-gray-700 max-w-xl md:mx-0 mx-auto sm:text-xl text-lg mt-6">Introducing SpeakPrac, the AI-powered app that makes IELTS speaking practice effortless.</p><p class="dark:text-gray-300 text-gray-700 max-w-xl md:mx-0 mx-auto sm:text-xl text-lg mt-4">Just press record and start talking - SpeakPrac instantly analyzes your response, giving you fluency metrics, IELTS band score and feedback on fluency, grammar and vocabulary.</p><div class="flex items-center justify-center flex-col gap-4 md:justify-start mt-8 sm:flex-row"><a href="https://play.google.com/store/apps/details?id=com.speakprac.speakprac" aria-label="Get SpeakPrac on Google Play" rel="noopener noreferrer" target="_blank"><img alt="Get it on Google Play" class="w-auto h-12 hover:opacity-90 lg:h-[58px] md:h-14 transition-opacity" decoding="async" fetchpriority="auto" height="89" loading="eager" src="/_astro/google-play-button.Dg7VYsmN_ZtNv2V.webp" width="300" srcset="/_astro/google-play-button.Dg7VYsmN_ZtNv2V.webp, /_astro/google-play-button.Dg7VYsmN_Z2mQNF5.webp 1.5x"></a></div></div><div class="flex justify-center md:justify-end md:pr-8 md:mt-0 mt-0 pt-0"><img alt="SpeakPrac app interface shown on two mobile phones" class="w-full h-auto rounded-lg relative z-10 -bottom-20 lg:max-w-xl max-w-sm md:max-w-lg sm:max-w-md" decoding="async" fetchpriority="high" height="888" loading="eager" src="/_astro/mobile-screen-1.0cPgimoq_Z1YOzpg.webp" width="857" srcset="/_astro/mobile-screen-1.0cPgimoq_ZYVUrE.webp 384w, /_astro/mobile-screen-1.0cPgimoq_1TVuEq.webp 448w, /_astro/mobile-screen-1.0cPgimoq_1ivYw8.webp 512w, /_astro/mobile-screen-1.0cPgimoq_Ok9CD.webp 576w, /_astro/mobile-screen-1.0cPgimoq_Z1YOzpg.webp 857w" sizes="(min-width: 1024px) 576px, (min-width: 768px) 512px, (min-width: 640px) 448px, 100vw"></div></div></div></section><div class="h-20 bg-slate-100 dark:bg-slate-800"></div><section class="relative not-prose scroll-mt-[72px]"><div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"><div class="absolute inset-0 bg-white dark:bg-slate-900"></div></div><div class="relative mx-auto intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 px-4 intersect-no-queue lg:py-20 max-w-6xl md:px-6 md:py-16 py-12 text-default"><div class="items-center grid md:grid-cols-2 gap-8 md:gap-12"><div class="text-center md:text-left"><div class="text-center md:text-left !mb-6 mb-8 md:mb-12 md:mx-auto"><p class="font-bold dark:text-blue-200 text-base text-secondary tracking-wide uppercase">A Creator & Teacher You Can Trust</p><h2 class="font-bold md:text-4xl text-3xl font-heading leading-tighter text-heading tracking-tighter">Built by a Verified Band 9 Speaker & Certified IELTS Teacher</h2></div><p class="text-muted text-lg mb-4">SpeakPrac is built on the proven, real-world strategies that earned me a perfect <strong class="dark:text-amber-400 text-amber-600">Band 9 in IELTS Speaking, including a Band 9 in all four marking criteria</strong>.</p><p class="text-muted text-lg mb-6">To ensure I provide the highest quality guidance, I am also a <strong>Certified IELTS Teacher</strong>, having completed the official IELTS Speaking - Teacher Training Program provided by <strong>IDP IELTS</strong> (Certificate Number: 68ae-6d3a-b8cc-b036).</p><p class="text-muted">Unlike other resources that make vague promises, I believe in complete transparency. Here's my official, verifiable result (TRF: <strong>25TW500157ALBM051G</strong>) and teaching certification.</p></div><div class="flex items-center flex-col gap-6"><div class="w-full hidden group max-w-md md:block"><div class="transition-transform aspect-video duration-300 group-hover:scale-105 overflow-hidden rounded-lg shadow-lg transform"><img alt="Matt, creator of SpeakPrac, holding his official IELTS Band 9 Certificate" class="w-full h-full object-center object-cover" decoding="async" fetchpriority="auto" height="602" loading="lazy" src="/_astro/matt-ieltscert.C7j7Ynb5_YIfIE.webp" width="800" srcset="/_astro/matt-ieltscert.C7j7Ynb5_1vN6Ff.webp 400w, /_astro/matt-ieltscert.C7j7Ynb5_YIfIE.webp 800w" sizes="(max-width: 768px) 90vw, 38vw"></div></div><div class="w-full text-center"><div class="w-full mx-auto bg-slate-100 border border-slate-200 dark:bg-slate-800 dark:border-slate-700 max-w-lg p-4 rounded-xl shadow-lg sm:p-5"><div class="items-center grid gap-1" style="grid-template-columns:60% 40%"><div class="flex items-center justify-center flex-col gap-3"><img alt="Official IELTS score showing Band 9 for Speaking" class="rounded-sm shadow-sm w-auto h-10 sm:h-12" decoding="async" fetchpriority="auto" height="84" loading="lazy" src="/_astro/matt_band9_speaking.DrzmZ3uk_Zx7Cpv.webp" width="180"> <img alt="IELTS Speaking score breakdown showing Band 9 in Fluency, Pronunciation, Vocabulary, and Grammar" class="w-full h-auto rounded-sm shadow-sm max-w-[280px]" decoding="async" fetchpriority="auto" height="126" loading="lazy" src="/_astro/matt_band9_ielts_breakdown.x-Y8fQrx_OLEon.webp" width="571">
9 <img alt="IELTS Test Report Form (TRF) number for verification" class="rounded-sm shadow-sm w-auto h-8 sm:h-10" decoding="async" fetchpriority="auto" height="70" loading="lazy" src="/_astro/matt_trf_number.D_Ufd15A_Z1zaXlA.webp" width="465"></div><div class="flex items-center justify-center h-full"><a href="/_astro/Matthew's IELTS Speaking Teacher Training Program Certificate by IDP IELTS.CinZkFxK.webp" class="relative group block" rel="noopener noreferrer" target="_blank" title="Click to view full certificate"><img alt="Matthew's IELTS Speaking Teacher Training Program Certificate by IDP IELTS" class="w-full h-auto rounded-sm shadow-sm border border-slate-300 dark:border-slate-600 duration-200 group-hover:opacity-90 max-w-[160px] transition-opacity" decoding="async" fetchpriority="auto" height="1754" loading="lazy" src="/_astro/Matthew's%20IELTS%20Speaking%20Teacher%20Training%20Program%20Certificate%20by%20IDP%20IELTS.CinZkFxK_ZcbMUy.webp" width="1240"><div class="flex items-center justify-center absolute bg-black/10 duration-200 group-hover:opacity-100 inset-0 opacity-0 rounded-sm transition-opacity"><div class="rounded-full text-white backdrop-blur-sm bg-black/60 p-2 shadow-lg"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" stroke="currentColor"><path d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path></svg></div></div></a></div></div></div><p class="text-muted mt-3 sm:text-sm text-xs">My Official Band 9 Score, Breakdown & IDP IELTS Teaching Certification</p></div></div></div></div></section><section class="md:py-12 py-8 bg-orange-50 dark:bg-slate-800 lg:py-16" id="unlimited-practice"><div class="mx-auto px-4 sm:px-6 container lg:px-8"><div class="text-center mb-10 md:mb-12 md:pt-6 pt-16"><h2 class="font-bold md:text-4xl text-3xl dark:text-white text-gray-900">Practice speaking</h2><h2 class="font-bold md:text-4xl text-3xl text-amber-500">without any limits.</h2></div><div class="items-center grid md:grid-cols-2 md:gap-6 gap-8"><div class="flex justify-center md:justify-start md:pl-8"><img alt="SpeakPrac app interface showing IELTS speaking topics" class="w-full h-auto rounded-lg lg:max-w-lg max-w-xs md:max-w-md sm:max-w-sm" decoding="async" fetchpriority="auto" height="927" loading="lazy" src="/_astro/mobile-screen-2.B_vFIsmw_1WaSmw.webp" width="882" srcset="/_astro/mobile-screen-2.B_vFIsmw_Z24jLkQ.webp 320w, /_astro/mobile-screen-2.B_vFIsmw_Z1S4GGJ.webp 384w, /_astro/mobile-screen-2.B_vFIsmw_1xG7ay.webp 448w, /_astro/mobile-screen-2.B_vFIsmw_ZILxrc.webp 512w, /_astro/mobile-screen-2.B_vFIsmw_1WaSmw.webp 882w" sizes="(min-width: 1024px) 512px, (min-width: 768px) 448px, (min-width: 640px) 384px, 100vw"></div><div class="text-center md:text-left pl-4 pr-4 md:pr-8"><div class="mb-8"><p class="dark:text-gray-300 text-gray-700 font-bold mb-4 text-xl">Unlimited speaking practice</p><p class="text-gray-600 dark:text-gray-400">Practice does make it perfect! The more you practice speaking, the more you will improve your English.</p></div><div class="space-y-6 text-left"><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Our "Quick Practice" feature will automatically select a topic that you need to improve most. Or, you can select a topic from IELTS Speaking Part 1, 2 or 3.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">
9Tap the "Speak" icon to speak about anything outside the IELTS topics instantly without restrictions.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Choose the type of English you want to speak. Select from American, British, Australian or Canadian English. Build speaking confidence and fluency in the type of English.</p></div></div></div></div></div></section><section class="lg:pb-8 bg-white dark:bg-slate-900 lg:pt-16 md:pb-8 md:pt-12 pb-8 pt-12" id="progress-tracking"><div class="mx-auto px-4 sm:px-6 container lg:px-8"><div class="text-center mb-10 md:mb-4"><h2 class="font-bold md:text-4xl text-3xl dark:text-white text-gray-900">See <span class="text-amber-500">your progress</span> over time.</h2></div><div class="items-center grid md:grid-cols-2 md:gap-6 gap-0"><div class="pl-4 pr-4 md:pl-8 text-left"><h3 class="font-bold text-xl mb-4 dark:text-gray-200 text-gray-800">Track your progress</h3><p class="mb-6 dark:text-gray-400 text-gray-600">Keep track on how you are doing, stay motivated and see your progress over time.</p><div class="space-y-6"><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">See your overall and individual recording IELTS band scores. Understand IELTS topics you need to improve on most and which ones you don't need to spend more time on.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Get speech fluency metrics to track your words per minute, average pause duration and pauses per 100 words.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Stay motivated with your streak and total recordings and minutes.</p></div></div></div><div class="flex justify-center md:justify-end md:pr-8"><img alt="SpeakPrac app interface showing progress tracking features" class="w-full h-auto rounded-lg lg:max-w-lg max-w-xs md:max-w-md sm:max-w-sm -bottom-24 relative z-10" decoding="async" fetchpriority="auto" height="956" loading="lazy" src="/_astro/mobile-screen-3.BQsHo3kd_Z1dp53B.webp" width="969" srcset="/_astro/mobile-screen-3.BQsHo3kd_1P4qlU.webp 320w, /_astro/mobile-screen-3.BQsHo3kd_1PBrE4.webp 384w, /_astro/mobile-screen-3.BQsHo3kd_a2A8Q.webp 448w, /_astro/mobile-screen-3.BQsHo3kd_1U19Yz.webp 512w, /_astro/mobile-screen-3.BQsHo3kd_Z1dp53B.webp 969w" sizes="(min-width: 1024px) 512px, (min-width: 768px) 448px, (min-width: 640px) 384px, 100vw"></div></div></div></section><section class="md:py-12 py-8 bg-orange-50 dark:bg-slate-800 lg:py-16" id="ai-feedback"><div class="mx-auto px-4 sm:px-6 container lg:px-8"><div class="text-center mb-10 md:mb-12 md:pt-6 pt-20"><h2 class="font-bold md:text-4xl text-3xl dark:text-white text-gray-900">Get guidance on how to</h2><h2 class="font-bold md:text-4xl text-3xl text-amber-500">speak English better.</h2></div><div class="items-center grid md:grid-cols-2 md:gap-6 gap-8"><div class="flex justify-center md:justify-start md:pl-8"><img alt="SpeakPrac app interface showing AI feedback features" class="w-full h-auto rounded-lg lg:max-w-lg max-w-xs md:max-w-md
9sm:max-w-sm" decoding="async" fetchpriority="auto" height="898" loading="lazy" src="/_astro/mobile-screen-4.DRnG2BYG_ZwevWU.webp" width="939" srcset="/_astro/mobile-screen-4.DRnG2BYG_ZRDiol.webp 320w, /_astro/mobile-screen-4.DRnG2BYG_197kCx.webp 384w, /_astro/mobile-screen-4.DRnG2BYG_Zbh3Co.webp 448w, /_astro/mobile-screen-4.DRnG2BYG_GDwmN.webp 512w, /_astro/mobile-screen-4.DRnG2BYG_ZwevWU.webp 939w" sizes="(min-width: 1024px) 512px, (min-width: 768px) 448px, (min-width: 640px) 384px, 100vw"></div><div class="pl-4 pr-4 md:pr-8 text-left"><h3 class="font-bold text-xl mb-4 dark:text-gray-200 text-gray-800">Get AI feedback</h3><p class="mb-6 dark:text-gray-400 text-gray-600">Improve your IELTS speaking score with AI feedback to help you increase your IELTS band score.</p><div class="space-y-6"><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Get an improved version of your recording to get suggestions on how to improve your IELTS speaking score.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Understand your IELTS band score and how to best to increase your IELTS score.</p></div><div class="flex gap-4 items-start"><div class="flex-shrink-0 mt-1"><div class="rounded-full bg-green-500 p-1"><svg class="text-white h-5 w-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></div></div><p class="dark:text-gray-300 text-gray-700">Get fluency, vocabulary and grammar tips with each recording for practice guidance to improve on your next recording.</p></div><div class="flex items-center justify-center flex-col gap-4 md:justify-start mt-8 sm:flex-row"><a href="https://play.google.com/store/apps/details?id=com.speakprac.speakprac" aria-label="Get SpeakPrac on Google Play" rel="noopener noreferrer" target="_blank"><img alt="Get it on Google Play" class="w-auto h-12 hover:opacity-90 lg:h-[58px] md:h-14 transition-opacity" decoding="async" fetchpriority="auto" height="89" loading="eager" src="/_astro/google-play-button.Dg7VYsmN_ZtNv2V.webp" width="300" srcset="/_astro/google-play-button.Dg7VYsmN_ZtNv2V.webp, /_astro/google-play-button.Dg7VYsmN_Z2mQNF5.webp 1.5x"></a></div></div></div></div></div></section></main><footer class="relative not-prose border-gray-200 border-t dark:border-slate-800"><div class="absolute inset-0 pointer-events-none dark:bg-dark" aria-hidden="true"></div><div class="relative mx-auto intersect-once intersect-quarter motion-safe:md:intersect:animate-fade motion-safe:md:opacity-0 px-4 dark:text-slate-300 intercept-no-queue max-w-7xl sm:px-6"><div class="grid gap-4 gap-y-8 grid-cols-12 md:py-12 py-8 sm:gap-8"><div class="col-span-12 lg:col-span-4"><div class="mb-2"><a href="/" class="font-bold text-xl inline-block">SpeakPrac</a></div><div class="flex gap-1 text-muted text-sm"><a href="/terms" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Terms</a> · <a href="/privacy" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Privacy Policy</a> · <a href="/data-deletion" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Data Deletion</a></div></div><div class="col-span-6 lg:col-span-2 md:col-span-3"><div class="mb-2 dark:text-gray-300 font-medium">SpeakPrac App</div><ul class="text-sm"><li class="mb-2"><a href="/ielts-speaking-app" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Get Android App</a></li><li class="mb-2"><a href="/ios-waitlist" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Join iOS Waitlist</a></li><li class="mb-2"><a href="/ielts-speaking-app#features" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">App Features</a></li></ul></div><div class="col-span-6 lg:col-span-2 md:col-span-3"><div class="mb-2 dark:text-gray-300 font-medium">IELTS Flashcards</div><ul class="text-sm"><li class="mb-2"><a href="/ielts-flashcards" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">All Flashcards</a></li><li class="mb-2"><a href="/ielts-flashcards/bundle" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">
9Ultimate Bundle</a></li><li class="mb-2"><a href="/ielts-flashcards/pronunciation" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Pronunciation Flashcards</a></li><li class="mb-2"><a href="/ielts-flashcards/vocabulary" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Vocabulary Flashcards</a></li><li class="mb-2"><a href="/ielts-flashcards/grammar" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Grammar Flashcards</a></li></ul></div><div class="col-span-6 lg:col-span-2 md:col-span-3"><div class="mb-2 dark:text-gray-300 font-medium">SpeakPrac Methodâ¢</div><ul class="text-sm"><li class="mb-2"><a href="/ielts-speaking-course" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Free Video Course</a></li><li class="mb-2"><a href="/ielts-speaking-course/part-1" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Part 1: A.R.E. Frameworkâ¢</a></li><li class="mb-2"><a href="/ielts-speaking-course/part-2" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Part 2: Topic Diamondâ¢</a></li><li class="mb-2"><a href="/ielts-speaking-course/part-3" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Part 3: I.D.E.A. Frameworkâ¢</a></li><li class="mb-2"><a href="/ielts-speaking-course/marking-criteria" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Marking Criteria Explained</a></li></ul></div><div class="col-span-6 lg:col-span-2 md:col-span-3"><div class="mb-2 dark:text-gray-300 font-medium">Connect & Learn</div><ul class="text-sm"><li class="mb-2"><a href="/about" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">About Us</a></li><li class="mb-2"><a href="https://www.youtube.com/@MatthewAlberto" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">YouTube Channel</a></li><li class="mb-2"><a href="/ielts-speaking-tips" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">IELTS Speaking Tips (Blog)</a></li><li class="mb-2"><a href="/ielts-speaking-faqs" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">IELTS Speaking FAQs</a></li><li class="mb-2"><a href="/newsletter" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Join the Newsletter</a></li><li class="mb-2"><a href="/contact" class="text-muted dark:text-gray-400 duration-150 ease-in-out hover:text-gray-700 hover:underline transition">Contact Support</a></li></ul></div></div><div class="md:py-8 md:flex md:items-center md:justify-between py-6"><ul class="flex -ml-2 mb-4 md:mb-0 md:ml-4 md:order-1 rtl:-mr-2 rtl:md:ml-0 rtl:md:mr-4 rtl:ml-0"><li><a href="https://www.youtube.com/@MatthewAlberto" class="items-center hover:bg-gray-100 dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 inline-flex p-2.5 rounded-lg text-muted text-sm" aria-label="YouTube"><svg class="h-5 w-5" data-icon="tabler:brand-youtube" height="1em" width="1em"><symbol id="ai:tabler:brand-youtube" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M2 8a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4z"/><path d="m10 9l5 3l-5 3z"/></g></symbol><use href="#ai:tabler:brand-youtube"></use></svg></a></li><li><a href="https://www.linkedin.com/in/matthewalberto" class="items-center hover:bg-gray-100 dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 inline-flex p-2.5 rounded-lg text-muted text-sm" aria-label="LinkedIn"><svg class="h-5 w-5" data-icon="tabler:brand-linkedin" height="1em" width="1em">
9<symbol id="ai:tabler:brand-linkedin" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M8 11v5m0-8v.01M12 16v-5m4 5v-3a2 2 0 1 0-4 0"/><path d="M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z"/></g></symbol><use href="#ai:tabler:brand-linkedin"></use></svg></a></li><li><a href="mailto:[email protected]" class="items-center hover:bg-gray-100 dark:focus:ring-gray-700 dark:hover:bg-gray-700 dark:text-gray-400 focus:outline-none focus:ring-4 focus:ring-gray-200 inline-flex p-2.5 rounded-lg text-muted text-sm" aria-label="Email"><svg class="h-5 w-5" data-icon="tabler:mail" height="1em" width="1em"><symbol id="ai:tabler:mail" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="m3 7l9 6l9-6"/></g></symbol><use href="#ai:tabler:mail"></use></svg></a></li></ul><div class="text-sm dark:text-muted mr-4"><span class="w-full text-center md:text-left md:w-auto">© 2026 SpeakPrac. All rights reserved.</span></div></div></div></footer>
9<script>!function(){const e="light";if(window.basic_script)return;function t(e){"dark"===e?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")}window.basic_script=!0;const d=function(){e&&e.endsWith(":only")||!localStorage.theme?t(e.replace(":only","")):"dark"===localStorage.theme||!("theme"in localStorage)&&window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):t("light")};function a(e,t,d){const a="string"==typeof e?document.querySelectorAll(e):e;a&&a.length&&a.forEach((e=>{e.addEventListener(t,(t=>d(t,e)),!1)}))}d();const o=function(){let t=window.scrollY,d=!0;a("#header nav","click",(function(){document.querySelector("[data-aw-toggle-menu]")?.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.getElementById("header")?.classList.remove("bg-page"),document.querySelector("#header nav")?.classList.add("hidden"),document.querySelector("#header > div > div:last-child")?.classList.add("hidden")})),a("[data-aw-toggle-menu]","click",(function(e,t){t.classList.toggle("expanded"),document.body.classList.toggle("overflow-hidden"),document.getElementById("header")?.classList.toggle("h-screen"),document.getElementById("header")?.classList.toggle("expanded"),document.getElementById("header")?.classList.toggle("bg-page"),document.querySelector("#header nav")?.classList.toggle("hidden"),document.querySelector("#header > div > div:last-child")?.classList.toggle("hidden")})),a("[data-aw-toggle-color-scheme]","click",(function(){e.endsWith(":only")||(document.documentElement.classList.toggle("dark"),localStorage.theme=document.documentElement.classList.contains("dark")?"dark":"light")})),a("[data-aw-social-share]","click",(function(e,t){const d=t.getAttribute("data-aw-social-share"),a=encodeURIComponent(t.getAttribute("data-aw-url")),o=encodeURIComponent(t.getAttribute("data-aw-text"));let n;switch(d){case"facebook":n=`https://www.facebook.com/sharer.php?u=${a}`;break;case"twitter":n=`https://twitter.com/intent/tweet?url=${a}&text=${o}`;break;case"linkedin":n=`https://www.linkedin.com/shareArticle?mini=true&url=${a}&title=${o}`;break;case"whatsapp":n=`https://wa.me/?text=${o}%20${a}`;break;case"mail":n=`mailto:?subject=%22${o}%22&body=${o}%20${a}`;break;default:return}const c=document.createElement("a");c.target="_blank",c.href=n,c.click()}));function o(){const e=document.querySelector("#header[data-aw-sticky-header]");e&&(t>60&&!e.classList.contains("scroll")?e.classList.add("scroll"):t<=60&&e.classList.contains("scroll")&&e.classList.remove("scroll"),d=!1)}window.matchMedia("(max-width: 767px)").addEventListener("change",(function(){document.querySelector("[data-aw-toggle-menu]")?.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.getElementById("header")?.classList.remove("bg-page"),document.querySelector("#header nav")?.classList.add("hidden"),document.querySelector("#header > div > div:last-child")?.classList.add("hidden")})),o(),a([document],"scroll",(function(){t=window.scrollY,d||(window.requestAnimationFrame((()=>{o()})),d=!0)}))},n=function(){document.documentElement.classList.add("motion-safe:scroll-smooth");const e=document.querySelector("[data-aw-toggle-menu]");e&&e.classList.remove("expanded"),document.body.classList.remove("overflow-hidden"),document.getElementById("header")?.classList.remove("h-screen"),document.getElementById("header")?.classList.remove("expanded"),document.querySelector("#header nav")?.classList.add("hidden")};window.onload=o,window.onpageshow=n,document.addEventListener("astro:after-swap",(()=>{d(),o(),n()}))}()</script>
9<script>const Observer={observer:null,delayBetweenAnimations:100,animationCounter:0,start(){const t=Array.from(document.querySelectorAll(['[class*=" intersect:"]','[class*=":intersect:"]','[class^="intersect:"]','[class="intersect"]','[class*=" intersect "]','[class^="intersect "]','[class$=" intersect"]'].join(",")));t.forEach((t=>{var e;t.setAttribute("no-intersect",""),t._intersectionThreshold=(e=t).classList.contains("intersect-full")?.99:e.classList.contains("intersect-half")?.5:e.classList.contains("intersect-quarter")?.25:0}));this.observer=new IntersectionObserver((t=>{t.forEach((t=>{requestAnimationFrame((()=>{const e=t.target,s=t.intersectionRatio,n=e._intersectionThreshold;if(e.classList.contains("intersect-no-queue"))t.isIntersecting?(e.removeAttribute("no-intersect"),e.classList.contains("intersect-once")&&this.observer.unobserve(e)):e.setAttribute("no-intersect","");else if(s>=n){if(!e.hasAttribute("data-animated")){e.removeAttribute("no-intersect"),e.setAttribute("data-animated","true");const t=this.animationCounter*this.delayBetweenAnimations;this.animationCounter++,e.style.transitionDelay=`${t}ms`,e.style.animationDelay=`${t}ms`,e.classList.contains("intersect-once")&&this.observer.unobserve(e)}}else e.setAttribute("no-intersect",""),e.removeAttribute("data-animated"),e.style.transitionDelay="",e.style.animationDelay="",this.animationCounter=0}))}))}).bind(this),{threshold:[0,.25,.5,.99]}),t.forEach((t=>{this.observer.observe(t)}))}};Observer.start(),document.addEventListener("astro:after-swap",(()=>{Observer.start()}))</script>
9<script src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=VNZFNF" async></script>
9<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"40757b50c9ab4cd2ad615698257f0c1b","r":1,"spa":2}' crossorigin="anonymous"></script>
9 10</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.