> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Aspect Build Pricing: Speed Up Builds & Cut Costs

> Aspect's developer tools are free for every developer. Aspect Workflows is priced for your team, runs on your infrastructure with no usage billing when you self-host. Start a free 30-day trial.

export const MarketingPage = () => <div className="marketing-page-marker" style={{
  display: "none"
}} />;

export const CTA = ({title, subtitle, primaryCta, primaryHref = "#", secondaryCta, secondaryHref = "#"}) => <section className="w-full flex justify-center px-4 py-16 md:py-20">
    <div className="w-full rounded-2xl text-white flex flex-col md:flex-row items-center justify-center gap-10 md:gap-16 p-8 md:p-12 text-center md:text-left" style={{
  maxWidth: "1140px",
  background: "linear-gradient(135deg, #1a3a5c 0%, #176ACC 100%)"
}}>
      <div>
        <h2 className="text-2xl md:text-3xl font-semibold tracking-tight">{title}</h2>
        {subtitle && <div className="mt-3 text-blue-100 text-base">{subtitle}</div>}
      </div>
      <div className="flex flex-wrap gap-3 shrink-0 justify-center">
        {primaryCta && <a href={primaryHref} className="inline-flex items-center px-6 py-3 rounded-lg bg-white text-blue-700 font-semibold hover:bg-blue-50 transition whitespace-nowrap shadow-sm">
            {primaryCta}
          </a>}
        {secondaryCta && <a href={secondaryHref} className={`inline-flex items-center px-6 py-3 rounded-lg border border-blue-300/50 text-white font-semibold hover:bg-blue-700/30 transition whitespace-nowrap ${secondaryHref === "/request-demo" ? "demo-gradient-btn" : ""}`}>
            {secondaryCta}
          </a>}
      </div>
    </div>
  </section>;

export const FeatureCard = ({title, description, href, children}) => {
  const Tag = href ? "a" : "div";
  const tagProps = href ? {
    href
  } : {};
  return <Tag {...tagProps} className={`group flex flex-col p-6 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/50 ${href ? "hover:shadow-md hover:border-blue-200 dark:hover:border-blue-700 transition-all duration-200" : ""}`}>
      {children && <div className="feature-card-icon mb-5 flex items-center justify-center rounded-xl bg-blue-50 dark:bg-blue-900/20 border border-blue-100 dark:border-blue-800/30" style={{
    width: "4rem",
    height: "4rem"
  }}>
          {children}
        </div>}
      <h3 className={`text-lg font-semibold text-zinc-900 dark:text-white ${href ? "group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors" : ""}`}>
        {title}
      </h3>
      {description && <p className="feature-card-desc text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">{description}</p>}
    </Tag>;
};

export const FeatureGrid2 = ({children}) => <div className="marketing-grid-2">{children}</div>;

export const SectionHeader = ({title, subtitle, centered = true, label}) => <div className={`mb-12 ${centered ? "text-center" : ""}`}>
    {label && <p className="text-xs font-semibold tracking-widest text-blue-600 dark:text-blue-400 uppercase mb-3">
        {label}
      </p>}
    <h2 className="text-4xl md:text-5xl font-semibold text-zinc-900 dark:text-white tracking-tight">{title}</h2>
    {subtitle && <div className={`subtitle-gap text-lg md:text-xl text-zinc-500 dark:text-zinc-300 leading-relaxed ${centered ? "mx-auto" : ""}`} style={{
  marginTop: "1rem",
  maxWidth: centered ? "700px" : "none"
}}>
        {subtitle}
      </div>}
  </div>;

export const Section = ({children, className = "", gray = false, dark = false, id}) => <section id={id} className={`w-full flex justify-center px-4 py-16 md:py-24 ${gray ? "bg-gray-50 dark:bg-zinc-900" : dark ? "bg-zinc-900 dark:bg-zinc-950" : ""} ${className}`}>
    <div className="w-full" style={{
  maxWidth: "1140px"
}}>
      {children}
    </div>
  </section>;

export const Hero = ({title, subtitle, badge, eyebrow, heroImageClassName = "", primaryCta, primaryHref = "#", secondaryCta, secondaryHref = "#", centered = true, children}) => <section className="w-full flex justify-center px-4 pt-16 pb-16 md:pt-24 md:pb-24" style={{
  background: "linear-gradient(180deg, var(--hero-gradient-start, #f8fafc) 0%, var(--hero-gradient-end, #ffffff) 100%)"
}}>
    <div className="w-full" style={{
  maxWidth: "1140px"
}}>
      {centered && !children ? <div className="flex flex-col items-center text-center">
          {badge && <div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-blue-50 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-700 text-blue-700 dark:text-blue-300 text-sm font-medium mb-6">
              {badge}
            </div>}
          {eyebrow && <div className="text-xs font-semibold tracking-widest uppercase text-blue-600 dark:text-blue-400 mb-4">
              {eyebrow}
            </div>}
          <h1 className="text-4xl md:text-5xl font-semibold text-zinc-900 dark:text-white leading-tight tracking-tight" style={{
  maxWidth: "820px"
}}>
            {String(title).split(/\\n|\n/).map((line, i) => i ? [<br key={i} />, line] : line)}
          </h1>
          {subtitle && <div className="subtitle-gap text-lg md:text-xl text-zinc-500 dark:text-zinc-300 leading-relaxed" style={{
  marginTop: "1rem",
  maxWidth: "600px"
}}>
              {subtitle}
            </div>}
          <div className="flex flex-wrap gap-3 mt-10 justify-center">
            {primaryCta && <a href={primaryHref} className="inline-flex items-center px-6 py-3 rounded-lg bg-blue-600 text-white font-semibold hover:bg-blue-700 transition shadow-sm">
                {primaryCta}
              </a>}
            {secondaryCta && <a href={secondaryHref} className={`inline-flex items-center px-6 py-3 rounded-lg border border-zinc-300 dark:border-zinc-600 text-zinc-700 dark:text-zinc-200 font-semibold hover:bg-zinc-50 dark:hover:bg-zinc-800 transition ${secondaryHref === "/request-demo" ? "demo-gradient-btn" : ""}`}>
                {secondaryCta}
              </a>}
          </div>
        </div> : <div className="flex flex-col md:flex-row items-center gap-10 md:gap-16">
          <div className="flex-1 min-w-0">
            {badge && <div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-blue-50 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-700 text-blue-700 dark:text-blue-300 text-sm font-medium mb-6">
                {badge}
              </div>}
            {eyebrow && <div className="text-xs font-semibold tracking-widest uppercase text-blue-600 dark:text-blue-400 mb-4">
                {eyebrow}
              </div>}
            <h1 className="text-4xl md:text-5xl font-semibold text-zinc-900 dark:text-white leading-tight tracking-tight">
            {String(title).split(/\\n|\n/).map((line, i) => i ? [<br key={i} />, line] : line)}
          </h1>
            {subtitle && <div className="subtitle-gap text-lg md:text-xl text-zinc-500 dark:text-zinc-300 leading-relaxed" style={{
  marginTop: "1rem"
}}>
                {subtitle}
              </div>}
            <div className="flex flex-wrap gap-3 mt-8">
              {primaryCta && <a href={primaryHref} className="inline-flex items-center px-6 py-3 rounded-lg bg-blue-600 text-white font-semibold hover:bg-blue-700 transition shadow-sm">
                  {primaryCta}
                </a>}
              {secondaryCta && <a href={secondaryHref} className={`inline-flex items-center px-6 py-3 rounded-lg border border-zinc-300 dark:border-zinc-600 text-zinc-700 dark:text-zinc-200 font-semibold hover:bg-zinc-50 dark:hover:bg-zinc-800 transition ${secondaryHref === "/request-demo" ? "demo-gradient-btn" : ""}`}>
                  {secondaryCta}
                </a>}
            </div>
          </div>
          {children && <div className={`flex-1 min-w-0 hero-image ${heroImageClassName}`}>
              {children}
            </div>}
        </div>}
    </div>
  </section>;

<MarketingPage />

<Hero title="Pricing" subtitle="The developer tools are free, for every developer, forever. Aspect Workflows is priced for your team, with no usage billing when you self-host." centered />

<Section>
  <div className="grid gap-6" style={{ gridTemplateColumns: "repeat(2, 1fr)" }}>
    {/* Free Developer Tools */}

    <div className="flex flex-col p-8 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <h3 className="text-xl font-bold text-zinc-900 dark:text-white">Free Developer Tools</h3>

      <div className="mt-2">
        <span className="text-3xl font-semibold text-zinc-900 dark:text-white">\$0</span>
        <span className="text-zinc-500 dark:text-zinc-400">, free forever</span>
      </div>

      <p className="mt-4 text-sm text-zinc-600 dark:text-zinc-400">
        Everything an individual developer needs to be productive with Bazel. No trial, no seat counting.
      </p>

      <a href="/docs/cli/install" className="inline-flex items-center justify-center mt-6 px-6 py-3 rounded-lg border border-zinc-300 dark:border-zinc-600 text-zinc-900 dark:text-white font-semibold hover:bg-zinc-50 dark:hover:bg-zinc-800 transition">
        Install the Free CLI
      </a>

      <div className="mt-6 pt-6 border-t border-zinc-200 dark:border-zinc-700">
        <p className="text-sm font-semibold text-zinc-900 dark:text-white mb-3">Key Features:</p>

        <ul className="space-y-2 text-sm text-zinc-600 dark:text-zinc-400">
          <li>✓ <a href="/platform/cli" className="text-blue-600 dark:text-blue-400 hover:underline">Aspect CLI</a>: the task runner for Bazel</li>
          <li>✓ Format, lint, <a href="/platform/build-file-generation" className="text-blue-600 dark:text-blue-400 hover:underline">BUILD generation</a>, and delivery tasks</li>
          <li>✓ Custom tasks in Starlark with <a href="/platform/axl" className="text-blue-600 dark:text-blue-400 hover:underline">AXL</a></li>
          <li>✓ <a href="/platform/marvin" className="text-blue-600 dark:text-blue-400 hover:underline">Marvin</a>: GitHub & GitLab Bot</li>
          <li>✓ <a href="/platform/rules" className="text-blue-600 dark:text-blue-400 hover:underline">Aspect Bazel Rules</a>: rules\_py, rules\_js, rules\_ts, rules\_lint, and <a href="/docs/bazel/open-source" className="text-blue-600 dark:text-blue-400 hover:underline">more</a></li>
          <li>✓ Self-led <a href="/learning" className="text-blue-600 dark:text-blue-400 hover:underline">Bazel courses</a></li>
        </ul>
      </div>
    </div>

    {/* Aspect Workflows */}

    <div className="flex flex-col p-8 rounded-xl border-2 border-blue-600 bg-white dark:bg-zinc-800 relative">
      <span className="absolute top-0 right-4 -translate-y-1/2 bg-blue-600 text-white text-xs font-semibold px-3 py-1 rounded-full">
        The Platform
      </span>

      <h3 className="text-xl font-bold text-zinc-900 dark:text-white">Aspect Workflows</h3>

      <div className="mt-2">
        <span className="text-3xl font-semibold text-zinc-900 dark:text-white">Priced for your team</span>
      </div>

      <p className="mt-4 text-sm text-zinc-600 dark:text-zinc-400">
        The developer productivity platform for Bazel, deployed into your cloud account or Aspect-hosted single-tenant. Self-host and you pay your cloud provider directly for compute; we never meter your builds.
      </p>

      <a href="/contact" className="inline-flex items-center justify-center mt-6 px-6 py-3 rounded-lg bg-blue-600 text-white font-semibold hover:bg-blue-700 transition">
        Talk to an Expert
      </a>

      <p className="mt-3 text-center text-sm text-zinc-500 dark:text-zinc-400">
        or <a href="/trial" className="text-blue-600 dark:text-blue-400 font-semibold hover:underline">start a free trial</a> · <a href="/request-demo" className="text-blue-600 dark:text-blue-400 font-semibold hover:underline">request a demo</a>
      </p>

      <div className="mt-6 pt-6 border-t border-zinc-200 dark:border-zinc-700">
        <p className="text-sm font-semibold text-zinc-900 dark:text-white mb-3">Everything in Free, plus:</p>

        <ul className="space-y-2 text-sm text-zinc-600 dark:text-zinc-400">
          <li>✓ Bazel-tuned <a href="/platform/ci-runners" className="text-blue-600 dark:text-blue-400 hover:underline">CI runners</a> on GitHub Actions, CircleCI, GitLab, or Buildkite</li>
          <li>✓ Your hardware, your choice: runner groups with x86, Arm, and GPU side by side</li>
          <li>✓ <a href="/platform/remote-cache" className="text-blue-600 dark:text-blue-400 hover:underline">Remote cache</a> in your VPC</li>
          <li>✓ <a href="/platform/remote-execution" className="text-blue-600 dark:text-blue-400 hover:underline">Remote execution</a>, included from day one</li>
          <li>✓ <a href="/platform/web-ui" className="text-blue-600 dark:text-blue-400 hover:underline">Build & Test UI</a> behind your SSO</li>
          <li>✓ <a href="/platform/selective-delivery" className="text-blue-600 dark:text-blue-400 hover:underline">Selective Delivery</a></li>
          <li>✓ SSO (OIDC or SAML) and SCIM provisioning</li>
          <li>✓ White-glove installation by Aspect engineers</li>
          <li>✓ Dedicated Slack channel and on-call SLA, part of included <a href="/platform#support" className="text-blue-600 dark:text-blue-400 hover:underline">platform support</a></li>
        </ul>
      </div>
    </div>
  </div>
</Section>

<Section gray>
  <SectionHeader title="Pricing that works like your infrastructure" subtitle="Most build platforms meter your usage, so your bill grows with every build. Aspect Workflows runs on your own cloud account instead." />

  <FeatureGrid2>
    <FeatureCard title="No usage billing when you self-host" href="/platform/hosting" description="Self-host and compute runs in your own cloud account at your negotiated rates, so committed-use discounts and savings plans apply, and faster builds never mean a bigger invoice. Teams typically cut CI compute spend 40-80% versus provider-hosted runners.">
      <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/cloud.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=acaa74dfc7233d60a896de1d6ec99de1" alt="" width="24" height="24" data-path="images/marketing/icons/cloud.svg" />
    </FeatureCard>

    <FeatureCard title="Big savings before RBE" href="/platform/ci-runners" description="Warm, Bazel-tuned runners deliver most of the speedup without a remote-execution migration. Remote execution is in the deployment from day one for when you're ready, on the same platform, at no extra tier.">
      <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/fast.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=a631c8f2127105e4112db8e0a4ccc641" alt="" width="48" height="49" data-path="images/marketing/icons/fast.svg" />
    </FeatureCard>

    <FeatureCard title="Self-hosted, even when it's hard" description="Every deployment is single-tenant and isolated: your cloud account, or Aspect-hosted that's yours alone. GovCloud, air-gapped networks, and strict security postures welcome, with SSO (OIDC or SAML) and SCIM for your identity stack." href="/platform/hosting">
      <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/protect.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=af5818d5725923799e54382c188d5256" alt="" width="40" height="40" data-path="images/marketing/icons/protect.svg" />
    </FeatureCard>

    <FeatureCard title="Bazel experts included" description="White-glove installation, tuning by Bazel experts, a dedicated Slack channel, and an on-call SLA. You don't need to hire Bazel infrastructure expertise." href="/platform#support">
      <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/technical-support.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=cc2eb440ec8244f9100062982974da4d" alt="" width="24" height="24" data-path="images/marketing/icons/technical-support.svg" />
    </FeatureCard>
  </FeatureGrid2>
</Section>

<Section>
  <SectionHeader title="Compare Plans & Features" />

  <div className="overflow-x-auto">
    <table className="w-full text-sm border-collapse">
      <thead>
        <tr className="border-b border-zinc-200 dark:border-zinc-700">
          <th className="text-left py-3 px-4 font-semibold text-zinc-900 dark:text-white">Feature</th>
          <th className="text-center py-3 px-4 font-semibold text-zinc-900 dark:text-white">Free</th>
          <th className="text-center py-3 px-4 font-semibold text-zinc-900 dark:text-white">Workflows</th>
        </tr>
      </thead>

      <tbody className="text-zinc-600 dark:text-zinc-400">
        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/rules" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Aspect Bazel Rules →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">rules\_py, rules\_js, rules\_ts, rules\_lint, and <a href="/docs/bazel/open-source" className="text-blue-600 dark:text-blue-400 hover:underline">more</a></td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/cli" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Aspect CLI →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">build, test, run, format, lint, gazelle, and delivery tasks</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Custom tasks in Starlark with AXL</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">CI status checks and annotations on GitHub, GitLab, CircleCI, and Buildkite</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/build-file-generation" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Build File Generation →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Python, JS/TS, Go, Protobuf, C/C++, Starlark, and custom Starlark generators</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/marvin" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Marvin: GitHub & GitLab Bot →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Status checks, PR and MR comments, review annotations, suggested fixes</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/ci-runners" className="hover:text-blue-600 dark:hover:text-blue-400 transition">CI Runners →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Warm, auto-scaling runners on GitHub Actions, CircleCI, GitLab, or Buildkite</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Pre-warmed Bazel fetch phase, so first jobs skip dependency downloads</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Runner groups: x86, Arm, and GPU hardware side by side</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Custom machine types and images; Docker tests fully supported</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Health checks take unhealthy runners out of service automatically</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Scales down to zero between CI runs</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/remote-cache" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Remote Cache →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">In your VPC, co-located with your runners</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Build without the Bytes</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Developer-facing cache access via your SSO</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Cache observability: hit rates, throughput, storage</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/remote-execution" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Remote Execution →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Auto-scaling to zero, with action de-duplication</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Multiple RBE platforms: your arch, CPU, memory, NVMe, GPU, and container image</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Multiple worker size classes per platform, with automatic size and memory matching per action</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Docker tests on workers</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">REv2 standard protocol, no lock-in</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/selective-delivery" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Selective Delivery →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Stamping, parallel pushes, and the delivery manifest</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Digest-based change detection: deliver only the targets whose outputs changed</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Near-free selective delivery resolution with Build without the Bytes on the in-VPC cache</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/web-ui" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Build & Test UI →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Developer and focus modes: detail tuned to who's looking</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Invocation drill-down: targets, test cases, and raw logs with full-text search</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Test inspection: status and duration, filterable and sortable, per-test logs</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">One click from a Marvin PR or MR comment to the failing test</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Runs at a subdomain on your own DNS, behind your SSO</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/hosting#enterprise-security" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Enterprise Security & Identity →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">SSO (OIDC or SAML)</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">SCIM provisioning and deprovisioning</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/hosting" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Compliance & Infrastructure Requirements →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Single-tenant, isolated deployment: your builds never touch shared infrastructure</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Self-hosted in your own AWS or GCP account, or Aspect-hosted single-tenant</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">GovCloud, air-gapped, and strict-security deployments</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Full visibility for audits: logs and configuration live in your own cloud account</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform/hosting#observability" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Observability & Operations →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Dashboards, monitoring, alerting</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">24/7 infrastructure on-call by Aspect</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>

        <tr className="bg-zinc-50 dark:bg-zinc-800/50">
          <td colSpan="3" className="py-3 px-4 font-semibold text-zinc-900 dark:text-white"><a href="/platform#support" className="hover:text-blue-600 dark:hover:text-blue-400 transition">Support →</a></td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Community support on Aspect Community Slack</td><td className="text-center py-2 px-4">✓</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">White-glove installation by Aspect engineers</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">Dedicated Slack channel with Aspect engineers</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
        <tr className="border-b border-zinc-100 dark:border-zinc-800"><td className="py-2 px-4">On-call SLA</td><td className="text-center py-2 px-4">—</td><td className="text-center py-2 px-4"><span className="text-blue-600 dark:text-blue-400 font-bold">✓</span></td></tr>
      </tbody>
    </table>
  </div>
</Section>

<Section gray>
  <SectionHeader title="Bazel Support" subtitle="Expert help with Bazel itself from the Aspect team, with or without the platform. Platform support, including white-glove installation and 24/7 on-call, comes included with Aspect Workflows." />

  <div className="overflow-x-auto">
    <table className="w-full text-sm border-collapse">
      <thead>
        <tr className="border-b border-zinc-200 dark:border-zinc-700">
          <th className="text-left py-3 px-4 font-semibold text-zinc-900 dark:text-white">Feature</th>
          <th className="text-center py-3 px-4 font-semibold text-zinc-900 dark:text-white">Free</th>
          <th className="text-center py-3 px-4 font-semibold text-zinc-900 dark:text-white">Standard</th>
        </tr>
      </thead>

      <tbody className="text-zinc-600 dark:text-zinc-400">
        <tr className="border-b border-zinc-100 dark:border-zinc-800">
          <td className="py-3 px-4">Community Support on Aspect Community Slack</td>
          <td className="text-center py-3 px-4">✓</td>
          <td className="text-center py-3 px-4">✓</td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800">
          <td className="py-3 px-4">Self-led Bazel Courses</td>
          <td className="text-center py-3 px-4">✓</td>
          <td className="text-center py-3 px-4">✓</td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800">
          <td className="py-3 px-4">Dedicated Slack Channel</td>
          <td className="text-center py-3 px-4"> </td>
          <td className="text-center py-3 px-4">✓</td>
        </tr>

        <tr className="border-b border-zinc-100 dark:border-zinc-800">
          <td className="py-3 px-4">Slack Questions</td>
          <td className="text-center py-3 px-4"> </td>
          <td className="text-center py-3 px-4">Unlimited</td>
        </tr>

        <tr>
          <td className="py-3 px-4">SLA to Respond</td>
          <td className="text-center py-3 px-4"> </td>
          <td className="text-center py-3 px-4">24 hours</td>
        </tr>
      </tbody>
    </table>
  </div>

  <div className="flex flex-wrap justify-center gap-4 mt-8">
    <a href="/learning" className="inline-flex items-center px-6 py-3 rounded-lg border border-zinc-300 dark:border-zinc-600 text-zinc-900 dark:text-white font-semibold hover:bg-zinc-50 dark:hover:bg-zinc-800 transition">
      Get Started Free
    </a>

    <a href="/contact" className="inline-flex items-center px-6 py-3 rounded-lg bg-blue-600 text-white font-semibold hover:bg-blue-700 transition">
      Talk with Us
    </a>
  </div>
</Section>

<CTA title="Let's price it for your team" subtitle="Tell us about your monorepo and your infrastructure constraints. We'll come back with a deployment plan and a number." primaryCta="Talk with Us" primaryHref="/contact" secondaryCta="Request a Demo" secondaryHref="/request-demo" />
