<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <!-- .com = website, .app = app. Keep the path list in sync with src/config/domains.js. -->
    <script>
      document.documentElement.className += ' js';
      (function () {
        try {
          var l = window.location, h = l.hostname, p = l.pathname;
          var site = h === 'thepepplanner.com' || h === 'www.thepepplanner.com';
          var app = h === 'thepepplanner.app' || h === 'www.thepepplanner.app';
          if (!site && !app) return;
          var appPaths = ['/app', '/login', '/logout', '/magic-link', '/reset-password', '/verify-email', '/activate', '/admin', '/account', '/delete-account', '/share', '/research-annual', '/research-lifetime', '/test-annual-checkout', '/dev', '/__'];
          var isApp = appPaths.some(function (x) { return p === x || p.indexOf(x + '/') === 0 || p.indexOf(x + '-') === 0; });
          var rest = l.search + l.hash;
          if (app && p === '/') {
            var standalone = (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) || window.navigator.standalone;
            var signedIn = false;
            try { signedIn = localStorage.getItem('tpp_signed_in') === '1'; } catch (e) {}
            if (standalone || signedIn) { l.replace('https://thepepplanner.app/app' + rest); return; }
          }
          if (site && isApp) l.replace('https://thepepplanner.app' + p + rest);
          else if (app && !isApp) l.replace('https://thepepplanner.com' + p + rest);
        } catch (e) {}
      })();
    </script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
    <meta name="google-site-verification" content="ZM9sMlUYDOUeuZIGEwIMD99emQVISLFmHj5MHl6dBpU" />
    <meta name="mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <meta name="apple-mobile-web-app-title" content="The Pep Planner" />
    <meta name="format-detection" content="telephone=no" />
    <!-- Force cache busting for PWA assets -->
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <!-- Cache busting version - updated to force refresh -->
    <meta name="app-version" content="chunk-loading-fix-v8" />
    <link rel="manifest" href="/manifest.webmanifest" />
    <meta name="theme-color" content="#8A9A8F" />
    <!-- Ensure proper loading on mobile -->
    <meta name="mobile-web-app-capable" content="yes" />
    <meta name="HandheldFriendly" content="true" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
    <!-- Google Fonts -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Cedarville+Cursive&family=Figtree:ital,wght@0,300..900;1,300..900&family=Poppins:wght@100;200;300;400;500;600;700;800;900&family=Playfair+Display:wght@400;500;600;700&display=swap" rel="stylesheet">
    
    <!-- Primary SEO Meta Tags. Keep wording neutral (no compound names or medical terms): ad and link reviewers scan this. -->
    <title>The Pep Planner - Research Protocol Planner &amp; Inventory Tracker</title>
    <meta name="title" content="The Pep Planner - Research Protocol Planner &amp; Inventory Tracker" />
    <meta name="description" content="Plan research protocols, track vial inventory, orders and vendors, and get reminders, with a free reconstitution calculator. On web, iOS and Android." />
    <meta name="author" content="The Pep Planner" />
    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
    <meta name="language" content="English" />
    <meta name="revisit-after" content="7 days" />
    
    <!-- Canonical URL (updated dynamically by pageSEO.js) -->
    <link rel="canonical" href="https://thepepplanner.com/" />
    
    <!-- Open Graph / Facebook -->
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://thepepplanner.com/" />
    <meta property="og:title" content="The Pep Planner - Research Protocol Planner &amp; Inventory Tracker" />
    <meta property="og:description" content="Plan research protocols, track vial inventory, orders and vendors, and get reminders, with a free reconstitution calculator. On web, iOS and Android." />
    <meta property="og:image" content="https://thepepplanner.com/og-image.png" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta property="og:image:alt" content="The Pep Planner logo" />
    <meta property="og:site_name" content="The Pep Planner" />
    <meta property="og:locale" content="en_US" />
    
    <!-- Twitter Card -->
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:url" content="https://thepepplanner.com/" />
    <meta name="twitter:title" content="The Pep Planner - Research Protocol Planner &amp; Inventory Tracker" />
    <meta name="twitter:description" content="Plan research protocols, track vial inventory, orders and vendors, and get reminders, with a free reconstitution calculator. On web, iOS and Android." />
    <meta name="twitter:image" content="https://thepepplanner.com/og-image.png" />
    
    <!-- Structured Data (JSON-LD) for AI Search -->
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "WebApplication",
      "name": "The Pep Planner",
      "alternateName": "TPP",
      "description": "Research planner for organizing protocols, schedules, notes, vial inventory, orders and vendors. Calendar, reminders and a reconstitution calculator. Free on web, iOS and Android.",
      "url": "https://thepepplanner.com",
      "applicationCategory": "ProductivityApplication",
      "operatingSystem": "Web, iOS, Android",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      },
      "featureList": [
        "Research protocol planning and scheduling",
        "Calendar, day view and reminders",
        "Vial and inventory tracking",
        "Reconstitution calculator",
        "Order and vendor management",
        "Research notes and analytics",
        "Cloud sync across devices with Research+"
      ],
      "screenshot": "https://thepepplanner.com/tpp_logo.png",
      "creator": {
        "@type": "Organization",
        "name": "The Pep Planner"
      }
    }
    </script>
    
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Organization",
      "name": "The Pep Planner",
      "url": "https://thepepplanner.com",
      "logo": "https://thepepplanner.com/tpp_logo.png",
      "description": "The Pep Planner is a research planner for organizing protocols, schedules, inventory, orders and vendors.",
      "sameAs": []
    }
    </script>
    
    <script type="module" crossorigin src="/assets/index-Qq9wIR7g.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-CoeaZWcx.css">
  </head>
  <body>
    <style>
      /* Build-time crawler copy is for clients without JS (Stripe, AI crawlers); browsers see the React page. */
      html.js #static-business-content,
      body.js-loaded #static-business-content { display: none !important; }
    </style>
    <div id="static-business-content" data-static-storefront="true">
<header>
  <h1>The Pep Planner: research protocol planner and inventory tracker</h1>
  <p>
    The Pep Planner is an app for people who run peptide research protocols and want everything in one place:
    schedules, vial inventory, mixing math, orders, vendors and notes. It works on the web, iPhone and Android.
  </p>
</header>

<nav>
  <a href="https://thepepplanner.com/">Home</a> ·
  <a href="https://thepepplanner.com/features">Features</a> ·
  <a href="https://thepepplanner.com/pricing">Pricing</a> ·
  <a href="https://thepepplanner.com/faq">FAQ</a> ·
  <a href="https://thepepplanner.com/resources">Resources</a> ·
  <a href="https://thepepplanner.com/shop">Shop</a> ·
  <a href="https://thepepplanner.com/contact">Contact</a>
</nav>
<section>
  <h2>What you can do with it</h2>
  <ul>
    <li><strong>Plan protocols</strong>: build schedules with step-up phases, save them to a library and start them when you're ready.</li>
    <li><strong>See today at a glance</strong>: a Today list and calendar show what's scheduled, what's done and what you missed.</li>
    <li><strong>Track inventory</strong>: know how many vials you have, what's mixed, the use-by date you set, and what's running low.</li>
    <li><strong>Reconstitution calculator</strong>: work out mixing amounts and units, free on every plan.</li>
    <li><strong>Orders and vendors</strong>: log orders, track shipping and keep vendor contacts together.</li>
    <li><strong>Insights</strong>: consistency, spending and protocol history over time.</li>
    <li><strong>Notes and wellness log</strong>: record how you feel and keep research notes next to the protocol.</li>
  </ul>
</section>
<section>
  <h2>Who it's for</h2>
  <p>
    Researchers who are tired of spreadsheets, paper notes and phone reminders scattered across apps.
    It replaces a protocol spreadsheet, an inventory sheet and a calculator with one planner.
  </p>
</section>
<section>
  <h2>Pricing</h2>
  <p>
    Start with a 14-day free trial, no credit card required. After that there's a free plan, or Research+
    for $4.99/month, $39.99/year or $99.99 once for lifetime access. Research+ adds cloud sync across devices
    and removes the free plan limits. <a href="https://thepepplanner.com/pricing">See pricing</a>.
  </p>
</section>
<section>
  <h2>Get started</h2>
  <p><a href="https://thepepplanner.app/login?signup=true">Create a free account</a> or <a href="https://thepepplanner.com/features">explore the features</a>.</p>
  <p>Questions? <a href="https://thepepplanner.com/faq">Read the FAQ</a> or email <a href="mailto:contact@thepepplanner.com">contact@thepepplanner.com</a>.</p>
</section>
</div>
    <div id="root">
      <!-- Mobile loading fallback -->
      <div style="display: flex; align-items: center; justify-content: center; height: 100vh; font-family: system-ui; background-color: #ffffff;">
        <div style="text-align: center;">
          <img 
            src="/tpp_logo.png" 
            alt="The Pep Planner Logo" 
            style="width: 80px; height: 80px; animation: pulse 1.5s ease-in-out infinite; display: block; margin: 0 auto;"
          />
        </div>
      </div>
      <style>
        @keyframes pulse {
          0%, 100% { 
            transform: scale(1);
            opacity: 1;
          }
          50% { 
            transform: scale(1.2);
            opacity: 0.9;
          }
        }
        /* Hide reCAPTCHA badge */
        .grecaptcha-badge {
          visibility: hidden !important;
          opacity: 0 !important;
          display: none !important;
        }
      </style>
    </div>
  </body>
</html>