> ## 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.

# Partners and Integrations

> Aspect Build partners and integrates with Google, AWS, Microsoft Azure, CI/CD systems, system integrators and resellers. Join our partner program today.

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 FeatureGrid = ({children, cols = 2}) => <div className="grid gap-5" style={{
  gridTemplateColumns: `repeat(${cols}, 1fr)`
}}>
    {children}
  </div>;

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 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 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>;

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>;

<MarketingPage />

<Hero title="Partners and Integrations" subtitle="Aspect Build works with a growing ecosystem of partners and integrations to help teams adopt, scale, and operationalize Bazel across their organizations. From cloud platforms and CI/CD systems to open source communities and trusted resellers, our partners extend the value of Aspect Build Bazel support services and Aspect Workflows developer productivity platform." primaryCta="Get in Touch" primaryHref="mailto:hello@aspect.build" />

<Section>
  <SectionHeader title="Strategic Partners" subtitle="Strategic partners work closely with Aspect Build on product alignment, go-to-market initiatives, and long-term Bazel ecosystem growth." />

  <div className="flex flex-col md:flex-row items-center gap-8 md:gap-12 p-8 rounded-2xl bg-zinc-50 dark:bg-zinc-800/50 border border-zinc-200 dark:border-zinc-700">
    <div className="flex-1">
      <p className="text-lg text-zinc-600 dark:text-zinc-300 leading-relaxed">
        As the originator of Bazel, Google is a key strategic partner and Aspect Build customer. Aspect Build aligns closely with Bazel's roadmap and best practices to help organizations successfully adopt Bazel at scale.
      </p>
    </div>

    <div className="flex-1 flex justify-center">
      <div className="text-3xl font-semibold text-zinc-400 dark:text-zinc-500">Google</div>
    </div>
  </div>
</Section>

<Section gray>
  <SectionHeader title="Cloud Vendors" subtitle="Aspect Build integrates with major cloud providers to support remote execution, remote caching, artifact storage, and scalable CI workloads." />

  <div className="grid gap-6" style={{ gridTemplateColumns: "repeat(1, 1fr)" }}>
    <div className="p-6 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 mb-3">AWS</h3>
      <p className="text-zinc-600 dark:text-zinc-400">Deploy Bazel remote caching and execution on AWS infrastructure, integrating with services such as EC2, S3, EKS, and IAM.</p>
    </div>

    <div className="p-6 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 mb-3">Google Cloud</h3>
      <p className="text-zinc-600 dark:text-zinc-400">Native fit for Bazel workloads, including Cloud Storage, GKE, and Google's remote execution APIs.</p>
    </div>

    <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <div className="flex items-center gap-3 mb-3">
        <h3 className="text-xl font-bold text-zinc-900 dark:text-white">Microsoft Azure</h3>
        <span className="text-xs font-semibold px-2 py-1 rounded bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300">Planned for Q2 2026</span>
      </div>

      <p className="text-zinc-600 dark:text-zinc-400">Run Bazel builds and CI pipelines on Azure infrastructure, leveraging Azure storage and compute services.</p>
    </div>
  </div>
</Section>

<Section>
  <SectionHeader title="CI/CD" subtitle="Aspect Build integrates with popular continuous integration and development (CI/CD) systems to enable fast, reliable, and reproducible builds." />

  <FeatureGrid cols={2}>
    <FeatureCard title="GitHub Actions" description="Run Bazel builds, tests, and releases using GitHub-hosted or self-hosted runners with Aspect tooling." />

    <FeatureCard title="GitLab CI" description="Integrate Bazel into GitLab pipelines for monorepos and large-scale polyglot builds." />

    <FeatureCard title="Buildkite" description="Power highly scalable Bazel-based CI pipelines with fine-grained caching and remote execution." />

    <FeatureCard title="CircleCI" description="Ship at AI speed with enterprise-grade confidence." />
  </FeatureGrid>
</Section>

<Section gray>
  <SectionHeader title="Developer Languages" subtitle="Aspect Build supports modern software development with Bazel across a wide range of programming languages." />

  <div className="grid gap-8" style={{ gridTemplateColumns: "repeat(1, 1fr)" }}>
    <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-4">Languages</h3>

      <div className="flex flex-wrap gap-4">
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">C / C++</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Go</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Java</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">JavaScript</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Kotlin</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Python</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">TypeScript</span>
      </div>
    </div>

    <div className="grid gap-6" style={{ gridTemplateColumns: "repeat(2, 1fr)" }}>
      <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
        <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-4">Mobile & Client</h3>

        <div className="flex flex-wrap gap-4">
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Android (Java / Kotlin)</span>
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Objective-C</span>
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Swift (iOS)</span>
        </div>
      </div>

      <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
        <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-4">Systems & Infrastructure</h3>

        <div className="flex flex-wrap gap-4">
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Rust</span>
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Shell / Bash</span>
          <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">WebAssembly (Wasm)</span>
        </div>
      </div>
    </div>

    <div className="p-6 rounded-xl bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800">
      <h3 className="text-lg font-semibold text-zinc-900 dark:text-white">Don't see one of your tools or vendors?</h3>

      <p className="mt-2 text-zinc-600 dark:text-zinc-300">
        Contact us today by emailing <a href="mailto:hello@aspect.build" className="text-blue-600 dark:text-blue-400 hover:underline">{"hello@aspect.build"}</a> to discuss your needs.
      </p>
    </div>
  </div>
</Section>

<Section>
  <SectionHeader title="Remote Execution and Caching" subtitle="Aspect Build supports the Remote Execution Protocol. We provide Aspect-hosted services on our cloud. We support self-hosted services on your choice of cloud and regions." />

  <div className="grid gap-6" style={{ gridTemplateColumns: "repeat(1, 1fr)" }}>
    <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-3">Managed Services</h3>
    </div>

    <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-3">Remote Execution Clients</h3>

      <div className="flex flex-wrap gap-4">
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Bazel</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Buck2</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Reclient</span>
      </div>
    </div>

    <div className="p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800">
      <h3 className="text-lg font-semibold text-zinc-900 dark:text-white mb-3">Cache & Remote Execution Services</h3>

      <div className="flex flex-wrap gap-4">
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Aspect-hosted</span>
        <span className="px-3 py-1 rounded-full bg-zinc-100 dark:bg-zinc-700 text-sm text-zinc-700 dark:text-zinc-300">Cloud self-hosted</span>
      </div>
    </div>
  </div>

  <p className="mt-6 text-zinc-600 dark:text-zinc-300">
    To discuss your options, <a href="/contact" className="text-blue-600 dark:text-blue-400 hover:underline">schedule time to talk with us</a>.
  </p>
</Section>

<Section gray>
  <SectionHeader title="Resellers & Service Partners" subtitle="Our resellers and service partners help customers procure Aspect Build products and deliver Bazel expertise locally or at scale." />

  <FeatureGrid cols={2}>
    <FeatureCard title="Authorized Resellers" description="Regional and global resellers who can help with purchasing, contracting, and enterprise procurement requirements." />

    <FeatureCard title="System Integrators & Consultancies" description="Partners who provide hands-on Bazel adoption, migration, and optimization services using Aspect Build products and best practices." />
  </FeatureGrid>
</Section>

<CTA title="Become a Partner" subtitle="Interested in partnering with Aspect Build? We're always looking to collaborate with organizations that share our mission to make Bazel the standard build system for large-scale software development." primaryCta="Get in Touch" primaryHref="/contact" />
