> ## 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 at BazelCon 2026

> What's new from Aspect, the platform behind it, and the team you'll meet at BazelCon 2026 in Amsterdam.

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 StatsBar = ({stats = []}) => <div className="flex flex-wrap justify-center gap-8 md:gap-16 py-4">
    {stats.map((stat, i) => <div key={i} className="flex flex-col items-center text-center">
        <span className="text-3xl md:text-4xl font-bold text-zinc-900 dark:text-white">{stat.value}</span>
        <span className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">{stat.label}</span>
      </div>)}
  </div>;

export const PlatformFeature = ({title, description, href, linkText = "Learn more"}) => <div className="flex flex-col p-5 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-200 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
    <h3 className="text-sm font-semibold text-zinc-900 dark:text-white">{title}</h3>
    <p className="mt-1.5 text-xs text-zinc-500 dark:text-zinc-400 leading-relaxed">{description}</p>
    {href && <a href={href} className="inline-flex items-center mt-3 text-xs text-blue-600 dark:text-blue-400 font-semibold hover:underline underline-offset-2">
        {linkText} →
      </a>}
  </div>;

export const FeatureGrid2 = ({children}) => <div className="marketing-grid-2">{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>;
};

<MarketingPage />

<section className="w-full flex justify-center px-4 pt-8 pb-4" style={{ background: "linear-gradient(180deg, var(--hero-gradient-start, #f8fafc) 0%, var(--hero-gradient-end, #ffffff) 100%)" }}>
  <div className="w-full" style={{ maxWidth: "1140px" }}>
    <div className="flex flex-col md:flex-row items-center gap-8 md:gap-16">
      <div className="flex-1 min-w-0">
        <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">
          13–15 October 2026 · Amsterdam
        </div>

        <h1 className="text-4xl md:text-5xl font-semibold text-zinc-900 dark:text-white leading-tight tracking-tight">
          Aspect at BazelCon
        </h1>

        <div className="subtitle-gap text-lg md:text-xl text-zinc-500 dark:text-zinc-300 leading-relaxed" style={{ marginTop: "1rem" }}>
          Everything from the booth in one place: product briefs, white papers, and the talks. Take what’s useful; the rest will still be here when you get home.
        </div>

        <div className="flex flex-wrap gap-3 mt-8">
          <a href="/trial" 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">Start a trial</a>
          <a href="/contact" 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">Talk with us</a>
        </div>
      </div>

      <div className="hidden md:block flex-1 min-w-0">
        <div className="relative">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/bazelcon-2026/amsterdam.svg?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=663d84667399ce6322da376651565f42" alt="" aria-hidden="true" className="w-full h-auto select-none pointer-events-none" width="853" height="421" data-path="images/marketing/bazelcon-2026/amsterdam.svg" />

          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/bazelcon-2026/marvin.svg?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=e5f8dc46a562156ad8eb585ec8d8303f" alt="" aria-hidden="true" className="absolute select-none pointer-events-none" style={{ width: "26%", left: "-2%", bottom: "8%" }} width="2708" height="1689" data-path="images/marketing/bazelcon-2026/marvin.svg" />
        </div>
      </div>
    </div>
  </div>
</section>

<div id="talks" className="w-full flex justify-center px-4 py-8 md:py-12" style={{ scrollMarginTop: "84px" }}>
  <div className="w-full" style={{ maxWidth: "1140px" }}>
    <div className="mb-6">
      <p className="text-xs font-semibold tracking-widest text-blue-600 dark:text-blue-400 uppercase mb-2">Our talks</p>
      <h2 className="text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">Where to find us on the programme</h2>
      <p className="mt-3 text-lg text-zinc-500 dark:text-zinc-300 leading-relaxed max-w-3xl">Seven conference sessions and three Training Day workshops across all three days, plus two community events around the show.</p>
    </div>

    <div className="mt-8 flex flex-col gap-10">
      <div>
        <h3 className="text-xs font-semibold uppercase tracking-widest text-zinc-400 dark:text-zinc-500 pb-2">Tuesday 13 October · Training Day</h3>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>11:00</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1293067" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">rules\_\{js|ts}: JavaScript & TypeScript with Bazel</a></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Jason Bedard & Greg Magolan · Room 15-16</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Hands-on JavaScript and TypeScript builds with Bazel. Pre-registration required.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>13:30</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1293142" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">Extending Bazel with Starlark: Custom Commands and Code Generation</a></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Jason Bedard & Greg Magolan · Room 15-16</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Custom commands and BUILD file generation written in Starlark. Pre-registration required.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>15:30</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1293149" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">rules\_py: Python Builds with Bazel</a></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Cesar Abel & Jason Bedard · Room 15-16</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Hands-on Python builds with Bazel. Pre-registration required.</p>
          </div>
        </div>

        <div className="mt-4 rounded-xl border border-blue-200 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/30 px-5 py-4">
          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white">BazelCon Kickoff<span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-600 text-white align-middle whitespace-nowrap">Community event</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">18:00–21:00, after Training Day · Postillion Hotel & Convention Centre (the BazelCon venue)</div>
            <p className="mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Meet the community before the conference proper: a casual get-together with no talks, no slides and no pressure. Free, but please register.</p>
            <a href="https://luma.com/z2il5tv1" target="_blank" rel="noopener noreferrer" className="inline-flex items-center mt-3 text-sm font-semibold text-blue-600 dark:text-blue-400 hover:underline">Register on Luma →</a>
          </div>
        </div>
      </div>

      <div>
        <h3 className="text-xs font-semibold uppercase tracking-widest text-zinc-400 dark:text-zinc-500 pb-2">Wednesday 14 October</h3>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>14:00</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1272795" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">Every monorepo reinvents CI reporting. Stop hand-wiring it.</a></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Greg Magolan · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Build and test telemetry as a reusable component, instead of bespoke glue in every repo.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>16:20</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1293172" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">Workflows for the AI Age</a><span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 align-middle whitespace-nowrap">Lightning</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Greg Magolan · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Agents generate code faster than teams can build, test and review it. The bottleneck of the AI era is proving code correct without unbounded compute.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>17:00</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1272752" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">Stop redeploying half your fleet for a one-line change</a><span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 align-middle whitespace-nowrap">Lightning</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Matt Cramer · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Selective delivery: deploy only what actually changed, derived from the dependency graph rather than from a branch diff.</p>
          </div>
        </div>
      </div>

      <div>
        <h3 className="text-xs font-semibold uppercase tracking-widest text-zinc-400 dark:text-zinc-500 pb-2">Thursday 15 October</h3>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>10:00</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1269355" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">The Sandbox Is a Filesystem: Content-Addressed Bazel Builds on macOS with FSKit</a></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Borja Lorente · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Replacing sandbox file staging with a content-addressed filesystem on macOS, so sandboxed actions stop paying the copy and symlink tax.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>16:20</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1273645" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">What Changed? A Better Watch Protocol for Bazel</a><span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 align-middle whitespace-nowrap">Lightning</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Jason Bedard · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">The Incremental Build Protocol tells a dev server <em>which</em> files changed, not merely that a build happened.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>16:30</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1269461" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">rules\_py 2.x: A Hermetic, Native-Launcher Architecture for Python on Bazel</a><span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 align-middle whitespace-nowrap">Lightning</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Cesar Abel · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">The 2.x rearchitecture: a native launcher, and genuinely hermetic Python.</p>
          </div>
        </div>

        <div className="flex gap-5 py-4 border-b border-zinc-200 dark:border-zinc-700/60">
          <div className="shrink-0 w-14 text-sm font-semibold text-blue-600 dark:text-blue-400" style={{ fontVariantNumeric: "tabular-nums" }}>16:40</div>

          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white"><a href="https://bazelcon-2026.sessionize.com/session/1273639" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 hover:underline">Extend Gazelle in Starlark</a><span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 align-middle whitespace-nowrap">Lightning</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Jason Bedard · Room 5-8</div>
            <p className="hidden md:block mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">Write BUILD generators as Starlark plugins instead of Go extensions compiled into a gazelle binary.</p>
          </div>
        </div>
      </div>

      <div>
        <h3 className="text-xs font-semibold uppercase tracking-widest text-zinc-400 dark:text-zinc-500 pb-2">Friday 16 October</h3>

        <div className="mt-4 rounded-xl border border-blue-200 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/30 px-5 py-4">
          <div className="min-w-0">
            <div className="font-semibold text-zinc-900 dark:text-white">Bazel Hackathon<span className="ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-semibold bg-blue-600 text-white align-middle whitespace-nowrap">Community event</span></div>
            <div className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">09:00–13:00 · Datadog Netherlands, Herengracht 601</div>
            <p className="mt-2 text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed">The morning after the conference: bring a laptop and a real problem to hack on with the community — no slides, no pitches. Hosted with Datadog. Capacity is limited to 35, so register early, with your full name.</p>
            <a href="https://luma.com/9dm41b1h" target="_blank" rel="noopener noreferrer" className="inline-flex items-center mt-3 text-sm font-semibold text-blue-600 dark:text-blue-400 hover:underline">Register on Luma →</a>
          </div>
        </div>
      </div>
    </div>

    <p className="mt-8 text-sm text-zinc-500 dark:text-zinc-400">
      Times are CEST (UTC+2) and, like room assignments, may change. The{' '}
      <a href="https://bazelcon-2026.sessionize.com/schedule" target="_blank" rel="noopener noreferrer" className="text-blue-600 dark:text-blue-400 font-semibold hover:underline">official BazelCon schedule</a>{' '}
      is the source of truth. Training Day sessions need pre-registration.
    </p>
  </div>
</div>

<div id="whats-new" className="w-full flex justify-center px-4 py-8 md:py-12" style={{ scrollMarginTop: "84px" }}>
  <div className="w-full" style={{ maxWidth: "1140px" }}>
    <div className="mb-6">
      <p className="text-xs font-semibold tracking-widest text-blue-600 dark:text-blue-400 uppercase mb-2">What's new</p>
      <h2 className="text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">What we're launching</h2>
      <p className="mt-3 text-lg text-zinc-500 dark:text-zinc-300 leading-relaxed max-w-3xl">One page each: what it is, what problem it solves, and what changes for you.</p>
    </div>

    <FeatureGrid2>
      <FeatureCard title="Aspect Cloud" description="A hosted remote cache and the Build Results UI, with a free tier. Sign up, point your repo at it, done." href="/bazelcon-2026/aspect-cloud">
        <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/icons/Remote-caching.svg?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=22b944a217551297b3dc183eaef65e61" alt="" width="32" height="32" data-path="images/marketing/icons/Remote-caching.svg" />
      </FeatureCard>

      <FeatureCard title="Build Results UI" description="Why it was slow, what the cache did, which test is actually flaky, and what changed since the last one." href="/platform/web-ui">
        <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/icons/UI_1.svg?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=76c80aa5c30538d1a09ca752299de09f" alt="" width="32" height="32" data-path="images/marketing/icons/UI_1.svg" />
      </FeatureCard>

      <FeatureCard title="Build Trends" description="Keeping every build event has been expensive enough that most teams sample it. So “is the build getting slower?” has no answer." href="/bazelcon-2026/build-history-and-cost">
        <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/Test-reporting.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=645b8801b1504d458c831a6ec036ec59" alt="" width="48" height="48" data-path="images/marketing/icons/Test-reporting.svg" />
      </FeatureCard>

      <FeatureCard title="CLI, AXL & MCP" description="And when the build fails, all it gets is log text to guess at, so it retries blindly or hands the problem back to a human." href="/bazelcon-2026/cli-axl-mcp">
        <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/icons/Extension.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=3239bb28f38ff4a7e9d06bace830bac7" alt="" width="32" height="32" data-path="images/marketing/icons/Extension.svg" />
      </FeatureCard>
    </FeatureGrid2>
  </div>
</div>

<div id="discover-our-platform" className="w-full flex justify-center px-4 py-8 md:py-12" style={{ scrollMarginTop: "84px" }}>
  <div className="w-full" style={{ maxWidth: "1140px" }}>
    <div className="mb-6">
      <p className="text-xs font-semibold tracking-widest text-blue-600 dark:text-blue-400 uppercase mb-2">Discover our platform</p>
      <h2 className="text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">Build faster. Ship more. Waste less.</h2>
      <p className="mt-3 text-lg text-zinc-500 dark:text-zinc-300 leading-relaxed max-w-3xl">The pieces of Aspect Workflows behind everything above. Pick the one you came here for.</p>
    </div>

    <div className="mt-8 marketing-grid-2">
      <a href="/platform/hosting" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Aspect Cloud or Aspect Enterprise</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/ci-runners" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">CI Runners</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/remote-cache" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Remote Cache</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/remote-execution" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Remote Execution</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/web-ui" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Build Results UI</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/selective-delivery" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Selective Delivery</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/build-file-generation" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Build File Generation</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/axl" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">AXL</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/rules" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Bazel Rules</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>

      <a href="/platform/marvin" className="flex items-center justify-between gap-3 px-4 py-3 rounded-xl border border-zinc-200 dark:border-zinc-700/60 bg-white dark:bg-zinc-800/40 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-sm transition-all duration-200">
        <span className="text-sm font-semibold text-zinc-900 dark:text-white">Marvin: GitHub & GitLab Bot</span>
        <span className="text-blue-600 dark:text-blue-400" aria-hidden="true">→</span>
      </a>
    </div>

    <div className="mt-8 text-center">
      <a href="/platform" className="inline-flex items-center text-blue-600 dark:text-blue-400 font-semibold hover:underline">
        See the whole platform →
      </a>
    </div>
  </div>
</div>

<div id="get-started" className="w-full flex justify-center px-4 py-8 md:py-12 bg-gray-50 dark:bg-zinc-900" style={{ scrollMarginTop: "84px" }}>
  <div className="w-full" style={{ maxWidth: "1140px" }}>
    <div className="mb-6">
      <p className="text-xs font-semibold tracking-widest text-blue-600 dark:text-blue-400 uppercase mb-2">Get started</p>
      <h2 className="text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">Talk to someone who'll be there</h2>
      <p className="mt-3 text-lg text-zinc-500 dark:text-zinc-300 leading-relaxed max-w-3xl">An engineer is on the stand all day, every day, not a badge scanner. Come find us on the stand, or book a meeting with us for during or after the show.</p>
    </div>

    <div className="mt-8 marketing-grid-3">
      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Cesar-Abel.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=acce7c43e44bebfdab2d70239cd791d1" alt="Portrait of Cesar Abel" width="400" height="400" data-path="images/marketing/team/Cesar-Abel.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Cesar Abel</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Senior Engineer</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Cristian-Falcas.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=282a30c4df06c3facc95d23144a09cde" alt="Portrait of Cristian Falcas" width="400" height="400" data-path="images/marketing/team/Cristian-Falcas.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Cristian Falcas</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Staff Engineer</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Greg-Magolan.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=685b7db5f7f0c9d0bab9e8ac5895a3ef" alt="Portrait of Greg Magolan" width="400" height="400" data-path="images/marketing/team/Greg-Magolan.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Greg Magolan</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Co-Founder</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Jade-Vargas.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=31bf260130c46ab8de7e590a74f386fc" alt="Portrait of Jade Vargas" width="400" height="400" data-path="images/marketing/team/Jade-Vargas.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Jade Vargas</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Bazel Strategist</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Jason-Bedard.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=def8e3741891819c26593202dac87768" alt="Portrait of Jason Bedard" width="400" height="400" data-path="images/marketing/team/Jason-Bedard.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Jason Bedard</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Senior Engineer</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Jessyka-Roark.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=cdd448c5bdfcdccbc03b752edba42fe8" alt="Portrait of Jessyka Roark" width="400" height="400" data-path="images/marketing/team/Jessyka-Roark.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Jessyka Roark</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Customer Success Manager</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Matt-Cramer.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=b3844aa78eb9208e574055a481bd5397" alt="Portrait of Matt Cramer" width="400" height="400" data-path="images/marketing/team/Matt-Cramer.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Matt Cramer</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Staff Engineer</p>
      </div>

      <div className="flex flex-col items-center text-center p-6 rounded-xl border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800/50">
        <div className="person-card-image">
          <img noZoom src="https://mintcdn.com/aspectbuild/4wAijf_e0qg5Bve0/images/marketing/team/Travis-Ellett.avif?fit=max&auto=format&n=4wAijf_e0qg5Bve0&q=85&s=323467d81850b5c10e01e69a0e19921f" alt="Portrait of Travis Ellett" width="400" height="400" data-path="images/marketing/team/Travis-Ellett.avif" />
        </div>

        <h3 className="text-base font-semibold text-zinc-900 dark:text-white">Travis Ellett</h3>
        <p className="text-sm text-zinc-500 dark:text-zinc-400 mt-1">Engineering Manager</p>
      </div>
    </div>

    <div className="mt-10 text-center">
      <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 shadow-sm">Book a meeting with us</a>
    </div>

    <div className="mt-6 text-center">
      <a href="/events" className="inline-flex items-center text-blue-600 dark:text-blue-400 font-semibold hover:underline">
        See all upcoming events →
      </a>
    </div>
  </div>
</div>

<CTA title="See it on your own builds" subtitle="Point a repository at a hosted instance and let a week of real builds accumulate." primaryCta="Start a trial" primaryHref="/trial" secondaryCta="Talk with us" secondaryHref="/contact" />
