1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/png" href="/fyp-logo.png"><!-- Apple Smart App Banner --><meta name="apple-itunes-app" content="app-id=6479432180"><!-- Primary --><title>About Nicole Jardim | Fix Your Period</title><meta name="description" content="Nicole Jardim is a Certified Women's Health Coach, author of Fix Your Period, host of The Period Party Podcast, and founder of the Institute for Menstrual Health."><link rel="canonical" href="https://fixyourperiod.com/about"><!-- Open Graph --><meta property="og:title" content="About Nicole Jardim | Fix Your Period"><meta property="og:description" content="Nicole Jardim is a Certified Women's Health Coach, author of Fix Your Period, host of The Period Party Podcast, and founder of the Institute for Menstrual Health."><meta property="og:image" content="https://fixyourperiod.com/og/about.png"><meta property="og:url" content="https://fixyourperiod.com/about"><meta property="og:type" content="website"><meta property="og:site_name" content="Fix Your Period"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="About Nicole Jardim | Fix Your Period"><meta name="twitter:description" content="Nicole Jardim is a Certified Women's Health Coach, author of Fix Your Period, host of The Period Party Podcast, and founder of the Institute for Menstrual Health."><meta name="twitter:image" content="https://fixyourperiod.com/og/about.png"><!-- Google Analytics -->
vendor: 63 bytes, line 1
1<script async src="https://www.googletagmanager.com/gtag/js?id=
1G-V19QLKV3WP
vendor: 11 bytes, line 1
1"></script>
1<script> 2
vendor: 145 bytes, lines 2-5
2window.dataLayer = window.dataLayer || []; 3 function gtag(){dataLayer.push(arguments);} 4 gtag('js', new Date()); 5 gtag('config', '
5G-V19QLKV3WP
vendor: 8 bytes, lines 5-6
5'); 6
6</script>
6<!-- Meta Pixel -->
6<script>
vendor: 425 bytes, lines 6-12
6 7 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? 8 n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; 9 n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; 10 t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, 11 document,'script','//connect.facebook.net/en_US/fbevents.js'); 12 fbq('init', '
12899562896795772
vendor: 40 bytes, lines 12-14
12'); 13 fbq('track', 'PageView'); 14
14</script>
14<link rel="stylesheet" href="/_astro/BaseLayout.BrR9Y78Y.css"></head> <body> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=899562896795772&ev=PageView&noscript=1"></noscript> <header class="sticky top-0 z-50 bg-white/95 backdrop-blur-sm border-b border-pink-100 shadow-sm"> <div class="px-4 sm:px-6 h-16 flex items-center justify-between gap-4"> <!-- Logo. Styled to match the in-app Header.tsx exactly: flush left, 15 object-contain on the logo (no rounded crop), rose-600 brand text 16 in text-base/sm:text-lg, always visible (not hidden on mobile). 17 This keeps the visual transition between the marketing site and 18 the app seamless for returning users. --> <a href="/" class="flex items-center gap-2 hover:opacity-80 transition-opacity shrink-0"> <img src="/fyp-logo.png" alt="Fix Your Period" class="w-8 h-8 object-contain flex-shrink-0"> <span class="text-base sm:text-lg font-bold text-rose-600">Fix Your Period</span> </a> <!-- Nav â hidden on mobile, shown on sm+ --> <nav class="hidden sm:flex items-center gap-1 text-sm font-medium text-gray-600"> <a href="/features" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 19Features 20</a> <a href="/pricing" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 21Pricing 22</a> <a href="/articles" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 23Articles 24</a> <a href="/podcasts" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 25Podcast 26</a> <a href="/book" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 27Book 28</a> <a href="/about" class="px-3 py-2 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors"> 29About 30</a> </nav> <!-- Right side --> <div class="flex items-center gap-2 shrink-0"> <!-- Log in / Dashboard â shown/hidden by JS based on auth state --> <a id="header-login" href="https://fixyourperiod.app/login" class="text-sm font-medium text-gray-500 hover:text-rose-600 transition-colors"> 31Log in 32</a> <a id="header-dashboard" href="https://fixyourperiod.app/dashboard" class="text-sm font-medium text-gray-500 hover:text-rose-600 transition-colors hidden"> 33Your Dashboard 34</a> <!-- CTA â hidden on mobile to give room to hamburger --> <a id="header-quiz" href="https://fixyourperiod.app/quiz" class="hidden sm:inline-flex bg-gradient-to-r from-rose-500 to-pink-500 hover:from-rose-600 hover:to-pink-600 text-white font-semibold text-sm px-4 py-2 rounded-xl shadow-sm hover:shadow-md transition-all whitespace-nowrap"> Take the Assessment â </a> <!-- Hamburger â mobile only --> <button id="mobile-menu-btn" class="sm:hidden flex items-center justify-center w-9 h-9 rounded-lg text-gray-600 hover:text-rose-600 hover:bg-rose-50 transition-colors" aria-label="Open menu" aria-expanded="false"> <svg id="hamburger-icon" xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path> </svg> <svg id="close-icon" xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 hidden" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </div> </div> <!-- Mobile dropdown menu --> <div id="mobile-menu" class="hidden sm:hidden border-t border-pink-100 bg-white/98 backdrop-blur-sm"> <nav class="max-w-5xl mx-auto px-4 py-3 flex flex-col gap-1 text-sm font-medium text-gray-600"> <a href="/features" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">Features</a> <a href="/pricing" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">Pricing</a> <a href="/articles" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">Articles</a> <a href="/podcasts" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">Podcast</a> <a href="/book" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">
34Book</a> <a href="/about" class="px-3 py-2.5 rounded-lg hover:text-rose-600 hover:bg-rose-50 transition-colors">About</a> <div class="pt-2 pb-1"> <a id="mobile-menu-quiz" href="https://fixyourperiod.app/quiz" class="block w-full text-center bg-gradient-to-r from-rose-500 to-pink-500 hover:from-rose-600 hover:to-pink-600 text-white font-semibold px-4 py-3 rounded-xl shadow-sm transition-all"> Take the Assessment â </a> </div> </nav> </div> </header>
34<script type="module">const l=document.cookie.split(";").some(e=>e.trim().startsWith("fyp_logged_in=1")),o=document.getElementById("header-login"),t=document.getElementById("header-quiz"),n=document.getElementById("mobile-menu-quiz");if(l){o&&o.classList.add("hidden");const e="https://fixyourperiod.app/dashboard",i="Your Dashboard";t&&!t.dataset.fixedCta&&(t.textContent=i,t.setAttribute("href",e)),n&&!n.dataset.fixedCta&&(n.textContent=i,n.setAttribute("href",e))}const d=document.getElementById("mobile-menu-btn"),s=document.getElementById("mobile-menu"),a=document.getElementById("hamburger-icon"),c=document.getElementById("close-icon");d?.addEventListener("click",()=>{const e=s?.classList.toggle("hidden")===!1;d.setAttribute("aria-expanded",String(e)),a?.classList.toggle("hidden",e),c?.classList.toggle("hidden",!e)});s?.querySelectorAll("a").forEach(e=>{e.addEventListener("click",()=>{s.classList.add("hidden"),d?.setAttribute("aria-expanded","false"),a?.classList.remove("hidden"),c?.classList.add("hidden")})});</script>
34 <div class="bg-gradient-to-b from-rose-50 to-white border-b border-rose-100"> <div class="max-w-4xl mx-auto px-4 py-16"> <div class="flex flex-col sm:flex-row items-center sm:items-start gap-8"> <!-- Avatar --> <div class="shrink-0"> <div class="w-44 h-44 rounded-full bg-gradient-to-br from-rose-100 to-pink-200 shadow-md border-4 border-white overflow-hidden"> <img src="/nicole-photo.png" alt="Nicole Jardim" class="w-full h-full object-cover object-center"> </div> </div> <!-- Intro --> <div> <h1 class="text-3xl sm:text-4xl font-extrabold text-gray-900 leading-tight mb-4">About Nicole Jardim</h1> <p class="text-base text-gray-600 leading-relaxed mb-5 max-w-xl"> 35Women's health educator, author, and founder focused on helping women understand their cycles, support their hormones, and make informed decisions about their health. 36</p> <!-- Credential pills --> <div class="flex flex-wrap gap-2"> <span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 w-3.5 h-3.5"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z" /><path d="M22 10v6" /><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5" /></svg> <span>Women's Health Educator</span> </span><span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 w-3.5 h-3.5"><path d="M12 7v14" /><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" /></svg> <span>Author, Fix Your Period (HarperCollins)</span> </span><span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 w-3.5 h-3.5"><path d="M12 19v3" /><path d="M19 10v2a7 7 0 0 1-14 0v-2" /><rect x="9" y="2" width="6" height="13" rx="3" /></svg> <span>Host, The Period Party Podcast (270+ episodes)</span> </span><span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 w-3.5 h-3.5"><path d="M10 18v-7" /><path d="M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z" /><path d="M14 18v-7" /><path d="M18 18v-7" /><path d="M3 22h18" /><path d="M6 18v-7" /></svg> <span>Founder, Institute for Menstrual Health</span> </span><span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-violet-500 w-3.5 h-3.5"><path d="M6 18h8" /><path d="M3 22h18" /><path d="M14 22a7 7 0 1 0 0-14h-1" /><path d="M9 14h2" /><path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z" /><path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3" /></svg> <span>20+ years in hormonal health expertise</span> </span><span class="inline-flex items-center gap-1.5 bg-white border border-rose-100 text-gray-700 text-xs font-medium px-3 py-1.5 rounded-full shadow-sm"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 w-3.5 h-3.5"><circle cx="12" cy="12" r="10" /><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /><path d="M2 12h20" /></svg> <span>Helped tens of thousands of women worldwide</span> </span> </div> </div> </div> </div> </div> <div class="max-w-4xl mx-auto px-4 py-16"> <!-- ââ STORY ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="mb-16 max-w-2xl"> <h2 class="text-2xl font-extrabold text-gray-900 mb-5">About Nicole</h2> <div class="space-y-5 text-gray-600 text-sm leading-relaxed"> <p> 37Nicole Jardim is a women's health educator, writer, and speaker specializing in menstrual and hormonal health. She is the author of <em>Fix Your Period</em>, the founder of the Fix Your Period Collective, and the creator of the Institute for Menstrual Health: a professional training platform for practitioners and health professionals. 38</p> <p> 39Her work focuses on helping women understand how their bodies function, identify root causes, and move beyond symptom management toward long-term, sustainable health. Over the past decade, Nicole has supported tens of thousands of women worldwide through her programs, education, and writing. Her work has been featured in major media outlets including The Guardian, Well+Good, mindbodygreen, and Healthline, and she is the host of The Period Party podcast. She is known for translating complex hormonal concepts into clear, practical guidance that women can apply in their everyday lives. 40</p> <h3 class="text-base font-extrabold text-gray-900 pt-2">A Different Approach to Women's Health</h3> <p> 41Nicole's work is grounded in a few core principles: the menstrual cycle is a vital sign of overall health; symptoms are signals that deserve to be understood; and education and body literacy are essential for lasting change. Her approach combines evidence-informed education with real-world application, helping women move from confusion to clarity, and from reactive care to informed decision-making. 42</p> <h3 class="text-base font-extrabold text-gray-900 pt-2">How Nicole's Work Began</h3> <p> 43Nicole's interest in hormonal health began with her own experience. As a teenager, she struggled with irregular, painful periods and was prescribed the birth control pill, a solution that only introduced more worrying symptoms. Over time, she began experiencing a range of ongoing health issues that were never fully explained, despite extensive medical testing. 44</p> <p> 45Eventually, this led her to explore alternative approaches, including nutrition, lifestyle changes, and integrative health practices. For the first time, she began to understand what was happening in her body and how to support it. That experience became the foundation of her work. 46</p> <p> 47What she learned through her own process â and what she later trained extensively to deeply realize â is that many women are navigating symptoms without clear explanations or practical guidance. Nicole's work today exists to change that. 48</p> <h3 class="text-base font-extrabold text-gray-900 pt-2">
48Training and Background</h3> <p>Nicole trained as a women's health and nutrition practitioner through:</p> <ul class="list-disc list-inside space-y-1 text-gray-500 pl-1"> <li>Institute for Integrative Nutrition (IIN)</li> <li>Integrative Women's Health Institute</li> <li>The Gottfried Institute (Dr. Sara Gottfried)</li> <li>The Kresser Institute for Functional and Evolutionary Medicine</li> </ul> <p>Along with additional advanced training in hormonal health, menstrual cycle function, and nutrition.</p> <h3 class="text-base font-extrabold text-gray-900 pt-2">What Nicole Does Today</h3> <p>Nicole's work now spans three core areas:</p> <ul class="list-disc list-inside space-y-1 text-gray-500 pl-1"> <li><span class="font-semibold text-gray-700">Education:</span> Articles, podcast, and her book <em>Fix Your Period</em></li> <li><span class="font-semibold text-gray-700">Guided Support:</span> The Fix Your Period Collective</li> <li><span class="font-semibold text-gray-700">Professional Training:</span> The Institute for Menstrual Health</li> </ul> <p>Each is designed to meet women at different stages of their journey.</p> <h3 class="text-base font-extrabold text-gray-900 pt-2">A Note from Nicole</h3> <p> 49Nicole believes that women should be active participants in their health, not passive recipients of care. Her work is dedicated to helping women understand their bodies, ask better questions, and make decisions that feel informed, grounded, and aligned with their lives. 50</p> </div> </div> <!-- ââ BELIEFS ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="mb-16"> <h2 class="text-2xl font-extrabold text-gray-900 mb-2">Nicole's work is rooted in the belief that:</h2> <div class="bg-white border border-gray-100 rounded-2xl p-6 shadow-sm space-y-3 mt-6"> <div class="flex items-start gap-3"> <span class="text-rose-400 mt-0.5 shrink-0">â</span> <p class="text-sm text-gray-700">Your cycle is a vital sign, not an inconvenience</p> </div><div class="flex items-start gap-3"> <span class="text-rose-400 mt-0.5 shrink-0">â</span> <p class="text-sm text-gray-700">Symptoms are signals worth understanding, not suppressing</p> </div><div class="flex items-start gap-3"> <span class="text-rose-400 mt-0.5 shrink-0">â</span> <p class="text-sm text-gray-700">There is no one-size-fits-all solution</p> </div><div class="flex items-start gap-3"> <span class="text-rose-400 mt-0.5 shrink-0">â</span> <p class="text-sm text-gray-700">Education and body literacy are foundational to lasting change</p> </div> </div> </div> <!-- ââ BOOK + PODCAST âââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="grid grid-cols-1 sm:grid-cols-2 gap-5 mb-16"> <!-- Book --> <div class="bg-white border border-gray-100 rounded-2xl p-6 shadow-sm flex flex-col"> <div class="mb-4"><span class="w-10 h-10 rounded-xl flex items-center justify-center shrink-0 bg-rose-50 text-rose-500 "><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 7v14" /><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" /></svg></span></div> <h3 class="font-extrabold text-gray-900 text-base mb-2">Fix Your Period</h3> <p class="text-xs text-gray-500 leading-relaxed mb-1">Published by HarperCollins</p> <p class="text-xs text-gray-600 leading-relaxed flex-1 mb-4"> 51Nicole's bestselling book covers her complete root-cause methodology for addressing every major period and hormonal health problem â from PMOS (formerly PCOS) and endometriosis to PMS, missing periods, and perimenopause. 52</p> <a href="https://www.amazon.com/Fix-Your-Period-Menstrual-Menopause/dp/0062885812" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1.5 text-xs font-bold text-rose-600 hover:text-rose-700 transition-colors"> 53Find it on Amazon 54<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
54<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M9 5l7 7-7 7"></path></svg> </a> </div> <!-- Podcast --> <div class="bg-white border border-gray-100 rounded-2xl p-6 shadow-sm flex flex-col"> <div class="mb-4"><span class="w-10 h-10 rounded-xl flex items-center justify-center shrink-0 bg-rose-50 text-rose-500 "><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19v3" /><path d="M19 10v2a7 7 0 0 1-14 0v-2" /><rect x="9" y="2" width="6" height="13" rx="3" /></svg></span></div> <h3 class="font-extrabold text-gray-900 text-base mb-2">The Period Party Podcast</h3> <p class="text-xs text-gray-500 leading-relaxed mb-1">270+ episodes</p> <p class="text-xs text-gray-600 leading-relaxed flex-1 mb-4"> 55Each week Nicole brings together the world's leading voices in women's health â doctors, researchers, practitioners, and coaches â for deep-dive conversations on every aspect of hormonal and menstrual health. 56</p> <a href="/podcasts" class="inline-flex items-center gap-1.5 text-xs font-bold text-rose-600 hover:text-rose-700 transition-colors"> 57Browse all episodes 58<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M9 5l7 7-7 7"></path></svg> </a> </div> </div> <!-- ââ INSTITUTE ââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="mb-16"> <div class="bg-gradient-to-br from-rose-50 to-pink-50 border border-rose-100 rounded-2xl p-8"> <div class="flex flex-col sm:flex-row gap-6 items-start"> <span class="shrink-0 w-12 h-12 rounded-xl bg-white shadow-sm flex items-center justify-center text-rose-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-rose-500 "><path d="M10 18v-7" /><path d="M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z" /><path d="M14 18v-7" /><path d="M18 18v-7" /><path d="M3 22h18" /><path d="M6 18v-7" /></svg></span> <div> <h3 class="font-extrabold text-gray-900 text-base mb-2">Institute for Menstrual Health</h3> <p class="text-sm text-gray-600 leading-relaxed max-w-xl"> 59Nicole founded the Institute for Menstrual Health to advance education, research, and awareness in menstrual health â bridging the gap between cutting-edge science and the everyday lived experience of women with period problems. The Institute trains health practitioners and advocates for a deeper understanding of menstrual health as a vital sign of whole-body wellbeing. 60</p> </div> </div> </div> </div> <!-- ââ MEDIA ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="mb-16"> <h2 class="text-2xl font-extrabold text-gray-900 mb-6 text-center">As featured in</h2> <div class="flex flex-wrap items-center justify-center gap-x-10 gap-y-6"> <span style="display:inline-flex;align-items:center;"> <img src="https://logo.clearbit.com/theguardian.com" alt="The Guardian" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">The Guardian</span> </span><span style="display:inline-flex;align-items:center;"> <img src="https://logo.clearbit.com/wellandgood.com" alt="Well+Good" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">Well+Good</span> </span><span style="display:inline-flex;align-items:center;"> <img src="https://logo.clearbit.com/mindbodygreen.com" alt="mindbodygreen" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">mindbodygreen</span> </span><span style="display:inline-flex;align-items:center;"> <img src="https://logo.clearbit.com/healthline.com" alt="Healthline" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">Healthline</span> </span><span style="display:inline-flex;align-items:center;">
60 <img src="https://logo.clearbit.com/forbes.com" alt="Forbes" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">Forbes</span> </span><span style="display:inline-flex;align-items:center;"> <img src="https://logo.clearbit.com/vogue.com" alt="Vogue" height="28" loading="lazy" style="height:28px;width:auto;filter:grayscale(100%) opacity(40%);transition:filter 0.2s;" onmouseover="this.style.filter='grayscale(100%) opacity(65%)'" onmouseout="this.style.filter='grayscale(100%) opacity(40%)'" onerror="this.style.display='none';this.nextElementSibling.style.display='inline';"> <span style="display:none;font-size:15px;font-weight:700;color:#d1d5db;letter-spacing:-0.02em;">Vogue</span> </span> </div> </div> <!-- ââ CTA âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> <div class="text-center bg-gradient-to-r from-rose-500 to-pink-500 rounded-2xl p-10 shadow-md"> <h2 class="text-2xl font-extrabold text-white mb-3">Experience Nicole's methodology firsthand.</h2> <p class="text-rose-100 text-sm leading-relaxed mb-6 max-w-md mx-auto"> 61Take the free Hormone Health Assessment and get personalized results based on your unique symptoms â built on Nicole's 20+ years of root-cause hormonal health expertise. 62</p> <div class="flex flex-col sm:flex-row gap-3 justify-center"> <a href="https://fixyourperiod.app/quiz" class="inline-flex items-center justify-center gap-2 bg-white text-rose-600 hover:bg-rose-50 font-bold px-7 py-3 rounded-xl shadow-sm hover:shadow-md transition-all text-sm"> 63Take the Free Assessment â 64</a> <a href="/features" class="inline-flex items-center justify-center gap-2 border border-white/40 text-white hover:bg-white/10 font-semibold px-7 py-3 rounded-xl transition-all text-sm"> 65Explore App Features 66</a> </div> </div> </div> <footer class="bg-gray-50 border-t border-pink-100 mt-24"> <div class="max-w-5xl mx-auto px-4 py-12"> <div class="flex flex-col sm:flex-row justify-between items-start gap-8"> <!-- Brand --> <div class="max-w-xs"> <a href="/" class="flex items-center gap-2.5 mb-3"> <img src="/fyp-logo.png" alt="Fix Your Period" class="h-8 w-8 rounded-full"> <span class="font-bold text-gray-900">Fix Your Period</span> </a> <p class="text-sm text-gray-500 leading-relaxed"> 67Evidence-based hormonal health guidance by Nicole Jardim â Certified Women's Health Coach and author of <em>Fix Your Period</em>. 68</p> </div> <!-- Links --> <div class="flex flex-wrap gap-12 text-sm"> <div class="space-y-2"> <p class="font-semibold text-gray-700 mb-3">Learn</p> <a href="/articles" class="block text-gray-500 hover:text-rose-600 transition-colors">Articles</a> <a href="/podcasts" class="block text-gray-500 hover:text-rose-600 transition-colors">Podcast</a> <a href="/about" class="block text-gray-500 hover:text-rose-600 transition-colors">About Nicole</a> </div> <div class="space-y-2"> <p class="font-semibold text-gray-700 mb-3">App</p> <a href="https://fixyourperiod.app/quiz" class="block text-gray-500 hover:text-rose-600 transition-colors">Free Assessment</a> <a href="https://fixyourperiod.app" class="block text-gray-500 hover:text-rose-600 transition-colors">Sign In</a> <a href="https://apps.apple.com/app/id6479432180" target="_blank" rel="noopener" aria-label="Download Fix Your Period on the App Store" class="inline-flex items-center gap-1.5 text-gray-500 hover:text-rose-600 transition-colors block"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" fill="currentColor" aria-hidden="true" class="w-3.5 h-3.5"> <path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path> </svg> <span>Download for iPhone</span> </a> <a href="https://play.google.com/store/apps/details?id=com.nicolejardim.fixyourperiod" target="_blank" rel="noopener" aria-label="Download Fix Your Period on Google Play" class="inline-flex items-center gap-1.5 text-gray-500 hover:text-rose-600 transition-colors block"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="w-3.5 h-3.5"> <path d="M5 3.5v17c0 .77.83 1.25 1.5.87l14.5-8.5a1 1 0 000-1.74L6.5 2.63A1 1 0 005 3.5z"></path> </svg> <span>Download for Android</span> </a> </div> <div class="space-y-2"> <p class="font-semibold text-gray-700 mb-3">Privacy & Terms</p> <a href="/privacy" class="block text-gray-500 hover:text-rose-600 transition-colors">Privacy Policy</a> <a href="/terms" class="block text-gray-500 hover:text-rose-600 transition-colors">Terms of Service</a> </div> </div> </div> <div class="border-t border-gray-200 mt-10 pt-6 flex flex-col sm:flex-row justify-between items-center gap-3 text-xs text-gray-400"> <p>© 2026 Fix Your Period. All rights reserved.</p> <p class="text-center">For educational purposes only. Not medical advice.</p> </div> </div> </footer> <!-- ââ CUSTOMER SUPPORT CHAT WIDGET âââââââââââââââââââââââââââââââââââââ --> <div id="fyp-support-widget"> <!-- Bubble trigger button --> <button id="fyp-chat-btn" aria-label="Open customer support chat" onclick="fypC
68hatToggle()"> <svg id="fyp-chat-icon" xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg> <svg id="fyp-close-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="display:none"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> </button> <!-- Chat panel --> <div id="fyp-chat-panel" role="dialog" aria-label="Customer Support Chat" style="display:none"> <div id="fyp-chat-header"> <div style="display:flex;align-items:center;gap:10px;"> <div style="width:36px;height:36px;background:#fff2;border-radius:50%;display:flex;align-items:center;justify-content:center;"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg> </div> <div> <div style="font-weight:700;font-size:15px;">Customer Support</div> <div style="font-size:11px;opacity:0.85;">Fix Your Period</div> </div> </div> <button onclick="fypChatToggle()" aria-label="Close chat" style="background:none;border:none;color:white;cursor:pointer;padding:4px;"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> </button> </div> <div id="fyp-chat-messages"></div> <div id="fyp-chat-input-area"> <textarea id="fyp-chat-input" placeholder="Ask us anything..." rows="1" onkeydown="fypChatKeydown(event)"></textarea> <button id="fyp-send-btn" onclick="fypChatSend()" aria-label="Send message"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg> </button> </div> <p id="fyp-chat-privacy">Conversations are stored to help us improve support.</p> </div> </div>
68<script> 69 var fypMessages = []; 70 var fypOpen = false; 71 var fypGreeted = false; 72 73 function fypChatToggle() { 74 fypOpen = !fypOpen; 75 var panel = document.getElementById('fyp-chat-panel'); 76 var chatIcon = document.getElementById('fyp-chat-icon'); 77 var closeIcon = document.getElementById('fyp-close-icon'); 78 if (fypOpen) { 79 panel.style.display = 'flex'; 80 chatIcon.style.display = 'none'; 81 closeIcon.style.display = 'block'; 82 if (!fypGreeted) { 83 fypGreeted = true; 84 fypAppendMessage('assistant', "Hi there! ð I'm the Fix Your Period Customer Support assistant. I can help you learn about the app, our features, pricing, and how to get started. What would you like to know?"); 85 } 86 setTimeout(function() { document.getElementById('fyp-chat-input').focus(); }, 50); 87 } else { 88 panel.style.display = 'none'; 89 chatIcon.style.display = 'block'; 90 closeIcon.style.display = 'none'; 91 } 92 } 93 94 function fypAppendMessage(role, text) { 95 var messages = document.getElementById('fyp-chat-messages'); 96 var div = document.createElement('div'); 97 div.className = 'fyp-msg fyp-msg-' + role; 98 div.textContent = text; 99 messages.appendChild(div); 100 messages.scrollTop = messages.scrollHeight; 101 return div; 102 } 103 104 function fypShowTyping() { 105 var messages = document.getElementById('fyp-chat-messages'); 106 var div = document.createElement('div'); 107 div.className = 'fyp-typing'; 108 div.id = 'fyp-typing-indicator'; 109 div.innerHTML = '<span></span><span></span><span></span>'; 110 messages.appendChild(div); 111 messages.scrollTop = messages.scrollHeight; 112 } 113 114 function fypHideTyping() { 115 var el = document.getElementById('fyp-typing-indicator'); 116 if (el) el.remove(); 117 } 118 119 function fypChatKeydown(e) { 120 if (e.key === 'Enter' && !e.shiftKey) { 121 e.preventDefault(); 122 fypChatSend(); 123 } 124 } 125 126 async function fypChatSend() { 127 var input = document.getElementById('fyp-chat-input'); 128 var sendBtn = document.getElementById('fyp-send-btn'); 129 var text = input.value.trim(); 130 if (!text) return; 131 132 input.value = ''; 133 input.style.height = 'auto'; 134 sendBtn.disabled = true; 135 136 fypAppendMessage('user', text); 137 fypMessages.push({ role: 'user', content: text }); 138 139 fypShowTyping(); 140 141 try { 142 // Include any prior session token so the server groups multi-turn 143 // conversations into one session in the admin Chatbot view. The 144 // server returns a fresh token if none was sent (or the prior one 145 // expired); we store it for the next message. 146 var savedToken = null; 147 try { savedToken = localStorage.getItem('fyp_widget_session_token'); } catch (e) {} 148 var response = await fetch('https://fixyourperiod.app/api/support-chat', { 149 method: 'POST', 150 headers: { 'Content-Type': 'application/json' }, 151 body: JSON.stringify({ 152 messages: fypMessages, 153 sessionToken: savedToken || undefined 154 }) 155 }); 156 157 fypHideTyping(); 158 159 if (!response.ok) { 160 var err = await response.json().catch(function() { return {}; }); 161 if (response.status === 429) { 162 fypAppendMessage('assistant', "You've reached the message limit for this hour. Please try again later or email us at [email protected]."); 163 } else { 164 fypAppendMessage('assistant', "Sorry, something went wrong. Please try again or email [email protected]."); 165 } 166 sendBtn.disabled = false; 167 return; 168 } 169 170 var data = await response.json(); 171 var reply = data.reply || "Sorry, I didn't get a response. Please try again."; 172 fypMessages.push({ role: 'assistant', content: reply }); 173 fypAppendMessage('assistant', reply); 174 if (data.sessionToken) { 175 try { localStorage.setItem('fyp_widget_session_token', data.sessionToken); } catch (e) {} 176 } 177 } catch (e) { 178 fypHideTyping(); 179 fypAppendMessage('assistant', "Sorry, something went wrong. Please check your connection or email us at [email protected]."); 180 } 181 182 sendBtn.disabled = false;
183 input.focus(); 184 } 185 </script>
185
185<script> 186 (function() { 187 var UTM_KEYS = ['utm_source','utm_medium','utm_campaign','utm_content','utm_term']; 188 var COOKIE_NAME = 'fyp_first_touch'; 189 var MAX_AGE_SEC = 30 * 24 * 60 * 60; 190 var SELF_HOSTS = /(?:^|\.)fixyourperiod\.com$|(?:^|\.)fixyourperiod\.app$|(?:^|\.)fixmyperiod\.com$|(?:^|\.)nicolejardim\.(?:com|app)$/; 191 192 function readCookie() { 193 var m = document.cookie.match(new RegExp('(?:^|;\\s*)' + COOKIE_NAME + '=([^;]+)')); 194 if (!m) return null; 195 try { return JSON.parse(decodeURIComponent(m[1])); } catch (e) { return null; } 196 } 197 198 function writeCookie(obj) { 199 document.cookie = COOKIE_NAME + '=' + encodeURIComponent(JSON.stringify(obj)) 200 + '; domain=.fixyourperiod.com' 201 + '; path=/' 202 + '; max-age=' + MAX_AGE_SEC 203 + '; SameSite=Lax'; 204 } 205 206 function externalReferrerHost() { 207 if (!document.referrer) return null; 208 try { 209 var h = new URL(document.referrer).hostname.toLowerCase(); 210 return SELF_HOSTS.test(h) ? null : h; 211 } catch (e) { return null; } 212 } 213 214 try { 215 var params = new URLSearchParams(window.location.search); 216 var touch = readCookie() || {}; 217 218 // 1. First-touch capture â only write if this is truly the first visit 219 // (no cookie yet). Otherwise the original source is preserved. 220 if (!touch || Object.keys(touch).length === 0) { 221 touch = {}; 222 UTM_KEYS.forEach(function(k){ 223 var v = params.get(k); 224 if (v) touch[k] = v; 225 }); 226 var ext = externalReferrerHost(); 227 if (ext) touch.ext_referrer = ext; 228 touch.marketing_landing_page = window.location.origin + window.location.pathname; 229 writeCookie(touch); 230 } 231 232 // 2. Rewrite outbound app links to carry the first-touch data forward. 233 // Runs on every page load so late CTAs also benefit. 234 var carry = {}; 235 UTM_KEYS.forEach(function(k){ if (touch[k]) carry[k] = touch[k]; }); 236 if (touch.ext_referrer) carry.fyp_ext_referrer = touch.ext_referrer; 237 if (touch.marketing_landing_page) carry.fyp_marketing_page = touch.marketing_landing_page; 238 239 if (Object.keys(carry).length > 0) { 240 var anchors = document.querySelectorAll('a[href*="fixyourperiod.app"]'); 241 anchors.forEach(function(a){ 242 try { 243 var href = a.getAttribute('href'); 244 if (!href) return; 245 var url = new URL(href, window.location.origin); 246 if (!url.hostname.endsWith('fixyourperiod.app')) return; 247 Object.keys(carry).forEach(function(k){ 248 if (!url.searchParams.has(k)) url.searchParams.set(k, carry[k]); 249 }); 250 a.setAttribute('href', url.toString()); 251 } catch (e) { /* skip malformed href */ } 252 }); 253 } 254 } catch (e) { /* attribution is non-essential; never break the page */ } 255 })(); 256 </script>
256
256<script> 257 (function() { 258 try { 259 // First-party visitor cookie â same domain scope as the attribution 260 // cookie above so both live/die together. UUID lets the server 261 // aggregate uniques (COUNT DISTINCT visitor_id) without an IP. 262 var VISITOR_COOKIE = 'fyp_visitor'; 263 var YEAR_SEC = 365 * 24 * 60 * 60; 264 var vm = document.cookie.match(new RegExp('(?:^|;\\s*)' + VISITOR_COOKIE + '=([^;]+)')); 265 var visitorId = vm ? vm[1] : null; 266 if (!visitorId) { 267 var uuid = (crypto && crypto.randomUUID) 268 ? crypto.randomUUID() 269 : 'v' + Date.now().toString(36) + Math.random().toString(36).slice(2, 12); 270 visitorId = uuid; 271 document.cookie = VISITOR_COOKIE + '=' + uuid 272 + '; domain=.fixyourperiod.com' 273 + '; path=/' 274 + '; max-age=' + YEAR_SEC 275 + '; SameSite=Lax'; 276 } 277 278 var body = JSON.stringify({ 279 path: window.location.pathname, 280 full_url: window.location.href, 281 referrer: document.referrer || null, 282 visitor_id: visitorId, 283 }); 284 fetch('https://fixyourperiod.app/api/track/pageview', { 285 method: 'POST', 286 headers: { 'Content-Type': 'application/json' }, 287 body: body, 288 keepalive: true, 289 credentials: 'omit', 290 }).catch(function(){ /* beacon is fire-and-forget */ }); 291 } catch (e) { /* never break the page */ } 292 })(); 293 </script>
293 </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.