<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google Consent Mode v2 defaults (denied until user opts in via cookie banner) -->
<script>
(function(){
  if (window.__kgEmbed) return;
  window.dataLayer = window.dataLayer || [];
  function gtag(){window.dataLayer.push(arguments);}
  gtag('consent', 'default', {
    ad_storage: 'denied',
    ad_user_data: 'denied',
    ad_personalization: 'denied',
    analytics_storage: 'denied',
    functionality_storage: 'granted',
    security_storage: 'granted',
    wait_for_update: 500
  });
})();
</script>
<!-- Google Tag Manager (deferred to idle so it doesn't block the critical
     render path; dataLayer is created up-front so any pre-GTM pushes queue.) -->
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
(function() {
  var loaded = false;
  function loadGTM() {
    if (loaded) return; loaded = true;
    var s = document.createElement('script');
    s.async = true;
    s.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-5V39ZK9V';
    document.head.appendChild(s);
  }
  var schedule = function() {
    (window.requestIdleCallback || function(cb){ setTimeout(cb, 1500); })(loadGTM, {timeout: 3000});
  };
  if (document.readyState === 'complete') schedule();
  else window.addEventListener('load', schedule);
})();
</script>
<!-- End Google Tag Manager -->
<!-- Cookie consent banner (vanilla-cookieconsent v3, self-hosted) -->
<link rel="stylesheet" href="/public/vendor/cookieconsent/cookieconsent.css">
<link rel="stylesheet" href="/public/cookie-consent.css">
<script defer src="/public/vendor/cookieconsent/cookieconsent.umd.js"></script>
<script defer src="/public/cookie-consent.js"></script>

<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Community Program | Keygraph</title>
<meta name="description" content="Free Keygraph Pro for U.S. 501(c)(3) nonprofits and seed or pre-Series-A startups. Learn who qualifies for the Keygraph Community Program and how to apply.">
<link rel="canonical" href="https://keygraph.io/community-program">
<meta name="robots" content="index, follow">
<meta property="og:title" content="Community Program | Keygraph" />
<meta property="og:description" content="Free Keygraph Pro for U.S. 501(c)(3) nonprofits and seed or pre-Series-A startups. Learn who qualifies for the Keygraph Community Program and how to apply." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://keygraph.io/community-program" />
<meta property="og:image" content="https://keygraph.io/public/og-image.png" />
<meta property="og:site_name" content="Keygraph" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Community Program | Keygraph" />
<meta name="twitter:description" content="Free Keygraph Pro for U.S. 501(c)(3) nonprofits and seed or pre-Series-A startups. Learn who qualifies for the Keygraph Community Program and how to apply." />
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://keygraph.io/#organization",
      "name": "Keygraph",
      "legalName": "Keygraph Inc.",
      "url": "https://keygraph.io",
      "description": "Continuous agentic pentesting platform for the enterprise.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://keygraph.io/public/logo-full.svg",
        "contentUrl": "https://keygraph.io/public/web-app-manifest-512x512.png",
        "width": 512,
        "height": 512
      },
      "sameAs": ["https://github.com/KeygraphHQ"]
    }
  ]
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    { "@type": "Question", "name": "What about non-U.S. nonprofits?", "acceptedAnswer": { "@type": "Answer", "text": "The Nonprofit track is limited to U.S.-based 501(c)(3) organizations, so non-U.S. nonprofits are not eligible for it. Shannon OSS is free forever and self-hosted for anyone, and paid Keygraph Pro is available worldwide." } },
    { "@type": "Question", "name": "How Active Developers are measured", "acceptedAnswer": { "@type": "Answer", "text": "As defined in the Keygraph Terms of Service. We confirm the count with you during onboarding." } },
    { "@type": "Question", "name": "How long does free access last?", "acceptedAnswer": { "@type": "Answer", "text": "Free access renews monthly, with a quick annual eligibility re-certification. Your Order Form states your enrollment terms." } },
    { "@type": "Question", "name": "What if we need self-hosted or air-gapped?", "acceptedAnswer": { "@type": "Answer", "text": "The program is cloud-hosted only. For self-hosted, use Shannon OSS (free) or the Keygraph Enterprise plan." } },
    { "@type": "Question", "name": "EU data residency", "acceptedAnswer": { "@type": "Answer", "text": "Available. Request it when we follow up on your application." } },
    { "@type": "Question", "name": "What counts as a Graduation Event", "acceptedAnswer": { "@type": "Answer", "text": "Your free access runs until you graduate: closing a priced round, raising more than US $10 million in total outside funding, being acquired, or growing past 20 Active Developers. The Order Form has the precise definition." } },
    { "@type": "Question", "name": "The 90-day Conversion Window", "acceptedAnswer": { "@type": "Answer", "text": "After a Graduation Event you have 90 days to convert to a paid plan, with free access continuing in the meantime. Your team keeps working; nothing migrates." } },
    { "@type": "Question", "name": "Conversion pricing", "acceptedAnswer": { "@type": "Answer", "text": "You convert at our then-current published pricing, based on your actual Active Developer count and enabled modules." } }
  ]
}
</script>
<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=Geist:wght@300;400;500;600;700&family=Space+Mono:wght@400;700&display=swap" rel="stylesheet" />
<link rel="icon" href="public/favicon.svg?v=4" type="image/svg+xml">
<meta name="color-scheme" content="light" />
<meta name="theme-color" content="#F0F1EF" />
<link rel="apple-touch-icon" href="public/web-app-manifest-512x512.png?v=4" />
<link rel="manifest" href="public/site.webmanifest" />
<link rel="dns-prefetch" href="https://www.googletagmanager.com" />
<link rel="icon" href="public/favicon.ico?v=4" type="image/x-icon" sizes="32x32">
<style>

  @font-face { font-family: 'Charter'; font-style: normal; font-weight: 400; src: local('Charter'), local('Charter Regular'); }
  @font-face { font-family: 'Charter'; font-style: normal; font-weight: 700; src: local('Charter Bold'); }

  :root {
    --container: 1200px;
    --gutter: 24px;
    /* Light-first palette (Attio-light redesign). Dark ramp survives only in
       deliberate dark surfaces: footer, .dark-band, featured cards. */
    --bg: #F0F1EF;
    --bg-alt: #E5E7E3;
    --bg-dark: #050B0E;
    --white: #FBFBFA;
    --text: #050B0E;
    --text-sec: #565B64;
    --text-tri: #7D7D84;
    --border: #D4D6D1;
    --border-lt: #E5E7E3;
    --teal: #161C23;
    --accent: #050B0E;
    /* Slate-teal bloom (derived from --teal #161C23). Gradients/glows ONLY. */
    --bloom: #C4D4D2;
    --bloom-soft: #DCE6E4;
    --glow: rgba(22, 60, 55, 0.12);
    --sans: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
    --serif: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
    --mono: 'Space Mono', monospace;
    /* Fluid typography scale (Linear-style), scales between ~360px and ~1600px viewport */
    --fs-xs:      clamp(10px, 0.75vw, 12px);
    --fs-sm:      clamp(12px, 0.95vw, 14px);
    --fs-base:    clamp(14px, 1.05vw, 16px);
    --fs-md:      clamp(14px, 1.15vw, 17px);
    --fs-lg:      clamp(16px, 1.4vw, 20px);
    --fs-xl:      clamp(18px, 1.7vw, 24px);
    --fs-2xl:     clamp(20px, 2.2vw, 32px);
    --fs-3xl:     clamp(28px, 4vw, 56px);
    --fs-display: clamp(40px, 6vw, 96px);

  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { font-family: var(--sans); background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; }
  ::selection { background: var(--text); color: var(--bg); }
  a { color: inherit; text-decoration: none; }
  :focus-visible { outline: 2px solid var(--text-sec); outline-offset: 2px; }
  button { font-family: var(--sans); cursor: pointer; }
  img { max-width: 100%; }

  /* Fade-in animation */
  .fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  .fade-in.visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Nav */
  nav.scrolled {
    background: rgba(240, 241, 239, 0.98);
    border-bottom: 1px solid var(--border);
  }
  /* Products and Docs dropdowns anchor directly under their trigger buttons. */
  #products-dropdown, #docs-dropdown { position: relative; }
  .nav-links a:hover { color: var(--text); }

  /* Products dropdown */

  /* Product mega-dropdown: two-column panel */
  #products-dropdown .mega-platform {
    padding: 22px;
    background: var(--bg-alt);
    border-radius: 10px;
    display: block;
    margin: 0;
    transition: background 0.15s;
  }
  #products-dropdown .mega-platform:hover {
    background: var(--border-lt);
    color: var(--text);
  }
  #products-dropdown .mega-platform-label {
    display: block;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-tri);
    margin-bottom: 14px;
  }
  #products-dropdown .mega-platform-title {
    display: block;
    font-family: var(--sans);
    font-size: 20px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 10px;
    letter-spacing: -0.01em;
  }
  #products-dropdown .mega-platform-desc {
    display: block;
    font-size: 13px;
    color: var(--text-sec);
    line-height: 1.55;
  }
  #products-dropdown .mega-products {
    padding: 4px 0;
    background: transparent;
    margin: 0;
  }
  #products-dropdown .mega-products-heading {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-tri);
    padding: 10px 12px 12px;
    border-bottom: 1px solid var(--border-lt);
    margin-bottom: 4px;
  }
  #products-dropdown .mega-products a {
    display: block;
    padding: 9px 12px;
    border-radius: 6px;
    font-size: 14px;
    color: var(--text-sec);
    transition: all 0.15s;
    font-weight: 500;
    background: transparent;
    margin: 0;
  }
  #products-dropdown .mega-products a:hover {
    background: rgba(5,11,14,0.04);
    color: var(--text);
  }
  @media (max-width: 760px) {
    #products-dropdown .nav-dropdown {
      min-width: 280px;
      grid-template-columns: 1fr;
      gap: 6px;
    }
  }
  /* Solutions mega-dropdown (hidden for now) */
  #solutions-dropdown { display: none; }
  #solutions-dropdown .nav-dropdown {
    min-width: 680px; padding: 12px; left: 50%; transform: translateX(-50%) translateY(-4px);
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  }
  .mega-section {
    background: var(--bg-alt); border-radius: 12px; padding: 16px;
  }
  .mega-section-title {
    font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--text-tri); margin-bottom: 10px; padding: 0 2px;
  }
  .mega-section a {
    display: flex; align-items: center; gap: 10px; padding: 7px 8px;
    border-radius: 8px; font-size: 13px; color: var(--text-sec); transition: all 0.15s;
  }
  .mega-section a:hover { background: rgba(5,11,14,0.04); color: var(--text); }
  .mega-section a .mega-icon {
    width: 28px; height: 28px; border-radius: 6px; display: flex;
    align-items: center; justify-content: center; flex-shrink: 0;
    background: rgba(5,11,14,0.06); color: var(--text-sec);
  }
  .mega-section a:hover .mega-icon { background: rgba(5,11,14,0.10); color: var(--text); }
  .mega-section a .mega-icon svg { width: 14px; height: 14px; }
  .mega-section a span:not(.mega-icon) { font-weight: 450; }
  .mega-section .mega-cta {
    display: inline-flex; align-items: center; gap: 8px; margin-top: 4px;
    padding: 8px 16px; background: #050B0E; color: #FBFBFA;
    border-radius: 8px; font-size: 13px; font-weight: 600; transition: all 0.2s;
  }
  .mega-section .mega-cta:hover { background: var(--teal); color:#FBFBFA; transform: translateY(-1px); }
  .mega-section .mega-cta .mega-icon { background: rgba(0,0,0,0.08); color: var(--text); }
  .mega-section .mega-cta:hover .mega-icon { background: rgba(0,0,0,0.12); color: var(--text); }
  @media (max-width: 900px) {
    #solutions-dropdown .nav-dropdown { min-width: unset; grid-template-columns: 1fr; gap: 8px; }
  }
  .nav-login:hover { color: var(--text); }
  .btn-secondary {
    background: transparent; color: var(--text);
    border: 1px solid var(--border); border-radius: 10px;
    padding: 12px 28px; font-size: 15px; font-weight: 500;
    transition: all 0.2s;
  }
  .btn-secondary:hover { border-color: var(--text); }

  /* Layout */
  .container { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
  .section { padding: 80px var(--gutter); max-width: var(--container); margin: 0 auto; }
  .divider { border-top: 1px solid var(--border); margin: 0 40px; }

  /* Footer */
  footer .nav-logo { color: var(--text); }
  .footer-link:hover { color: var(--text); }
  .footer-socials a:hover { color: var(--text); }

  /* Page transitions */
  .page { animation: fadeUp 0.4s ease; }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Legal document styling */
  .legal-content {
    padding-top: 100px;
    min-height: 100vh;
  }

  .legal-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 80px 40px;
  }

  .legal-content h1 {
    font-family: var(--serif);
    font-size: clamp(30px, 4vw, 44px);
    letter-spacing: -0.02em;
    margin-bottom: 8px;
  }

  .legal-content .updated {
    font-size: 14px;
    color: var(--text-sec);
    margin-bottom: 48px;
  }

  .legal-content > p {
    font-size: 15px;
    color: var(--text-sec);
    line-height: 1.75;
    margin-bottom: 16px;
  }

  .legal-content h2 {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 400;
    margin-top: 48px;
    margin-bottom: 16px;
    color: var(--text);
  }

  .legal-content h3 {
    font-family: var(--sans);
    font-size: 16px;
    font-weight: 600;
    margin-top: 24px;
    margin-bottom: 8px;
    color: var(--text);
  }

  .legal-content p {
    font-size: 15px;
    color: var(--text-sec);
    line-height: 1.75;
    margin-bottom: 16px;
  }

  .legal-content ul {
    padding-left: 24px;
    margin-bottom: 16px;
  }

  .legal-content li {
    font-size: 15px;
    color: var(--text-sec);
    line-height: 1.75;
    margin-bottom: 8px;
  }

  .legal-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 32px;
    font-size: 14px;
  }

  .legal-content table th {
    background: var(--bg-alt);
    padding: 12px 16px;
    text-align: left;
    font-weight: 600;
    color: var(--text);
    border-bottom: 2px solid var(--border);
  }

  .legal-content table td {
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    color: var(--text-sec);
  }

  /* Hamburger menu */

  /* Mobile nav menu */
  .nav-mobile-menu a:hover { color: var(--text); }

  /* Responsive */
  @media (max-width: 768px) {
    nav { padding: 0 var(--gutter); background: #F0F1EF !important; backdrop-filter: none; }
    .nav-links { display: none !important; }
    .nav-divider { display: none !important; }
    .nav-right .nav-login { display: none !important; }
    .nav-hamburger { display: flex !important; }
    .nav-right .btn-primary { display: none !important; }
    body { overflow-x: hidden; }
    .section { padding: 48px var(--gutter); }
    .legal-container { padding: 60px var(--gutter); }
    footer { padding: 32px var(--gutter) 20px; }
    .footer-bottom { flex-direction: column; gap: 12px; }
    .divider { margin: 0 20px; }
  }

  @media (max-width: 1040px) {
    .footer-inner { grid-template-columns: repeat(3, 1fr); }
    .footer-col-platform { grid-column: 2 / -1; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
  }
  @media (max-width: 860px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
    .footer-col-platform { grid-column: auto; display: flex; flex-direction: column; gap: 0; }
  }
  @media (max-width: 520px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 24px; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-products-grid { grid-template-columns: 1fr; }
  }

  /* Sticky footer, ensures footer color fills the bottom of the viewport */
  html { background: var(--bg); overflow-x: hidden; /* the 100vw hero bloom (R6) overspills ~7px; clip it */ }
  body { min-height: 100vh !important; display: flex !important; flex-direction: column !important; }
  body > footer { margin-top: auto !important; }

  /* Products dropdown: 3-box layout (platform left, products top-right, open source bottom-right) */
  #products-dropdown .nav-dropdown {
    width: 520px;
    padding: 14px;
    left: -12px;
    right: auto;
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    grid-template-areas: "products opensource" "products platform";
    gap: 10px;
    align-items: stretch;
  }
  #products-dropdown .mega-platform {
    grid-area: platform;
    display: flex;
    flex-direction: column;
    padding: 22px var(--gutter);
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: 10px;
    margin: 0;
    transition: background 0.15s, border-color 0.15s;
    text-decoration: none;
    color: var(--text-sec);
  }
  #products-dropdown .mega-platform:hover { background: var(--border-lt); border-color: var(--text-tri); }
  #products-dropdown .mega-platform-label { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-tri); font-weight: 700; margin-bottom: 0; }
  #products-dropdown .mega-platform-title { display: block; font-family: var(--sans); font-size: 21px; font-weight: 600; color: var(--text); margin: 18px 0 10px; letter-spacing: -0.01em; line-height: 1.15; }
  #products-dropdown .mega-platform-desc { display: block; font-size: 13px; color: var(--text-sec); line-height: 1.5; flex: 1; }
  #products-dropdown .mega-platform-arrow { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); margin-top: 18px; font-weight: 700; }
  #products-dropdown .mega-box { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 10px; padding: 14px 12px 12px; }
  #products-dropdown .mega-box-products { grid-area: products; }
  #products-dropdown .mega-box-opensource { grid-area: opensource; }
  #products-dropdown .mega-box-platform { grid-area: platform; }
  #products-dropdown .mega-box-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-tri); font-weight: 700; margin-bottom: 10px; padding: 0 8px; }
  #products-dropdown .mega-box-items { display: flex; flex-direction: column; }
  #products-dropdown .mega-box-products .mega-box-items { display: grid; grid-auto-flow: column; grid-template-rows: repeat(4, auto); gap: 0 4px; }
  #products-dropdown .mega-box-items a { display: block; padding: 7px 8px; border-radius: 6px; font-size: 13px; font-weight: 500; color: var(--text-sec); background: transparent; border: 0; margin: 0 0 1px 0; letter-spacing: -0.005em; transition: background 0.15s, color 0.15s; text-decoration: none; }
  #products-dropdown .mega-box-items a:hover { background: rgba(5,11,14,0.04); color: var(--text); }
  @media (max-width: 760px) {
    #products-dropdown .nav-dropdown { min-width: 280px; width: auto; grid-template-columns: 1fr; grid-template-areas: "products" "opensource" "platform"; }
    #products-dropdown .mega-box-products .mega-box-items { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: 1fr; }
  }

  /* >>> KG-HEADER-FOOTER:START, synced from index.html, DO NOT EDIT individual rules; sync via the home page >>> */
  nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    padding: 0;
    background: rgba(240, 241, 239, 0.92);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border-lt);
  }
  .nav-inner {
    max-width: var(--container); margin: 0 auto;
    padding: 0 var(--gutter);
    display: flex; align-items: center; justify-content: space-between;
    height: 60px;
    position: relative;
  }
  .nav-left { display: flex; align-items: center; gap: 28px; }
  .nav-logo { font-family: var(--sans); font-size: clamp(18px, 1.6vw, 24px); font-weight: 700; color: var(--text); }
  .nav-divider { width: 1px; height: 18px; background: var(--text-tri); }
  .nav-links { display: flex; gap: 22px; font-size: 13px; color: var(--text-sec); align-items: center; }
  .nav-links a { transition: color 0.2s; }
  .nav-links a:hover { color: var(--text); }
  .nav-links a.active { color: var(--text); font-weight: 500; }
  .nav-right { display: flex; align-items: center; gap: 14px; }
  .nav-login { font-size: 13px; color: var(--text); font-weight: 500; }
  .nav-login:hover { color: var(--text); }
  nav .btn-primary {
    background: var(--text);
    color: var(--white);
    border: none;
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 13px;
    transition: all 0.2s;
  }
  nav .btn-primary:hover { background: var(--teal); color: var(--white); }
  .btn-primary {
    background: var(--text); color: var(--white); border: none;
    border-radius: 999px; padding: 8px 20px; font-size: var(--fs-md);
    font-weight: 600; transition: all 0.2s;
  }
  .btn-primary:hover { background: var(--teal); transform: translateY(-1px); }
  .nav-dropdown-wrap { position: relative; }
  .nav-dropdown-trigger {
    background: none; border: none; font-size: 13px;
    color: var(--text-sec); font-family: var(--sans);
    cursor: pointer; display: flex; align-items: center; gap: 4px;
    padding: 0; transition: color 0.2s;
  }
  .nav-dropdown-trigger:hover, .nav-dropdown-trigger.active { color: var(--text); }
  .nav-dropdown-trigger svg { transition: transform 0.2s; }
  .nav-dropdown-wrap:hover .nav-dropdown-trigger svg { transform: rotate(180deg); }
  .nav-dropdown {
    position: absolute; top: calc(100% + 12px); left: -12px;
    background: var(--white); border: 1px solid var(--border);
    border-radius: 12px; padding: 10px; min-width: 220px;
    box-shadow: 0 12px 32px rgba(5,11,14,0.10);
    opacity: 0; visibility: hidden;
    transform: translateY(-4px);
    transition: all 0.2s ease;
    z-index: 200;
  }
  .nav-dropdown-wrap:hover .nav-dropdown {
    opacity: 1; visibility: visible; transform: translateY(0);
  }
  .nav-dropdown > a {
    display: block; padding: 10px 14px; border-radius: 10px;
    font-size: 14px; color: var(--text-sec); transition: all 0.15s;
    background: var(--bg-alt); margin-bottom: 4px;
  }
  .nav-dropdown > a:last-child { margin-bottom: 0; }
  .nav-dropdown > a:hover { background: var(--border-lt); color: var(--text); }
  .nav-dropdown a .dd-label { font-weight: 500; color: var(--text); display: block; margin-bottom: 2px; }
  .nav-dropdown-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 240px; left: -12px; right: auto; }
  .nav-dropdown-docs > a { margin-bottom: 0; }
  .nav-hamburger {
    display: none; flex-direction: column; gap: 5px;
    background: none; border: none; padding: 6px; cursor: pointer; margin-left: 8px;
  }
  .nav-hamburger span {
    display: block; width: 22px; height: 2px;
    background: var(--text); border-radius: 2px; transition: all 0.25s;
  }
  .nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .nav-mobile-menu {
    display: none;
    position: fixed; top: 60px; left: 0; right: 0;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
    padding: 8px var(--gutter) 20px;
    z-index: 99;
    flex-direction: column;
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
    max-height: calc(100vh - 60px);
    overflow-y: auto;
  }
  .nav-mobile-menu.open { display: flex; }
  .nav-mobile-menu a {
    display: block; padding: 11px 0; font-size: var(--fs-md);
    color: var(--text-sec);
    border-bottom: 1px solid var(--border-lt);
    transition: color 0.2s;
  }
  .nav-mobile-menu a:hover { color: var(--text); }
  .nav-mobile-menu a:last-of-type { border-bottom: none; }
  .nav-mobile-section-label {
    font-family: var(--mono);
    font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
    font-weight: 700; color: var(--text-tri);
    padding: 18px 0 4px;
  }
  .nav-mobile-menu > .nav-mobile-section-label:first-child { padding-top: 6px; }
  .mobile-nav-cta {
    margin-top: 12px; text-align: center;
    background: var(--text); color: var(--bg) !important;
    padding: 12px !important; border-radius: 8px;
    font-weight: 600; border-bottom: none !important;
  }
  .hero-lede-row { display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
  .hero-lede-row .hero-lede { margin: 0; flex: 0 0 auto; max-width: none; white-space: nowrap; }
  .hero-lede-row .shannon-badge { flex: 0 0 auto; max-width: none; white-space: nowrap; }
  .hero-lede-row .shannon-badge-copy { white-space: nowrap; line-height: 1.4; }
  .shannon-callout-section { max-width: var(--container); margin: 0 auto; padding: 32px var(--gutter) 24px; text-align: right; }
  .shannon-badge {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 8px 14px;
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: 100px;
    font-family: var(--sans); font-size: clamp(13px, 1.05vw, 16px); line-height: 1.3;
    color: var(--text-sec);
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s;
    max-width: 100%;
  }
  .shannon-badge:hover { border-color: var(--text); transform: translateY(-1px); }
  .shannon-badge-gh { width: 14px; height: 14px; color: var(--text); flex-shrink: 0; }
  .shannon-badge-copy strong { color: var(--text); font-weight: 600; }
  .shannon-badge-logo { height: 14px; width: auto; vertical-align: middle; margin: 0 2px; object-fit: contain; position: relative; top: -1px; filter: invert(1); }
  .shannon-badge-stars { display: inline-flex; align-items: center; gap: 5px; padding-left: 10px; margin-left: 4px; border-left: 1px solid var(--border); color: var(--text); font-weight: 600; flex-shrink: 0; }
  .shannon-badge-stars svg { width: 12px; height: 12px; color: var(--text); flex-shrink: 0; }
  footer {
    background: var(--bg-dark);
    color: var(--text);
    padding: 44px 0 28px;
  }
  /* Dark-anchor footer: re-scope the ramp tokens so nested var() rules
     (nav-logo, link hovers) keep resolving dark values on the light site.
     Scoped to body > footer so in-article footers (e.g. blog posts) stay light. */
  body > footer {
    --bg: #050B0E; --bg-alt: #0D1318; --white: #F0F1EF;
    --text: #E5E7E3; --text-sec: #8C8C91; --text-tri: #565B64;
    --border: #20262F; --border-lt: #12181E; --accent: #E5E7E3;
  }
  footer .nav-logo { color: var(--text); }
  .footer-inner {
    max-width: var(--container); margin: 0 auto;
    padding: 0 var(--gutter);
    display: grid; grid-template-columns: 1.2fr 1.7fr 1.1fr 1fr 1fr; gap: 36px; align-items: start;
  }
  .footer-col { display: flex; flex-direction: column; }
  .footer-products-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .footer-products-grid > div { display: flex; flex-direction: column; }
  .footer-brand p { color: #686A72; font-size: clamp(13px, 1.05vw, 16px); margin-top: 8px; max-width: 200px; line-height: 1.6; }
  .footer-col-title {
    font-family: var(--mono); font-size: clamp(10px, 0.75vw, 12px); color: #686A72;
    margin-bottom: 10px; letter-spacing: 0.1em; text-transform: uppercase;
  }
  .footer-link { font-size: clamp(13px, 1.05vw, 16px); color: #9B9A9E; margin-bottom: 7px; display: block; transition: color 0.2s; }
  .footer-link:hover { color: var(--text); }
  .footer-bottom {
    max-width: var(--container); margin: 24px auto 0; padding: 18px var(--gutter) 0;
    border-top: 1px solid #161C23;
    display: flex; justify-content: space-between;
    font-size: clamp(12px, 0.95vw, 14px); color: #686A72;
  }
  .footer-socials { display: flex; align-items: center; gap: 16px; }
  .footer-socials a { color: #686A72; transition: color 0.2s; }
  .footer-socials a:hover { color: var(--text); }
  .footer-link-platform { margin-top: 22px; font-weight: 500; border-top: 1px solid var(--border-lt); padding-top: 18px; transition: color 0.2s; }
  .footer-link-platform:hover { color: var(--accent); }

  @media (max-width: 1040px) {
    .footer-inner { grid-template-columns: repeat(3, 1fr); }
    .footer-col-platform { grid-column: 2 / -1; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; }
  }
  @media (max-width: 860px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
    .footer-col-platform { grid-column: auto; display: flex; flex-direction: column; gap: 0; }
  }
  @media (max-width: 520px) {
    .footer-inner { grid-template-columns: 1fr 1fr; gap: 24px; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-products-grid { grid-template-columns: 1fr; }
  }
    @media (max-width: 760px) {
    .nav-links, .nav-divider, .nav-login { display: none !important; }
    .nav-right .btn-primary { display: none !important; }
    .nav-hamburger { display: flex !important; }
    /* Mobile overflow safety: prevent wide SVG/code/table content from breaking layout */
    html, body { overflow-x: hidden; max-width: 100vw; }
    img, svg, table, pre, video, iframe { max-width: 100%; height: auto; }
    pre, code { white-space: pre-wrap; word-break: break-word; }
  }
  /* <<< KG-HEADER-FOOTER:END <<< */
</style>
<style id="kg-a11y">
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
.kg-skip-link{position:absolute;left:-9999px;top:0;z-index:2147483647;display:inline-block;padding:10px 16px;background:#FBFBFA;color:#050B0E;font:600 14px/1.2 var(--sans,-apple-system,system-ui,sans-serif);text-decoration:none;border-radius:0 0 8px 0}
.kg-skip-link:focus{left:0}
#main-content:focus{outline:none}
</style>
<style id="kg-legal-extra">
  .legal-content h4 { font-family: var(--sans); font-size: 15px; font-weight: 600; margin-top: 20px; margin-bottom: 6px; color: var(--text); }
  .legal-content strong { color: var(--text); font-weight: 600; }
  .legal-content a { color: var(--text); text-decoration: underline; text-underline-offset: 2px; }
  .legal-content ul ul { margin-top: 6px; margin-bottom: 10px; }
  .legal-content blockquote { margin: 20px 0; padding: 8px 18px; border-left: 3px solid var(--border); color: var(--text-sec); }
  .legal-content table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 14px; }
  .legal-content th, .legal-content td { border: 1px solid var(--border); padding: 10px 12px; text-align: left; vertical-align: top; line-height: 1.6; color: var(--text-sec); }
  .legal-content th { color: var(--text); font-weight: 600; background: rgba(127,127,127,0.06); }
  .legal-content table p { margin: 0; }
</style>
<style id="kg-community-program">
  /* Centered column with legal-page margins; borderless detail lists */
  .cp-page { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) 96px; }
  .cp-hero { padding: 160px 0 48px; position: relative; isolation: isolate; }
  /* Hero bloom (Attio-light): slate-teal wash behind the hero, full-bleed.
     CRITICAL: `isolation: isolate` is REQUIRED on the host. The ::before uses
     z-index:-1; without a stacking context on the host it paints BENEATH the
     body's opaque background and is completely invisible (verified live). */
  .cp-hero::before {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    top: calc(-1 * (var(--banner-h, 40px) + 60px));
    bottom: -160px; /* no demo-embed section after this hero */
    left: 50%; transform: translateX(-50%); width: 100vw;
    background:
      radial-gradient(72% 44% at 50% 32%, rgba(251,251,250,0.85) 0%, rgba(251,251,250,0) 60%),
      radial-gradient(94% 50% at 50% 42%, var(--bloom) 0%, rgba(196,212,210,0) 70%),
      linear-gradient(180deg, var(--bg) 7%, var(--bloom-soft) 34%, var(--bg) 94%);
    /* Fade the bottom edge so the wash never cuts hard into canvas at
       viewports where the pseudo outlives the demo window. */
    -webkit-mask-image: linear-gradient(180deg, #000 26%, transparent 93%);
    mask-image: linear-gradient(180deg, #000 26%, transparent 93%);
  }
  .cp-eyebrow { font-family: var(--mono); font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--text-tri); margin-bottom: 18px; text-align: center; }
  .cp-hero h1 { font-size: clamp(36px, 4.6vw, 64px); font-weight: 600; letter-spacing: -0.045em; line-height: 1.02; margin: 0 0 20px; color: var(--text); white-space: nowrap; text-align: center; }
  .cp-hero .updated { font-size: 18px; font-weight: 400; color: var(--text-tri); line-height: 1.5; max-width: 720px; margin: 0 0 28px; }
  .cp-page p { font-size: 16px; line-height: 1.7; color: var(--text-sec); margin: 0 0 16px; }
  .cp-page strong { color: var(--text); }
  .cp-page a:not(.cp-cta) { color: var(--text); text-decoration: underline; text-underline-offset: 2px; }
  .cp-page .cp-blurb { font-size: clamp(30px, 4vw, 48px); font-weight: 500; line-height: 1.2; letter-spacing: -0.025em; margin: 0; max-width: none; text-align: left; color: var(--text); }
  .cp-blurb-sec { padding: 40px 0 8px; }
  .cp-wq-note { font-size: 14.5px !important; line-height: 1.65 !important; color: var(--text-tri) !important; margin: 28px 0 0 !important; }
  .cp-blurb-bright { color: var(--text); }
  .cp-blurb-dim { color: var(--text-tri); }
  @media (max-width: 520px) { .cp-page .cp-blurb { font-size: clamp(22px, 5vw, 28px); } }
  .cp-hero-sub { font-size: 15px !important; line-height: 1.65 !important; color: var(--text-sec) !important; text-align: center; max-width: 560px; margin: 32px auto 0 !important; }
  .cp-hero-cta { text-align: center; margin: 28px 0 0 !important; }
  a.cp-cta { display: inline-flex; align-items: center; justify-content: center; padding: 13px 24px; border-radius: 999px; font-size: 14px; font-weight: 600; background: var(--accent); border: 1px solid var(--accent); color: #FBFBFA; text-decoration: none; transition: all 0.2s; }
  a.cp-cta:hover { background: var(--teal); border-color: var(--teal); transform: translateY(-1px); }
  /* Sections: whitespace-separated, no borders */
  .cp-sec { margin-top: 72px; padding-top: 72px; border-top: 1px solid var(--border-lt); }
  .cp-sec h2 { font-family: var(--sans); font-size: clamp(32px, 4vw, 48px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; color: var(--text); margin: 0 0 14px; }
  /* Alternating near-white band (full-bleed behind a max-width section).
     `isolation: isolate` REQUIRED — same z-index:-1 paint-order trap as R6. */
  .band-white { position: relative; isolation: isolate; }
  .band-white::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    left: 50%; transform: translateX(-50%); width: 100vw;
    background: var(--white);
    border-top: 1px solid var(--border-lt);
    border-bottom: 1px solid var(--border-lt);
  }
  /* The band's own hairlines replace the section separators (avoid doubling),
     both on the band itself and on the section that follows it. */
  .cp-sec.band-white { border-top: 0; padding-bottom: 72px; }
  .band-white + .cp-sec { border-top: 0; }
  /* Full-bleed dark anchor band. Re-scopes the ramp so descendants render
     light; bloom hands off to black per amended R4b. */
  .band-dark { position: relative; isolation: isolate; color: var(--text);
    --bg: #050B0E; --bg-alt: #0D1318; --white: #F0F1EF;
    --text: #E5E7E3; --text-sec: #8C8C91; --text-tri: #565B64;
    --border: #20262F; --border-lt: #12181E; --accent: #E5E7E3; }
  .band-dark::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    left: 50%; transform: translateX(-50%); width: 100vw;
    background: #050B0E;
  }
  .cp-sec.band-dark { padding: 88px 0 96px; border-top: 0; }
  .band-dark + .cp-sec { border-top: 0; }
  /* Track cards (the only bubbles besides the value callout) */
  /* Split section (Linear-style: heading left, content right) */
  .cp-split { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
  .cp-split-left h2 { margin: 0; }
  .cp-split-lede { font-size: clamp(20px, 2vw, 25px) !important; line-height: 1.4 !important; color: var(--text) !important; margin: 4px 0 16px !important; }
  .cp-split-sub { font-size: 14.5px !important; line-height: 1.65 !important; color: var(--text-tri) !important; margin: 0 0 32px !important; }
  .cp-split-right .cp-tracks { margin: 0 0 8px; }
  @media (max-width: 860px) { .cp-split { grid-template-columns: 1fr; gap: 24px; } }
  .cp-tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 24px 0 20px; }
  .cp-track { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 16px; padding: 26px; }
  .cp-track-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--text-tri); margin-bottom: 14px; }
  .cp-track h3 { font-family: var(--sans); font-size: 18px; font-weight: 500; letter-spacing: -0.005em; color: var(--text); line-height: 1.3; margin: 0 0 6px; }
  .cp-track-sub { font-size: 14px !important; color: var(--text-sec); margin: 0 0 16px !important; }
  .cp-track-benefit { font-size: 14px !important; line-height: 1.55; color: var(--text-sec); margin: 0 !important; padding-top: 14px; border-top: 1px solid var(--border-lt); }
  .cp-track-benefit strong { color: var(--text); }
  /* Borderless detail lists */
  .cp-list { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 44px; margin-top: 32px; }
  .cp-item h3 { font-family: var(--sans); font-size: 16px; font-weight: 500; letter-spacing: -0.005em; color: var(--text); line-height: 1.3; margin: 0 0 6px; }
  .cp-item p { font-size: 14px !important; line-height: 1.55; margin: 0 !important; }
  .cp-cta-final { text-align: center; background: radial-gradient(72% 82% at 50% 56%, var(--bloom) 0%, rgba(196,212,210,0) 68%); /* bloom out */ }
  .cp-cta-final .cp-split-lede { margin-left: auto !important; margin-right: auto !important; max-width: 640px; }
  /* FAQ accordions */
  .cp-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; align-items: start; margin-top: 32px; }
  .cp-faq-col { display: grid; gap: 10px; min-width: 0; align-content: start; }
  @media (max-width: 760px) { .cp-faq { grid-template-columns: 1fr; } }
  .cp-faq details { background: var(--bg-alt); border: 1px solid var(--border-lt); border-radius: 12px; overflow: hidden; transition: border-color 0.2s; }
  .cp-faq details[open] { border-color: var(--border); }
  .cp-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px var(--gutter); font-size: 15px; font-weight: 600; color: var(--text); letter-spacing: -0.005em; }
  .cp-faq summary::-webkit-details-marker { display: none; }
  .cp-faq summary::after { content: ""; flex-shrink: 0; width: 9px; height: 9px; margin-top: -2px; border-right: 2px solid var(--text-tri); border-bottom: 2px solid var(--text-tri); transform: rotate(45deg); transition: transform 0.2s; }
  .cp-faq details[open] > summary::after { transform: rotate(-135deg); }
  .cp-faq .cp-faq-a { padding: 0 var(--gutter) 18px; }
  .cp-faq .cp-faq-a p { font-size: 14px !important; line-height: 1.6 !important; margin: 0 !important; }
  /* Responsive */
  @media (max-width: 700px) {
    .cp-tracks, .cp-list { grid-template-columns: 1fr; }
  }
  @media (max-width: 680px) {
    .cp-hero h1 { white-space: normal; font-size: clamp(30px, 9vw, 42px); }
  }
  @media (max-width: 640px) {
    .cp-page { padding: 0 var(--gutter) 64px; }
    .cp-hero { padding: 120px 0 32px; }
    .cp-sec { margin-top: 44px; padding-top: 44px; }
    .cp-sec.band-white { padding-bottom: 44px; }
    .cp-track { padding: 22px 18px; }
  }
  @media (max-width: 560px) {
  }
</style>
</head>

<body>
<a class="kg-skip-link" href="#main-content">Skip to main content</a>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5V39ZK9V"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

<nav id="main-nav">
  <div class="nav-inner">
    <div class="nav-left">
      <a href="index.html" class="nav-logo">Keygraph</a>
    </div>
    <div class="nav-right">
      <div class="nav-links">
        <div class="nav-dropdown-wrap" id="products-dropdown">
          <button class="nav-dropdown-trigger" data-page="product">
            Products
            <svg width="12" height="12" viewBox="0 0 12 12" fill="none"><path d="M3 4.5L6 7.5L9 4.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
          </button>
          <div class="nav-dropdown">
            <div class="mega-box mega-box-products">
              <div class="mega-box-label">Products</div>
              <div class="mega-box-items">
                <a href="agentic-whitebox-pentester.html">Whitebox Pentester</a>
                <a href="agentic-blackbox-pentester.html">Blackbox Pentester</a>
                <a href="business-logic-testing.html">Business Logic</a>
                <a href="agentic-sast.html">Agentic SAST</a>
                <a href="sca.html">SCA</a>
                <a href="secrets-scanning.html">Secrets Scanning</a>
              </div>
            </div>
            <div class="mega-box mega-box-opensource">
              <div class="mega-box-label">Open Source</div>
              <div class="mega-box-items">
                <a href="open-source.html">Shannon</a>
              </div>
            </div>
            <div class="mega-box mega-box-platform">
              <div class="mega-box-label">Findings</div>
              <div class="mega-box-items">
                <a href="code-remediation.html">Code Remediation</a>
  <a href="reporting-and-analytics.html">Reporting &amp; Analytics</a>
              </div>
            </div>
          </div>
        </div>
        <a href="enterprise.html" data-page="enterprise">Enterprise</a>
        <a href="pricing.html" data-page="pricing">Pricing</a>
        <a href="contact.html" data-page="contact">Contact</a>
      </div>
      <div class="nav-divider"></div>
      <a href="https://login.keygraph.app/login" class="nav-login">Login</a>
      <a href="https://cal.com/team/keygraph/keygraph-technical-demo" class="btn-primary" style="display:inline-block;text-decoration:none">Schedule a Technical Demo</a>
      <button class="nav-hamburger" id="nav-hamburger" aria-label="Open menu">
        <span></span><span></span><span></span>
      </button>
    </div>
  </div>
</nav>
<main id="main-content" tabindex="-1">
<div class="nav-mobile-menu" id="nav-mobile-menu">
  <div class="nav-mobile-section-label">Products</div>
  <a href="agentic-whitebox-pentester.html">Whitebox Pentester</a>
  <a href="agentic-blackbox-pentester.html">Blackbox Pentester</a>
  <a href="business-logic-testing.html">Business Logic</a>
  <a href="agentic-sast.html">Agentic SAST</a>
  <a href="sca.html">SCA</a>
  <a href="secrets-scanning.html">Secrets Scanning</a>
  <div class="nav-mobile-section-label">Open Source</div>
  <a href="open-source.html">Shannon</a>
  <div class="nav-mobile-section-label">Findings</div>
  <a href="code-remediation.html">Code Remediation</a>
  <a href="reporting-and-analytics.html">Reporting &amp; Analytics</a>
  <div class="nav-mobile-section-label">Company</div>
  <a href="enterprise.html">Enterprise</a>
  <a href="pricing.html">Pricing</a>
  <a href="contact.html">Contact</a>
  <a href="https://login.keygraph.app/login">Login</a>
  <a href="https://cal.com/team/keygraph/keygraph-technical-demo" class="mobile-nav-cta">Schedule a Technical Demo</a>
</div>

<div class="cp-page">

<div class="cp-hero">
<div class="cp-eyebrow">Keygraph Community Program</div>
        <h1>Offense is scaling.<br>Access to defense should too.</h1>
<p class="cp-hero-sub">Community Program participants run the full platform, every module included, at $0 in cloud service fees; you pay only for your own AI provider usage. (Paid Pro starts at $50 per Active Developer per month.)</p>
<p class="cp-hero-cta"><a class="cp-cta" href="https://docs.google.com/forms/d/e/1FAIpQLSeQs4HV97_0p3L4gZnHCAdBLnd2eqrbTnZPhbSuhdLqSQLygQ/viewform">Apply to the Community Program</a></p>
</div>

<section class="cp-blurb-sec">
<p class="cp-blurb">
  <span class="cp-blurb-bright">Continuous, proof-based security testing should be available to every team.</span>
  <span class="cp-blurb-dim"> We started with Shannon, the open-source whitebox AI pentester.</span>
  <span class="cp-blurb-bright"> The Community Program is the next step: our managed platform, free for nonprofits and early-stage startups.</span>
</p>
</section>

<section class="cp-sec band-white">
<h2>Who Qualifies</h2>
<div class="cp-tracks">
  <div class="cp-track">
    <div class="cp-track-label">Nonprofit Track</div>
    <h3>U.S.-based 501(c)(3) nonprofits</h3>
    <p class="cp-track-sub">Registered 501(c)(3) organizations in the United States.</p>
    <p class="cp-track-benefit"><strong>100% free Keygraph Pro</strong>, for as long as you qualify. No cap on Active Developers.</p>
  </div>
  <div class="cp-track">
    <div class="cp-track-label">Startup Track</div>
    <h3>Seed and pre-Series-A startups</h3>
    <p class="cp-track-sub">With 20 or fewer Active Developers.</p>
    <p class="cp-track-benefit"><strong>100% free Keygraph Pro</strong>, until you graduate from the program.</p>
  </div>
</div>
<p class="cp-wq-note">Individual developers are not eligible for the Community Program, but <a href="open-source.html">Shannon OSS</a> is free forever, self-hosted, for anyone.</p>
</section>

<section class="cp-sec band-dark">
<h2>What You Get</h2>
<p class="cp-split-lede">The full Pro plan with all generally available Pro modules: the agentic pentester, SAST, secrets detection, SCA and dependency scanning with reachability analysis, remediation workflows that end in reviewable pull requests, and the unified findings dashboard. Pentest findings are validated with a working proof of concept before they are filed.</p>
<div class="cp-list">
  <div class="cp-item">
    <h3>Not a trial</h3>
    <p>You get the same managed Pro platform paying customers run, all modules enabled, for as long as you participate.</p>
  </div>
  <div class="cp-item">
    <h3>Internal use only</h3>
    <p>The program authorizes your own internal application-security use. Operating Keygraph as a managed security service or reselling access is not permitted except as the governing agreement expressly allows.</p>
  </div>
</div>
</section>

<section class="cp-sec band-white">
<div class="cp-split">
<div class="cp-split-left">
<h2>Bring Your Own AI Key</h2>
</div>
<div class="cp-split-right">
<p class="cp-split-lede">The Keygraph platform runs on <strong>BYOK</strong> (bring your own key): you connect your own AI provider key and pay your provider directly for inference usage.</p>
</div>
</div>
</section>

<section class="cp-sec">
<div class="cp-split">
<div class="cp-split-left">
<h2>Community Support</h2>
</div>
<div class="cp-split-right">
<p class="cp-split-lede">Support runs through the Keygraph community, where Keygraph engineers read and respond daily. <a href="https://discord.gg/nj3XttQW6p">Join the community Discord</a>.</p>
<p class="cp-split-sub">While the program is free there's no SLA or uptime commitment; dedicated email and Slack support are paid-plan features.</p>
</div>
</div>
</section>

<section class="cp-sec band-white">
<h2>FAQ</h2>
<div class="cp-faq">
<div class="cp-faq-col">
<details>
<summary>What about non-U.S. nonprofits?</summary>
<div class="cp-faq-a"><p>The Nonprofit track is limited to U.S.-based 501(c)(3) organizations, so non-U.S. nonprofits are not eligible for it. <a href="open-source.html">Shannon OSS</a> is free forever, self-hosted, for anyone, and paid Keygraph Pro is available worldwide.</p></div>
</details>
<details>
<summary>How Active Developers are measured</summary>
<div class="cp-faq-a"><p>As defined in the Keygraph Terms of Service. We confirm the count with you during onboarding.</p></div>
</details>
<details>
<summary>How long does free access last?</summary>
<div class="cp-faq-a"><p>Free access renews monthly, with a quick annual eligibility re-certification. Your Order Form states your enrollment terms.</p></div>
</details>
<details>
<summary>What if we need self-hosted or air-gapped?</summary>
<div class="cp-faq-a"><p>The program is cloud-hosted only. For self-hosted, use <a href="open-source.html">Shannon OSS</a> (free) or the <a href="enterprise.html">Enterprise plan</a>.</p></div>
</details>
<details>
<summary>EU data residency</summary>
<div class="cp-faq-a"><p>Available. Request it when we follow up on your application.</p></div>
</details>
</div>
<div class="cp-faq-col">
<details>
<summary>What counts as a Graduation Event</summary>
<div class="cp-faq-a"><p>Your free access runs until you graduate: closing a priced round, raising more than US $10 million in total outside funding, being acquired, or growing past 20 Active Developers. The Order Form has the precise definition.</p></div>
</details>
<details>
<summary>The 90-day Conversion Window</summary>
<div class="cp-faq-a"><p>After a Graduation Event you have 90 days to convert to a paid plan, with free access continuing in the meantime. Your team keeps working; nothing migrates.</p></div>
</details>
<details>
<summary>Conversion pricing</summary>
<div class="cp-faq-a"><p>You convert at our then-current published <a href="pricing.html">pricing</a>, based on your actual Active Developer count and enabled modules.</p></div>
</details>
</div>
</div>
</section>

<section class="cp-sec cp-cta-final">
<h2>Access to defense starts here.</h2>
<p class="cp-split-lede">If you run a nonprofit or an early-stage startup, the full platform is free while you qualify.</p>
<p><a class="cp-cta" href="https://docs.google.com/forms/d/e/1FAIpQLSeQs4HV97_0p3L4gZnHCAdBLnd2eqrbTnZPhbSuhdLqSQLygQ/viewform">Apply to the Community Program</a></p>
</section>

</div>

</main>
<footer>
  <div class="footer-inner">
    <div class="footer-brand">
      <a href="index.html" class="nav-logo" style="font-family:var(--sans);font-size:32px;font-weight:700;letter-spacing:-0.01em">Keygraph</a>
      <p>The Continuous Agentic Pentesting Platform.</p>
    </div>
        <div class="footer-col footer-col-products">
      <div class="footer-col-title">Platform</div>
      <div class="footer-products-grid">
        <div>
          <a href="agentic-whitebox-pentester.html" class="footer-link">Whitebox Pentester</a>
          <a href="agentic-blackbox-pentester.html" class="footer-link">Blackbox Pentester</a>
          <a href="business-logic-testing.html" class="footer-link">Business Logic</a>
          <a href="agentic-sast.html" class="footer-link">Agentic SAST</a>
          <a href="sca.html" class="footer-link">SCA</a>
        </div>
        <div>
          <a href="secrets-scanning.html" class="footer-link">Secrets Scanning</a>
          <a href="code-remediation.html" class="footer-link">Code Remediation</a>
          <a href="reporting-and-analytics.html" class="footer-link">Reporting &amp; Analytics</a>
          <a href="open-source.html" class="footer-link">Shannon</a>
        </div>
      </div>
    </div>
    <div class="footer-col">
      <div class="footer-col-title">Resources</div>
      <a href="/docs/" class="footer-link">Shannon Docs</a>
      <a href="/blog/" class="footer-link">Blog</a>
      <a href="integrations.html" class="footer-link">Integrations</a>
      <a href="keygraph-vs-github-advanced-security.html" class="footer-link">vs GitHub Advanced Security</a>
      <a href="keygraph-vs-semgrep.html" class="footer-link">vs Semgrep</a>
      <a href="keygraph-vs-xbow.html" class="footer-link">vs XBOW</a>
    </div>
    <div class="footer-col">
      <div class="footer-col-title">Plans &amp; Services</div>
      <a href="pricing.html" class="footer-link">Pricing</a>
      <a href="enterprise.html" class="footer-link">Enterprise</a>
      <a href="attestation.html" class="footer-link">Attestation</a>
      <a href="community-program.html" class="footer-link">Community Program</a>
    </div>
    <div class="footer-col">
      <div class="footer-col-title">Company</div>
      <a href="about.html" class="footer-link">About Us</a>
      <a href="contact.html" class="footer-link">Contact</a>
      <a href="terms.html" class="footer-link">Terms of Service</a>
      <a href="privacy.html" class="footer-link">Privacy Policy</a>
      <a href="dpa.html" class="footer-link">DPA</a>
      <a href="subprocessors.html" class="footer-link">Subprocessors</a>
      <a href="code-security-posture.html" class="footer-link">Code Security Posture</a>
    </div>
  </div>
  <div class="footer-bottom">
    <span>&copy; 2026 Keygraph Inc. All rights reserved.</span>
      <div class="footer-socials">
      <a href="https://www.linkedin.com/company/keygraph/" aria-label="LinkedIn">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"/><rect x="2" y="9" width="4" height="12"/><circle cx="4" cy="4" r="2"/></svg>
      </a>
      <a href="mailto:support@keygraph.io" aria-label="Email">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 4L12 13L2 4"/></svg>
      </a>
      <a href="https://github.com/KeygraphHQ/shannon" aria-label="GitHub">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/></svg>
      </a>
      <a href="https://www.youtube.com/@KeygraphHQ" aria-label="YouTube">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19.13c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.46z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"/></svg>
      </a>
    </div>
  </div>
</footer>

<script>
window.addEventListener("scroll", () => {
  document.getElementById("main-nav").classList.toggle("scrolled", window.scrollY > 50);
});
window.addEventListener("load", () => { window.scrollTo(0, 0); });
</script>

<script>
// Mobile nav hamburger
(function() {
  var hamburger = document.getElementById('nav-hamburger');
  var menu = document.getElementById('nav-mobile-menu');
  if (hamburger && menu) {
    hamburger.addEventListener('click', function(e) {
      e.stopPropagation();
      hamburger.classList.toggle('open');
      menu.classList.toggle('open');
    });
    document.addEventListener('click', function(e) {
      if (!hamburger.contains(e.target) && !menu.contains(e.target)) {
        hamburger.classList.remove('open');
        menu.classList.remove('open');
      }
    });
  }
})();
</script>

<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":"b19c53e784cc40d2bdee6b6b412b14cd","r":1,"spa":2}' crossorigin="anonymous"></script>
</body>
</html>
