// Generated by orrery. Edit the diagram spec and re-render instead of editing this file.
import { type SVGProps, useId } from "react";

export default function ModernSaaSWebStack(props: SVGProps<SVGSVGElement>) {
  const uid = useId().replace(/[^A-Za-z0-9_-]/g, "");
  return (
    <svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" width="1381" height="1041" viewBox="0 0 1381 1041" role="img" aria-labelledby={`${uid}-sdw-title ${uid}-sdw-desc`} fontFamily="'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace" {...props}>
      <title id={`${uid}-sdw-title`}>
        Modern SaaS web stack
      </title>
      <desc id={`${uid}-sdw-desc`}>
        Modern SaaS web stack. 12 components in 7 groups. Connections: Web to Next.js app (app.example.com); Web to Cloudflare (API calls); Mobile app to Cloudflare (API calls); Cloudflare to API service (api.example.com); Next.js app to API service (server fetch); Web to Clerk (sign in); Mobile app to Clerk (sign in); API service to Neon (SQL); API service to Upstash (REST); API service to Stripe (checkout); API service to Resend (send email); API service to Stripe (webhooks via api.example.com); API service to Sentry (errors); Next.js app to Sentry (errors); Next.js app to PostHog (events).
      </desc>
      <defs>
        <linearGradient id={`${uid}-bg`} x1="0" y1="0" x2="0.34" y2="0.94">
          <stop offset="0" stopColor="#0e1a24" />
          <stop offset="0.6" stopColor="#0b1012" />
        </linearGradient>
        <pattern id={`${uid}-grid`} width="31.39" height="31.39" patternUnits="userSpaceOnUse">
          <path d="M0 0.78H31.39M0.78 0V31.39" fill="none" stroke="#ffffff" strokeOpacity="0.045" strokeWidth="1.57" />
        </pattern>
        <radialGradient id={`${uid}-wash`} gradientUnits="userSpaceOnUse" cx="517" cy="503" r="610.69">
          <stop offset="0" stopColor="#60a5fa" stopOpacity="0.12" />
          <stop offset="1" stopColor="#60a5fa" stopOpacity="0" />
        </radialGradient>
        <symbol id={`${uid}-s1`} viewBox="0 0 24 24" overflow="visible">
          <path fill="none" stroke="#919394" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M4 8h16M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm4-2v4" />
        </symbol>
        <symbol id={`${uid}-s2`} viewBox="0 0 24 24" overflow="visible">
          <path fill="none" stroke="#919394" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm5-1h2m-1 13v.01" />
        </symbol>
        <symbol id={`${uid}-s3`} viewBox="0 0 256 117" overflow="visible">
          <path fill="#fbad41" d="M205.52 50.813c-.858 0-1.705.03-2.551.058q-.207.012-.398.094a1.42 1.42 0 0 0-.92.994l-3.628 12.672c-1.565 5.449-.983 10.48 1.646 14.174c2.41 3.416 6.42 5.421 11.289 5.655l19.679 1.194c.585.03 1.092.312 1.4.776a1.92 1.92 0 0 1 .2 1.692a2.5 2.5 0 0 1-2.134 1.662l-20.448 1.193c-11.11.515-23.062 9.58-27.255 20.633l-1.474 3.9a1.092 1.092 0 0 0 .967 1.49h70.425a1.87 1.87 0 0 0 1.81-1.365A51.2 51.2 0 0 0 256 101.828c0-28.16-22.582-50.984-50.449-50.984" />
          <path fill="#f6821f" d="m174.782 115.362l1.303-4.583c1.568-5.449.987-10.48-1.639-14.173c-2.418-3.417-6.424-5.422-11.296-5.656l-92.312-1.193a1.82 1.82 0 0 1-1.459-.776a1.92 1.92 0 0 1-.203-1.693a2.5 2.5 0 0 1 2.154-1.662l93.173-1.193c11.063-.511 23.015-9.58 27.208-20.633l5.313-14.04c.214-.596.27-1.238.156-1.86C191.126 20.51 166.91 0 137.96 0C111.269 0 88.626 17.403 80.5 41.596a27 27 0 0 0-19.156-5.359C48.549 37.524 38.25 47.946 36.979 60.88a27.9 27.9 0 0 0 .702 9.642C16.773 71.145 0 88.454 0 109.726c0 1.923.137 3.818.413 5.667c.115.897.879 1.57 1.783 1.568h170.48a2.22 2.22 0 0 0 2.106-1.63" />
        </symbol>
        <filter id={`${uid}-f1`} x="-0.1" y="-0.1" width="1.2" height="1.2" colorInterpolationFilters="sRGB">
          <feFlood floodColor="#919394" />
          <feComposite in2="SourceAlpha" operator="in" />
        </filter>
        <symbol id={`${uid}-s4`} viewBox="0 0 256 289" overflow="visible">
          <path fill="#539e43" d="M128 288.464c-3.975 0-7.685-1.06-11.13-2.915l-35.247-20.936c-5.3-2.915-2.65-3.975-1.06-4.505c7.155-2.385 8.48-2.915 15.9-7.156c.796-.53 1.856-.265 2.65.265l27.032 16.166c1.06.53 2.385.53 3.18 0l105.74-61.217c1.06-.53 1.59-1.59 1.59-2.915V83.08c0-1.325-.53-2.385-1.59-2.915l-105.74-60.953c-1.06-.53-2.385-.53-3.18 0L20.405 80.166c-1.06.53-1.59 1.855-1.59 2.915v122.17c0 1.06.53 2.385 1.59 2.915l28.887 16.695c15.636 7.95 25.44-1.325 25.44-10.6V93.68c0-1.59 1.326-3.18 3.181-3.18h13.516c1.59 0 3.18 1.325 3.18 3.18v120.58c0 20.936-11.396 33.126-31.272 33.126c-6.095 0-10.865 0-24.38-6.625l-27.827-15.9C4.24 220.885 0 213.465 0 205.515V83.346C0 75.396 4.24 67.976 11.13 64L116.87 2.783c6.625-3.71 15.635-3.71 22.26 0L244.87 64C251.76 67.975 256 75.395 256 83.346v122.17c0 7.95-4.24 15.37-11.13 19.345L139.13 286.08c-3.445 1.59-7.42 2.385-11.13 2.385m32.596-84.009c-46.377 0-55.917-21.2-55.917-39.221c0-1.59 1.325-3.18 3.18-3.18h13.78c1.59 0 2.916 1.06 2.916 2.65c2.12 14.045 8.215 20.936 36.306 20.936c22.261 0 31.802-5.035 31.802-16.96c0-6.891-2.65-11.926-37.367-15.372c-28.886-2.915-46.907-9.275-46.907-32.33c0-21.467 18.02-34.187 48.232-34.187c33.921 0 50.617 11.66 52.737 37.101q0 1.193-.795 2.385c-.53.53-1.325 1.06-2.12 1.06h-13.78c-1.326 0-2.65-1.06-2.916-2.385c-3.18-14.575-11.395-19.345-33.126-19.345c-24.38 0-27.296 8.48-27.296 14.84c0 7.686 3.445 10.07 36.306 14.31c32.597 4.24 47.967 10.336 47.967 33.127c-.265 23.321-19.345 36.571-53.002 36.571" />
        </symbol>
        <symbol id={`${uid}-s5`} viewBox="0 0 256 256" overflow="visible">
          <defs>
            <linearGradient id={`${uid}-s5-_SVGrDou6dwg`} x1="55.633%" x2="83.228%" y1="56.385%" y2="96.08%">
              <stop offset="0%" stopColor="#fff" />
              <stop offset="100%" stopColor="#fff" stopOpacity="0" />
            </linearGradient>
            <linearGradient id={`${uid}-s5-_SVG9onTObtB`} x1="50%" x2="49.953%" y1="0%" y2="73.438%">
              <stop offset="0%" stopColor="#fff" />
              <stop offset="100%" stopColor="#fff" stopOpacity="0" />
            </linearGradient>
            <circle id={`${uid}-s5-_SVGN5eQqeMK`} cx="128" cy="128" r="128" />
          </defs>
          <mask id={`${uid}-s5-_SVGMX2wGdvm`} fill="#fff">
            <use href={`#${uid}-s5-_SVGN5eQqeMK`} />
          </mask>
          <g mask={`url(#${uid}-s5-_SVGMX2wGdvm)`}>
            <circle cx="128" cy="128" r="128" />
            <path fill={`url(#${uid}-s5-_SVGrDou6dwg)`} d="M212.634 224.028L98.335 76.8H76.8v102.357h17.228V98.68L199.11 234.446a128 128 0 0 0 13.524-10.418" />
            <path fill={`url(#${uid}-s5-_SVG9onTObtB)`} d="M163.556 76.8h17.067v102.4h-17.067z" />
          </g>
        </symbol>
        <filter id={`${uid}-f2`} x="-0.1" y="-0.1" width="1.2" height="1.2" colorInterpolationFilters="sRGB">
          <feColorMatrix type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0.8929 3.0038 0.3032 0 -2.604" result="a" />
          <feFlood floodColor="#919394" floodOpacity="0.4" />
          <feComposite in2="SourceAlpha" operator="in" result="base" />
          <feFlood floodColor="#919394" />
          <feComposite in2="a" operator="in" result="hi" />
          <feMerge>
            <feMergeNode in="base" />
            <feMergeNode in="hi" />
          </feMerge>
        </filter>
        <symbol id={`${uid}-s6`} viewBox="0 0 256 256" overflow="visible">
          <defs>
            <linearGradient id={`${uid}-s6-_SVGZSjXdboi`} x1="100%" x2="12.069%" y1="100%" y2="0%">
              <stop offset="0%" stopColor="#62f755" />
              <stop offset="100%" stopColor="#8ff986" stopOpacity="0" />
            </linearGradient>
            <linearGradient id={`${uid}-s6-_SVGMxAgOWFr`} x1="100%" x2="40.603%" y1="100%" y2="76.897%">
              <stop offset="0%" stopOpacity=".9" />
              <stop offset="100%" stopColor="#1a1a1a" stopOpacity="0" />
            </linearGradient>
          </defs>
          <path fill="#00e0d9" d="M0 44.139C0 19.762 19.762 0 44.139 0H211.86C236.238 0 256 19.762 256 44.139v142.649c0 25.216-31.915 36.16-47.388 16.256l-48.392-62.251v75.484c0 21.939-17.784 39.723-39.722 39.723h-76.36C19.763 256 0 236.238 0 211.861zm44.139-8.825a8.817 8.817 0 0 0-8.825 8.818v167.73c0 4.878 3.946 8.831 8.818 8.831h77.688c2.44 0 3.087-1.977 3.087-4.416v-101.22c0-25.222 31.914-36.166 47.395-16.255l48.391 62.243V44.14c0-4.879.455-8.825-4.416-8.825z" />
          <path fill={`url(#${uid}-s6-_SVGZSjXdboi)`} d="M0 44.139C0 19.762 19.762 0 44.139 0H211.86C236.238 0 256 19.762 256 44.139v142.649c0 25.216-31.915 36.16-47.388 16.256l-48.392-62.251v75.484c0 21.939-17.784 39.723-39.722 39.723h-76.36C19.763 256 0 236.238 0 211.861zm44.139-8.825a8.817 8.817 0 0 0-8.825 8.818v167.73c0 4.878 3.946 8.831 8.818 8.831h77.688c2.44 0 3.087-1.977 3.087-4.416v-101.22c0-25.222 31.914-36.166 47.395-16.255l48.391 62.243V44.14c0-4.879.455-8.825-4.416-8.825z" />
          <path fill={`url(#${uid}-s6-_SVGMxAgOWFr)`} fillOpacity=".4" d="M0 44.139C0 19.762 19.762 0 44.139 0H211.86C236.238 0 256 19.762 256 44.139v142.649c0 25.216-31.915 36.16-47.388 16.256l-48.392-62.251v75.484c0 21.939-17.784 39.723-39.722 39.723h-76.36C19.763 256 0 236.238 0 211.861zm44.139-8.825a8.817 8.817 0 0 0-8.825 8.818v167.73c0 4.878 3.946 8.831 8.818 8.831h77.688c2.44 0 3.087-1.977 3.087-4.416v-101.22c0-25.222 31.914-36.166 47.395-16.255l48.391 62.243V44.14c0-4.879.455-8.825-4.416-8.825z" />
          <path fill="#63f655" d="M211.861 0C236.238 0 256 19.762 256 44.139v142.649c0 25.216-31.915 36.16-47.388 16.256l-48.392-62.251v75.484c0 21.939-17.784 39.723-39.722 39.723a4.41 4.41 0 0 0 4.409-4.409V115.058c0-25.223 31.914-36.167 47.395-16.256l48.391 62.243V8.825c0-4.871-3.953-8.825-8.832-8.825" />
        </symbol>
        <symbol id={`${uid}-s7`} viewBox="0 0 256 341" overflow="visible">
          <path fill="#00c98d" d="M0 298.417c56.554 56.553 148.247 56.553 204.801 0c56.554-56.554 56.554-148.247 0-204.801l-25.6 25.6c42.415 42.416 42.415 111.185 0 153.6c-42.416 42.416-111.185 42.416-153.601 0z" />
          <path fill="#00c98d" d="M51.2 247.216c28.277 28.277 74.123 28.277 102.4 0c28.277-28.276 28.277-74.123 0-102.4l-25.6 25.6c14.14 14.138 14.14 37.061 0 51.2c-14.138 14.139-37.061 14.139-51.2 0zM256 42.415c-56.554-56.553-148.247-56.553-204.8 0c-56.555 56.555-56.555 148.247 0 204.801l25.599-25.6c-42.415-42.415-42.415-111.185 0-153.6c42.416-42.416 111.185-42.416 153.6 0z" />
          <path fill="#00c98d" d="M204.8 93.616c-28.276-28.277-74.124-28.277-102.4 0c-28.278 28.277-28.278 74.123 0 102.4l25.6-25.6c-14.14-14.138-14.14-37.061 0-51.2c14.138-14.139 37.06-14.139 51.2 0z" />
          <path fill="#fff" fillOpacity=".4" d="M256 42.415c-56.554-56.553-148.247-56.553-204.8 0c-56.555 56.555-56.555 148.247 0 204.801l25.599-25.6c-42.415-42.415-42.415-111.185 0-153.6c42.416-42.416 111.185-42.416 153.6 0z" />
          <path fill="#fff" fillOpacity=".4" d="M204.8 93.616c-28.276-28.277-74.124-28.277-102.4 0c-28.278 28.277-28.278 74.123 0 102.4l25.6-25.6c-14.14-14.138-14.14-37.061 0-51.2c14.138-14.139 37.06-14.139 51.2 0z" />
        </symbol>
        <symbol id={`${uid}-s8`} viewBox="0 0 24 24" overflow="visible">
          <path fill="#919394" d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409c0-.831.683-1.305 1.901-1.305c2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0C9.667 0 7.589.654 6.104 1.872C4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219c2.585.92 3.445 1.574 3.445 2.583c0 .98-.84 1.545-2.354 1.545c-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813c1.664-1.305 2.525-3.236 2.525-5.732c0-4.128-2.524-5.851-6.594-7.305z" />
        </symbol>
        <symbol id={`${uid}-s9`} viewBox="0 0 256 256" overflow="visible">
          <g fill="#919394">
            <path d="M156.575 0c49.582 0 79.07 29.488 79.07 68.632s-29.488 68.632-79.07 68.632h-25.052L256 256h-87.942l-94.729-90.03c-6.784-6.263-9.916-13.57-9.916-19.833c0-8.873 6.263-16.701 18.267-20.094l48.8-13.048c18.527-4.958 31.314-19.31 31.314-38.1c0-22.964-18.79-36.273-42.014-36.273H0V0z" />
          </g>
        </symbol>
        <symbol id={`${uid}-s10`} viewBox="0 0 256 324" overflow="visible">
          <path fill="#bab1ff" d="M251.87 27.289c5.058 3.387 5.49 10.513 1.185 14.818l-36.97 36.971c-3.342 3.341-8.526 3.87-12.732 1.715c-12.435-6.371-26.53-9.966-41.462-9.966c-50.294 0-91.064 40.77-91.064 91.064c0 14.933 3.595 29.027 9.966 41.462c2.154 4.206 1.626 9.39-1.715 12.731l-36.971 36.971c-4.305 4.305-11.43 3.873-14.818-1.185C10.053 226.138 0 195.188 0 161.89C0 72.48 72.48 0 161.89 0c33.298 0 64.248 10.053 89.98 27.289" />
          <path fill="#6c47ff" d="M212.481 161.89c0 27.941-22.65 50.591-50.59 50.591s-50.591-22.65-50.591-50.59s22.65-50.591 50.59-50.591s50.591 22.65 50.591 50.59m40.574 119.784c4.305 4.306 3.873 11.431-1.184 14.818c-25.733 17.237-56.683 27.29-89.98 27.29s-64.248-10.053-89.98-27.29c-5.058-3.387-5.49-10.512-1.186-14.818l36.971-36.97c3.342-3.342 8.525-3.87 12.731-1.716c12.437 6.371 26.53 9.966 41.464 9.966s29.027-3.595 41.463-9.966c4.206-2.154 9.39-1.626 12.73 1.715z" />
        </symbol>
        <symbol id={`${uid}-s11`} viewBox="0 0 256 227" overflow="visible">
          <g fill="#919394">
            <path fill="#919394" d="M148.368 12.403a23.935 23.935 0 0 0-41.003 0L73.64 70.165c52.426 26.174 87.05 78.177 90.975 136.642h-23.679c-3.918-50.113-34.061-94.41-79.238-116.448l-31.213 53.97a81.6 81.6 0 0 1 47.307 62.375h-54.38a3.895 3.895 0 0 1-3.178-5.69l15.069-25.626a55 55 0 0 0-17.221-9.738L3.167 191.277a23.27 23.27 0 0 0 8.662 31.982a23.9 23.9 0 0 0 11.583 3.075h74.471a99.43 99.43 0 0 0-41.003-88.72l11.84-20.5c35.679 24.504 55.754 66.038 52.79 109.22h63.094c2.99-65.43-29.047-127.512-84.107-162.986l23.935-41.002a3.947 3.947 0 0 1 5.382-1.384c2.716 1.486 103.993 178.208 105.89 180.258a3.895 3.895 0 0 1-3.486 5.792h-24.396q.46 9.789 0 19.528h24.499A23.53 23.53 0 0 0 256 202.91a23 23 0 0 0-3.178-11.685z" />
          </g>
        </symbol>
        <symbol id={`${uid}-s12`} viewBox="0 0 256 142" overflow="visible">
          <path fill="#f9bd2b" d="M0 112.012c0-4.753 5.746-7.133 9.107-3.772l24.452 24.452c3.361 3.361.98 9.107-3.772 9.107H5.335A5.335 5.335 0 0 1 0 136.464zm0-25.756c0 1.415.562 2.772 1.563 3.773l50.208 50.208c1 1 2.357 1.562 3.772 1.562H83.12c4.753 0 7.134-5.746 3.773-9.107L9.107 54.907C5.747 51.546 0 53.926 0 58.679zm0-53.333c0 1.415.562 2.772 1.563 3.772l103.541 103.542c1 1 2.358 1.562 3.772 1.562h27.578c4.753 0 7.133-5.746 3.772-9.107L9.107 1.573C5.747-1.787 0 .593 0 5.346zm53.333 0c0 1.415.563 2.772 1.563 3.772l95.997 95.997c3.36 3.361 9.107.98 9.107-3.772v-27.578a5.34 5.34 0 0 0-1.563-3.772L62.441 1.573c-3.361-3.36-9.108-.98-9.108 3.773zm62.44-31.35c-3.36-3.36-9.106-.98-9.106 3.773v27.577c0 1.415.562 2.772 1.562 3.772l42.664 42.664c3.36 3.36 9.107.98 9.107-3.773V48.01a5.34 5.34 0 0 0-1.563-3.772z" />
          <path d="M226.867 112.666L176.651 62.45c-3.361-3.361-9.107-.98-9.107 3.772v70.242a5.335 5.335 0 0 0 5.335 5.335h77.786a5.335 5.335 0 0 0 5.335-5.335v-6.397c0-2.946-2.399-5.299-5.32-5.68a41.2 41.2 0 0 1-23.813-11.72m-33.724 12.066a8.537 8.537 0 0 1-8.533-8.533c0-4.71 3.823-8.534 8.533-8.534a8.537 8.537 0 0 1 8.534 8.534a8.537 8.537 0 0 1-8.534 8.533" />
          <path fill="#1d4aff" d="m8.656 107.833l.451.406l24.452 24.453c3.215 3.214 1.177 8.612-3.166 9.075l-.606.032H5.335a5.336 5.336 0 0 1-5.3-4.713L0 136.464v-24.452c0-4.547 5.258-6.922 8.656-4.179m0-53.332l.451.406l44.226 44.226V141.8L1.563 90.03a5.34 5.34 0 0 1-1.517-3.072L0 86.257V58.679c0-4.546 5.258-6.921 8.656-4.178M0 5.346C0 .799 5.258-1.576 8.656 1.167l.451.406L53.333 45.8v42.667l-51.77-51.77a5.34 5.34 0 0 1-1.517-3.072L0 32.923z" />
          <path fill="#f54e00" d="m53.333 45.8l51.771 51.77a5.33 5.33 0 0 1 1.516 3.072l.047.7V141.8L54.896 90.03a5.34 5.34 0 0 1-1.516-3.072l-.047-.701zm0 53.332l33.56 33.56c3.215 3.214 1.176 8.612-3.166 9.075l-.607.032H53.333zM61.99 1.167l.452.406l42.663 42.664a5.33 5.33 0 0 1 1.516 3.07l.047.702v40.457l-51.771-51.77a5.34 5.34 0 0 1-1.516-3.072l-.047-.701V5.346c0-4.547 5.258-6.922 8.656-4.179" />
        </symbol>
      </defs>
      <rect width="1381" height="1041" fill={`url(#${uid}-bg)`} />
      <rect width="1381" height="1041" fill={`url(#${uid}-grid)`} />
      <rect width="1381" height="1041" fill={`url(#${uid}-wash)`} />
      <text fontSize="18" fontWeight="700" letterSpacing="1.08" fill="#dadbdb">
        <tspan x="28" y="42.89">
          MODERN SAAS WEB STACK
        </tspan>
      </text>
      <text fontSize="11.5" fontWeight="400" fill="#9d9fa0">
        <tspan x="28" y="65.25">
          Next.js on Vercel serves the UI and Cloudflare fronts the API; Neon and Upstash hold the data while Clerk, Stripe and Resend handle auth, payments and email
        </tspan>
      </text>
      <g id={`${uid}-g-edge`}>
        <rect x="498" y="275" width="257" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="498" y="275" width="257" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-ui`}>
        <rect x="785" y="275" width="213" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="785" y="275" width="213" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-app`}>
        <rect x="518" y="530" width="267" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="518" y="530" width="267" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-data`}>
        <rect x="28" y="800" width="408" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="28" y="800" width="408" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-auth`}>
        <rect x="1028" y="275" width="218" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1028" y="275" width="218" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-saas`}>
        <rect x="466" y="800" width="445" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="466" y="800" width="445" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-g-obs`}>
        <rect x="941" y="800" width="412" height="130" rx="3.14" fill="#ffffff" fillOpacity="0.03" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="941" y="800" width="412" height="130" rx="3.14" fill="#60a5fa" fillOpacity="0.03" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.0665;0.1007;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-e-e1`}>
        <path d="M892 154 L892 326.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M885.72 317.58 L892 327 L898.28 317.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M892 154 L892 326.22" fill="none" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.88" strokeLinecap="round" strokeLinejoin="round" pathLength="1" strokeDasharray="1 1" strokeDashoffset="1" opacity="0">
          <animate attributeName="stroke-dashoffset" values="1;1;0;0" keyTimes="0;0.2374;0.3134;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.2374;0.2716;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <g opacity="0">
          <path d="M885.72 317.58 L892 327 L898.28 317.58" fill="none" stroke="#60a5fa" strokeOpacity="0.7" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.3134;0.3475;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-e-e2`}>
        <path d="M855 154 L855 161.5 Q855 169 847.5 169 L598 169 Q590 169 590 177 L590 326.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M583.72 317.58 L590 327 L596.28 317.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e3`}>
        <path d="M1075 154 L1075 230 Q1075 238 1067 238 L671 238 Q663 238 663 246 L663 326.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M656.72 317.58 L663 327 L669.28 317.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e4`}>
        <path d="M627 385 L627 417.5 Q627 424 620.5 424 L620.5 424 Q614 424 614 430.5 L614 581.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M607.72 572.58 L614 582 L620.28 572.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e5`}>
        <path d="M848 385 L848 416 Q848 424 840 424 L803 424 Q795 424 795 432 L795 485 Q795 493 787 493 L697 493 Q689 493 689 501 L689 581.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M682.72 572.58 L689 582 L695.28 572.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M848 385 L848 416 Q848 424 840 424 L803 424 Q795 424 795 432 L795 485 Q795 493 787 493 L697 493 Q689 493 689 501 L689 581.22" fill="none" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.88" strokeLinecap="round" strokeLinejoin="round" pathLength="1" strokeDasharray="1 1" strokeDashoffset="1" opacity="0">
          <animate attributeName="stroke-dashoffset" values="1;1;0;0" keyTimes="0;0.3589;0.4936;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.3589;0.3931;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <g opacity="0">
          <path d="M682.72 572.58 L689 582 L695.28 572.58" fill="none" stroke="#60a5fa" strokeOpacity="0.7" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.4936;0.5278;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-e-e6`}>
        <path d="M930 154 L930 161.5 Q930 169 937.5 169 L1006 169 Q1014 169 1014 177 L1014 238 Q1014 246 1022 246 L1099 246 Q1107 246 1107 254 L1107 326.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M1100.72 317.58 L1107 327 L1113.28 317.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e7`}>
        <path d="M1130 154 L1130 161.5 Q1130 169 1137.5 169 L1159 169 Q1167 169 1167 177 L1167 326.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M1160.72 317.58 L1167 327 L1173.28 317.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e8`}>
        <path d="M570 640 L570 671 Q570 679 562 679 L150 679 Q142 679 142 687 L142 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M135.72 842.58 L142 852 L148.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M570 640 L570 671 Q570 679 562 679 L150 679 Q142 679 142 687 L142 851.22" fill="none" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.88" strokeLinecap="round" strokeLinejoin="round" pathLength="1" strokeDasharray="1 1" strokeDashoffset="1" opacity="0">
          <animate attributeName="stroke-dashoffset" values="1;1;0;0" keyTimes="0;0.5392;0.7291;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.5392;0.5733;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <g opacity="0">
          <path d="M135.72 842.58 L142 852 L148.28 842.58" fill="none" stroke="#60a5fa" strokeOpacity="0.7" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.7291;0.7633;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-e-e9`}>
        <path d="M603 640 L603 679 Q603 687 595 687 L349 687 Q341 687 341 695 L341 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M334.72 842.58 L341 852 L347.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e10`}>
        <path d="M668 640 L668 755 Q668 763 660 763 L621 763 Q613 763 613 771 L613 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M606.72 842.58 L613 852 L619.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e11`}>
        <path d="M700 640 L700 679 Q700 687 708 687 L736 687 Q744 687 744 695 L744 755 Q744 763 752 763 L791 763 Q799 763 799 771 L799 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
        <path d="M792.72 842.58 L799 852 L805.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e12`}>
        <path d="M635 640.78 L635 687 Q635 695 627 695 L558 695 Q550 695 550 703 L550 852" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" strokeDasharray="6.28 4.71" />
        <path d="M641.28 649.42 L635 640 L628.72 649.42" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e13`}>
        <path d="M733 640 L733 671 Q733 679 741 679 L820 679 Q828 679 828 687 L828 771 Q828 779 836 779 L1004 779 Q1012 779 1012 787 L1012 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" strokeDasharray="1.57 3.92" />
        <path d="M1005.72 842.58 L1012 852 L1018.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e14`}>
        <path d="M892 385 L892 763 Q892 771 900 771 L1055 771 Q1063 771 1063 779 L1063 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" strokeDasharray="1.57 3.92" />
        <path d="M1056.72 842.58 L1063 852 L1069.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-e-e15`}>
        <path d="M935 385 L935 416.5 Q935 424 942.5 424 L942.5 424 Q950 424 950 431.5 L950 755 Q950 763 958 763 L1231 763 Q1239 763 1239 771 L1239 851.22" fill="none" stroke="#ffffff" strokeOpacity="0.25" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" strokeDasharray="1.57 3.92" />
        <path d="M1232.72 842.58 L1239 852 L1245.28 842.58" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeLinejoin="round" />
      </g>
      <g id={`${uid}-el-e1`}>
        <rect x="897" y="202" width="109" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="951.76" y="215.61">
            APP.EXAMPLE.COM
          </tspan>
        </text>
        <g opacity="0">
          <rect x="897" y="202" width="109" height="21" rx="3" fill="#0b1012" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.57" />
          <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#60a5fa" textAnchor="middle">
            <tspan x="951.76" y="215.61">
              APP.EXAMPLE.COM
            </tspan>
          </text>
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.2374;0.2716;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-el-e2`}>
        <rect x="595" y="202" width="59" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.5" fontWeight="700" letterSpacing="0.51" fill="#979899" textAnchor="middle">
          <tspan x="624.76" y="215.52">
            API CALLS
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e3`}>
        <rect x="1080" y="202" width="59" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.5" fontWeight="700" letterSpacing="0.51" fill="#979899" textAnchor="middle">
          <tspan x="1109.76" y="215.52">
            API CALLS
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e4`}>
        <rect x="619" y="457" width="105" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="671.76" y="470.61">
            API.EXAMPLE.COM
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e5`}>
        <rect x="800" y="457" width="78" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="839.26" y="470.61">
            SERVER FETCH
          </tspan>
        </text>
        <g opacity="0">
          <rect x="800" y="457" width="78" height="21" rx="3" fill="#0b1012" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.57" />
          <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#60a5fa" textAnchor="middle">
            <tspan x="839.26" y="470.61">
              SERVER FETCH
            </tspan>
          </text>
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.3589;0.3931;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-el-e6`}>
        <rect x="1019" y="202" width="48" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="1043.26" y="215.61">
            SIGN IN
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e7`}>
        <rect x="1172" y="202" width="48" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="1196.26" y="215.61">
            SIGN IN
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e8`}>
        <rect x="147" y="719.5" width="35" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="164.76" y="733.11">
            SQL
          </tspan>
        </text>
        <g opacity="0">
          <rect x="147" y="719.5" width="35" height="21" rx="3" fill="#0b1012" stroke="#60a5fa" strokeOpacity="0.5" strokeWidth="1.57" />
          <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#60a5fa" textAnchor="middle">
            <tspan x="164.76" y="733.11">
              SQL
            </tspan>
          </text>
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.5392;0.5733;0.9;0.9342;1" dur="5.265s" repeatCount="indefinite" />
        </g>
      </g>
      <g id={`${uid}-el-e9`}>
        <rect x="346" y="719.5" width="42" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="367.26" y="733.11">
            REST
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e10`}>
        <rect x="673" y="719.5" width="63" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="704.76" y="733.11">
            CHECKOUT
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e11`}>
        <rect x="749" y="719.5" width="71" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="784.76" y="733.11">
            SEND EMAIL
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e12`}>
        <rect x="555" y="712" width="105" height="36" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="607.76" y="724.11">
            WEBHOOKS VIA
          </tspan>
          <tspan x="607.76" y="742.11">
            API.EXAMPLE.COM
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e13`}>
        <rect x="833" y="719.5" width="45" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="855.76" y="733.11">
            ERRORS
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e14`}>
        <rect x="897" y="584.5" width="45" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="919.76" y="598.11">
            ERRORS
          </tspan>
        </text>
      </g>
      <g id={`${uid}-el-e15`}>
        <rect x="955" y="584.5" width="49" height="21" rx="3" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#979899" textAnchor="middle">
          <tspan x="979.76" y="598.11">
            EVENTS
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-edge`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="510" y="297.35">
            EDGE
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-ui`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="797" y="297.35">
            FRONTEND
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-app`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="530" y="552.36">
            BACKEND
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-data`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="40" y="822.36">
            DATA
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-auth`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="1040" y="297.35">
            IDENTITY
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-saas`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="619" y="822.36">
            THIRD-PARTY SERVICES
          </tspan>
        </text>
      </g>
      <g id={`${uid}-gh-obs`}>
        <text fontSize="11" fontWeight="700" letterSpacing="1.1" fill="#649adb">
          <tspan x="1069" y="822.36">
            OBSERVABILITY
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-web`}>
        <rect x="817" y="96" width="150" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="817" y="96" width="150" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="833" y="109" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="833" y="109" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s1`} x="839.4" y="115.4" width="19.2" height="19.2" />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="877" y="120.58">
            WEB
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="877" y="137.67">
            Browser
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-mobile`}>
        <rect x="1019" y="96" width="167" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1019" y="96" width="167" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="1035" y="109" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1035" y="109" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s2`} x="1041.4" y="115.4" width="19.2" height="19.2" />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="1079" y="120.58">
            MOBILE APP
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="1079" y="137.67">
            iOS and Android
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-cloudflare`}>
        <rect x="518" y="327" width="217" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="518" y="327" width="217" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="534" y="340" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="534" y="340" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s3`} x="540.72" y="346.72" width="18.56" height="18.56" filter={`url(#${uid}-f1)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="578" y="351.58">
            CLOUDFLARE
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="578" y="368.67">
            CDN and WAF for the API
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-api`}>
        <rect x="538" y="582" width="227" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="538" y="582" width="227" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="554" y="595" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="554" y="595" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s4`} x="560.72" y="601.72" width="18.56" height="18.56" filter={`url(#${uid}-f1)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="598" y="606.58">
            API SERVICE
          </tspan>
        </text>
        <text fontSize="9.5" fontWeight="400" fill="#979a9b">
          <tspan x="598" y="623.59">
            Node.js, verifies Clerk JWT
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-nextjs`}>
        <rect x="805" y="327" width="173" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="805" y="327" width="173" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="821" y="340" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="821" y="340" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s5`} x="827.08" y="346.08" width="19.84" height="19.84" filter={`url(#${uid}-f2)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="865" y="351.58">
            NEXT.JS APP
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="865" y="368.67">
            Hosted on Vercel
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-neon`}>
        <rect x="48" y="852" width="188" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="48" y="852" width="188" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="64" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="64" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s6`} x="70.72" y="871.72" width="18.56" height="18.56" filter={`url(#${uid}-f1)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="108" y="876.58">
            NEON
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="108" y="893.67">
            Serverless Postgres
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-upstash`}>
        <rect x="266" y="852" width="150" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="266" y="852" width="150" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="282" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="282" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s7`} x="288.08" y="871.08" width="19.84" height="19.84" filter={`url(#${uid}-f2)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="326" y="876.58">
            UPSTASH
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="326" y="893.67">
            Redis cache
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-stripe`}>
        <rect x="486" y="852" width="191" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="486" y="852" width="191" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="502" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="502" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s8`} x="508.4" y="871.4" width="19.2" height="19.2" />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="546" y="876.58">
            STRIPE
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="546" y="893.67">
            Payments and billing
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-resend`}>
        <rect x="707" y="852" width="184" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="707" y="852" width="184" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="723" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="723" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s9`} x="729.4" y="871.4" width="19.2" height="19.2" />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="767" y="876.58">
            RESEND
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="767" y="893.67">
            Transactional email
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-clerk`}>
        <rect x="1048" y="327" width="178" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1048" y="327" width="178" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="1064" y="340" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1064" y="340" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s10`} x="1070.72" y="346.72" width="18.56" height="18.56" filter={`url(#${uid}-f1)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="1108" y="351.58">
            CLERK
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="1108" y="368.67">
            Auth and sessions
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-sentry`}>
        <rect x="961" y="852" width="153" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="961" y="852" width="153" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="977" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="977" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s11`} x="983.4" y="871.4" width="19.2" height="19.2" />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="1021" y="876.58">
            SENTRY
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="1021" y="893.67">
            Error tracking
          </tspan>
        </text>
      </g>
      <g id={`${uid}-n-posthog`}>
        <rect x="1144" y="852" width="189" height="58" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1144" y="852" width="189" height="58" rx="6" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <rect x="1160" y="865" width="32" height="32" rx="5.44" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.16" strokeWidth="1.57" />
        <g opacity="0">
          <rect x="1160" y="865" width="32" height="32" rx="5.44" fill="#60a5fa" fillOpacity="0.15" stroke="#60a5fa" strokeOpacity="0.65" strokeWidth="1.57" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.1329;0.1671;0.9058;0.94;1" dur="5.265s" repeatCount="indefinite" />
        </g>
        <use href={`#${uid}-s12`} x="1166.72" y="871.72" width="18.56" height="18.56" filter={`url(#${uid}-f1)`} />
        <text fontSize="11.5" fontWeight="700" letterSpacing="0.92" fill="#9d9fa0">
          <tspan x="1204" y="876.58">
            POSTHOG
          </tspan>
        </text>
        <text fontSize="9.75" fontWeight="400" fill="#979a9b">
          <tspan x="1204" y="893.67">
            Analytics and replay
          </tspan>
        </text>
      </g>
      <g id={`${uid}-story`}>
        <path d="M892 154 L892 326.22" fill="none" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="3.77" pathLength="1" strokeDasharray="0.24 2" strokeDashoffset="0.24" opacity="0">
          <animate attributeName="stroke-dashoffset" values="0.24;0.24;-0.76;-1;-1" keyTimes="0;0.2374;0.3134;0.3314;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.2374;0.2393;0.3314;0.3333;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <circle r="3.92" fill="#60a5fa" opacity="0">
          <animateMotion path="M892 154 L892 326.22" dur="5.265s" repeatCount="indefinite" calcMode="spline" keyPoints="0;0;1;1" keyTimes="0;0.2374;0.3134;1" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.2089;0.2374;0.3589;0.3874;1" dur="5.265s" repeatCount="indefinite" />
        </circle>
        <circle r="3.14" fill="#60a5fa" opacity="0">
          <animateMotion path="M855 154 L855 161.5 Q855 169 847.5 169 L598 169 Q590 169 590 177 L590 326.22" dur="5.265s" repeatCount="indefinite" calcMode="spline" keyPoints="0;0;1;1" keyTimes="0;0.4587;0.6243;1" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.4302;0.4587;0.6243;0.6528;1" dur="5.265s" repeatCount="indefinite" />
        </circle>
        <circle r="3.14" fill="#60a5fa" opacity="0">
          <animateMotion path="M627 385 L627 417.5 Q627 424 620.5 424 L620.5 424 Q614 424 614 430.5 L614 581.22" dur="5.265s" repeatCount="indefinite" calcMode="spline" keyPoints="0;0;1;1" keyTimes="0;0.6062;0.6856;1" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.5777;0.6062;0.6856;0.7141;1" dur="5.265s" repeatCount="indefinite" />
        </circle>
        <path d="M848 385 L848 416 Q848 424 840 424 L803 424 Q795 424 795 432 L795 485 Q795 493 787 493 L697 493 Q689 493 689 501 L689 581.22" fill="none" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="3.77" pathLength="1" strokeDasharray="0.11 2" strokeDashoffset="0.11" opacity="0">
          <animate attributeName="stroke-dashoffset" values="0.11;0.11;-0.89;-1;-1" keyTimes="0;0.3589;0.4936;0.509;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.3589;0.3608;0.509;0.5109;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <circle r="3.92" fill="#60a5fa" opacity="0">
          <animateMotion path="M848 385 L848 416 Q848 424 840 424 L803 424 Q795 424 795 432 L795 485 Q795 493 787 493 L697 493 Q689 493 689 501 L689 581.22" dur="5.265s" repeatCount="indefinite" calcMode="spline" keyPoints="0;0;1;1" keyTimes="0;0.3589;0.4936;1" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.3305;0.3589;0.5392;0.5676;1" dur="5.265s" repeatCount="indefinite" />
        </circle>
        <path d="M570 640 L570 671 Q570 679 562 679 L150 679 Q142 679 142 687 L142 851.22" fill="none" stroke="#60a5fa" strokeOpacity="0.6" strokeWidth="3.77" pathLength="1" strokeDasharray="0.06 2" strokeDashoffset="0.06" opacity="0">
          <animate attributeName="stroke-dashoffset" values="0.06;0.06;-0.94;-1;-1" keyTimes="0;0.5392;0.7291;0.7412;1" calcMode="spline" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1;0 0 1 1" dur="5.265s" repeatCount="indefinite" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.5392;0.5411;0.7412;0.7431;1" dur="5.265s" repeatCount="indefinite" />
        </path>
        <circle r="3.92" fill="#60a5fa" opacity="0">
          <animateMotion path="M570 640 L570 671 Q570 679 562 679 L150 679 Q142 679 142 687 L142 851.22" dur="5.265s" repeatCount="indefinite" calcMode="spline" keyPoints="0;0;1;1" keyTimes="0;0.5392;0.7291;1" keySplines="0 0 1 1;0.65 0 0.35 1;0 0 1 1" />
          <animate attributeName="opacity" values="0;0;1;1;0;0" keyTimes="0;0.5107;0.5392;0.7291;0.7576;1" dur="5.265s" repeatCount="indefinite" />
        </circle>
      </g>
      <g id={`${uid}-legend`}>
        <rect x="1180" y="942" width="173" height="71" rx="6" fill="#0b1012" stroke="#ffffff" strokeOpacity="0.1" strokeWidth="1.57" />
        <path d="M1190 959.5 H1218" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" />
        <text fontSize="9.25" fontWeight="700" letterSpacing="0.55" fill="#9d9fa0">
          <tspan x="1226" y="962.78">
            SYNCHRONOUS REQUEST
          </tspan>
        </text>
        <path d="M1190 977.5 H1218" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeDasharray="6.28 4.71" />
        <text fontSize="9.5" fontWeight="700" letterSpacing="0.57" fill="#9d9fa0">
          <tspan x="1226" y="980.87">
            WEBHOOK
          </tspan>
        </text>
        <path d="M1190 995.5 H1218" fill="none" stroke="#ffffff" strokeOpacity="0.4" strokeWidth="1.57" strokeLinecap="round" strokeDasharray="1.57 3.92" />
        <text fontSize="8.75" fontWeight="700" letterSpacing="0.53" fill="#9d9fa0">
          <tspan x="1226" y="998.61">
            ERRORS AND ANALYTICS
          </tspan>
        </text>
      </g>
    </svg>
  );
}
