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

# What's New at BazelCon 2025

> Wow, it’s been an exciting year in Bazel-land. See highlights from the BazelCon 2025 keynotes, Hackathon, Aspect Build product releases and more.

export const BlogPost = ({title, date, authors, tags, image, children}) => {
  const tagList = tags ? tags.split(", ").filter(Boolean) : [];
  const tagSlug = t => t.toLowerCase().replace(/&/g, "").replace(/\+/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
  const formattedDate = date ? new Date(date + "T00:00:00").toLocaleDateString("en-US", {
    year: "numeric",
    month: "long",
    day: "numeric"
  }) : "";
  return <section className="w-full flex justify-center px-4 py-12 md:py-16">
      <div style={{
    maxWidth: "800px",
    width: "100%"
  }}>
        {image && (typeof image === "string" ? <img noZoom src={image} alt={title} className="w-full rounded-xl mb-8" style={{
    maxHeight: "400px",
    objectFit: "cover"
  }} /> : <div className="blog-post-hero-image">{image}</div>)}
        <h1 className="text-3xl md:text-4xl font-bold text-zinc-900 dark:text-white">
          {title}
        </h1>
        <div className="flex flex-wrap items-center gap-3 mt-4 text-sm text-zinc-500 dark:text-zinc-400">
          {authors && <span>{authors}</span>}
          {authors && formattedDate && <span>·</span>}
          {formattedDate && <span>{formattedDate}</span>}
        </div>
        {tagList.length > 0 && <div className="flex flex-wrap gap-2 mt-3">
            {tagList.map(tag => <a key={tag} href={"/blog/tags/" + tagSlug(tag)} className="px-2 py-0.5 rounded-full text-xs bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400 hover:bg-blue-100 dark:hover:bg-blue-900/40 hover:text-blue-700 dark:hover:text-blue-300 transition">
                {tag}
              </a>)}
          </div>}
        <hr className="my-8 border-zinc-200 dark:border-zinc-700" />
        <div className="prose dark:prose-invert max-w-none">{children}</div>
      </div>
    </section>;
};

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

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

<BlogPost title="What's New at BazelCon 2025" date="2025-11-20" authors="Alex Eagle" tags="Bazel, Gazelle, Company">
  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-5c38c2b694.png?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=13e15fc67f6449bdbfe36b69566e5a06" alt="" className="blog-post-cover" width="1536" height="1024" data-path="images/blog/hashnode/hn-5c38c2b694.png" />

  Wow, it’s been an exciting year in Bazel-land, and Aspect has made the most of it. BazelCon is our yearly cadence for “conference-driven development”.

  Here’s a retrospective of the conference and our highlights including from my Monday morning keynote.

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-a4ce64c520.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=030d806b83147ae0b13a14eb7321a648" alt="" className="block mx-auto" width="3500" height="2332" data-path="images/blog/hashnode/hn-a4ce64c520.jpeg" />

  ## Travel Was a Pain

  U.S. flight cancellations and delays brought many attendees to Atlanta in the wee hours of the morning. Either that, or it was a convenient excuse for feeling hungover during the morning sessions.

  All told, BazelCon 2025 attracted over 330 in-person attendees in Atlanta. Thankfully everyone arrived safely.

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-61586c5336.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=92b1129ecb42a4e3cacea97e9119fdfa" alt="" className="block mx-auto" width="3500" height="2332" data-path="images/blog/hashnode/hn-61586c5336.jpeg" />

  ## Aspect Extension Language

  Bazel is great at two things: Loading & Analysis of the Dependency/Action graphs, and using plugins (“rulesets”) to populate the `bazel-out` folder from your sources.

  A broad class of extensibility has been missing, and as a result most teams have written their own local dev scripts wrapping `bazel` and also some CI/CD YAML for their pipelines.

  Our solution: a new Starlark dialect we call “Aspect Extension Language (AXL)”. Similarly to how `.bzl` files have some Bazel-specific standard libraries available as global symbols in starlark code, `.axl` files give you extension points to hook your developer workflows!

  Check out my BazelCon 2025 [10 minute lightning talk about AXL](https://www.youtube.com/watch?v=j7-IMZ2q5W4\&list=PLak8-7eFSpowmNiR2lhvJEomLA140yban\&index=21) and our [Marvin Saves the BUILD comic](https://cdn.prod.website-files.com/62fe361319fc7d5a70696095/690f4cd660ffe62f2a6e21e9_Marvin%20Saves%20the%20BUILD.pdf) (as a pdf file).

  We host a collection of extensions at [https://github.com/aspect-extensions](https://github.com/aspect-extensions) and you can easily write your own. Start at [https://aspect.build/axl](https://aspect.build/axl).

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-d854a4fac0.png?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=94715277b1722e9f9f09c12f341f3c09" alt="" className="block mx-auto" width="1280" height="853" data-path="images/blog/hashnode/hn-d854a4fac0.png" />

  ## Notable BazelCon 2025 Content

  Check out the [conference session recordings](https://www.youtube.com/playlist?list=PLak8-7eFSpowmNiR2lhvJEomLA140yban). Our [Bazel 102 course on Python](https://www.youtube.com/watch?v=MB6Txen7rUk\&list=PLak8-7eFSpowmNiR2lhvJEomLA140yban\&index=2) was recorded, and has lots of updated content.

  We recorded Aspect Insights video podcasts with Mícheál, Yun, and Xudong from Google. These episodes will drop soon!

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-27679fc177.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=a2daa19779c5c5d87537cfd28c03282d" alt="" className="block mx-auto" width="3000" height="2001" data-path="images/blog/hashnode/hn-27679fc177.jpeg" />

  We hosted a Hackathon the day after the conference. It felt like a hit! Notably Juan from Verkada presented an AXL extension he wrote, which will post soon.

  We want to continue getting stuff done around Bazel, so we are going to host monthly meetups in the San Francisco Bay Area starting next month at Figma. See [https://luma.com/build-meetup-sf](https://luma.com/build-meetup-sf) for events in San Francisco and [https://luma.com/98o72bge](https://luma.com/98o72bge) for events in Palo Alto and Silly Valley, aka Silicon Valley.

  Next year at BazelCon 2026 we’ll host another Hackathon event like this too.

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-1a2576516d.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=2103624cc7064ccdeb76faf3a58a4f06" alt="" className="block mx-auto" width="3500" height="2332" data-path="images/blog/hashnode/hn-1a2576516d.jpeg" />

  Malte gave a talk on rules\_img. We’ve supported his work and intend to make an easy transition for users of rules\_oci.

  The BUILD Foundation is forming. Uber, Spotify, and Canva already committed to be founding members. The first meeting will be December 4, email [foundation@bazel.build](mailto:foundation@bazel.build) if your company would consider participating.

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-e1b947fb12.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=306c0b7f6b5235b775f9d59d62e04f0d" alt="" className="block mx-auto" width="3500" height="2332" data-path="images/blog/hashnode/hn-e1b947fb12.jpeg" />

  ## Orion and gazelle-prebuilt

  Jason Bedard has worked with our awesome partners at Adobe to extract the Starlark BUILD file generator to a standalone Gazelle extension called Orion. You can now include this in your own custom Gazelle binary, along with custom extensions you wrote in Go.

  We also extracted the pre-compiled Gazelle out of Aspect CLI to a standalone repo: aspect-gazelle. This way your engineers can skip the slow Go source builds and we can reliably depend on C extensions like tree-sitter.

  ## Community Contributions

  As a leader in the Bazel ecosystem and Aspect’s Developer Evangelist, I’ve been active behind the scenes.

  * Suggested that Cloudflare host a mirror of the BCR, since our customers tripped on unreliable hosting from `ftp.gnu.org` and `gitlab.arm.com`. They did!

  * Bazel docs are the #1 user-reported problem. For initial progress, the Bazel Central Registry (BCR) has added features to improve transparency:

    * Starlark API docs are now visible in the registry for modules that publish their documentation.

    * Deprecation flags now clearly mark deprecated or archived modules in the registry.

  * Next step for documentation: move hosting to a place the community can edit more easily, for example by having a preview of docs PRs (tentatively `bazel.online`). I encouraged Alan Mond to pick up the torch of improving Bazel’s docsite after he wrote an excellent blog post and coordinated with Bazel team to launch it. I arranged for the Rules Authors SIG to pay a third-party doc hosting service, [https://mintlify.com](https://mintlify.com). You can see [https://preview.bazel.build](https://preview.bazel.build) for what’s coming!

  * We donated our bazel-lib library to Linux Foundation. The 3.0 release completes the rename of the module, removing Aspect branding from the name.

  * I had a LOT of meetings to sell the BUILD Foundation mission to large enterprises and the community, connecting their resources to the OSS projects that need it.

  * In addition, Jason contributed to upstream Gazelle.

  ## Free Marvin Plush

  Including free U.S. shipping. While supplies last. [Get yours here](https://share.hsforms.com/137ta79VISxWWSrUao8ysyQrr96h).

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-bad4ba1400.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=ac7416a42a7f41918fc7de51c5ed2bf1" alt="" className="block mx-auto" width="3500" height="3076" data-path="images/blog/hashnode/hn-bad4ba1400.jpeg" />

  ## See you at BazelCon 2026!

  We participate in the BazelCon 2026 planning meetings. Little birds chirp that it may be in Europe. My colleague Brett Sheppard suggested Bazel, Belgium. He lived nearby in Flanders as a student. No word yet on the final location for next year’s get together.

  Happy coding from the Aspect Build team at BazelCon 2025.

  To learn more about our Bazel support and platform, visit [www.aspect.build](http://www.aspect.build) or [pick a time to talk with us](https://calendly.com/aspect-build/).

  <img noZoom src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/blog/hashnode/hn-e127baa067.jpeg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=7381e90183f7c9cbc12f824cddbe76ea" alt="" className="block mx-auto" width="3500" height="2332" data-path="images/blog/hashnode/hn-e127baa067.jpeg" />
</BlogPost>
