---
layout: home
title: Home
---

<div class="hero">
  <div class="container">
    <img src="{{site_root}}images/bazel-logo.png"
         class="img-responsive center-block" />
    <p class="lead">{Fast, Correct} - Choose two</p>
  </div>
</div>
<div class="hero-bar">
  <div class="container">
    <a class="btn btn-success"
       href="{{ "/docs/install.html" | prepend: site_root }}">
       Get Bazel</a>
    <a class="btn btn-success"
       href="{{ "/docs/getting-started.html" | prepend: site_root }}">
       Get Started</a>
  </div>
</div>
<div class="landing-feature-1">
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h1>Correct, reproducible, fast builds for everyone</h1>
        <p class="lead">Build software of any size, quickly and reliably, just as engineers do at Google.</p>
        <p>Bazel is Google's own build tool, now publicly available in <a href="#beta">Beta</a>.
           Bazel has built-in support for building both client and server software, including client
           applications for both Android and iOS platforms. It also provides an extensible framework
           that you can use to develop your own build rules.
        </p>
      </div>
    </div>
  </div>
</div>
<div class="landing-feature-2">
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h1>Why Bazel?</h1>
        <p class="lead">Here's what makes Bazel great.</p>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-4">
        <h3>Speed</h3>
        <p>With Bazel's optimized dependency analysis, advanced
           caching and parallel execution of build actions, you get
           fast, clean builds.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Scalability</h3>
        <p>At Google, Bazel is used by tens of
           thousands of engineers to build heavy-duty, mission-critical
           infrastructure services as well as public web applications. But it's
           great for smaller projects, too.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Flexibility</h3>
        <p>A comprehensive, built-in set of rules lets you build software for
           a wide variety of languages and platforms right out of the box.
           Skylark, Bazel's extensible rule framework, allows you to develop
           and share your own build rules for other languages and platforms.
        </p>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-4">
        <h3>Correctness</h3>
        <p>Bazel examines the content of source files in your
           dependency graph, not just timestamps, to determine when to rebuild.
           Because incremental builds are virtually always correct, it's not
           necessary to run a clean build "just in case" to ensure correctness.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Reliability</h3>
        <p>When you build software with Bazel, you're running the same code
           that has been refined and tested over years of use in the
           engineering environment at Google.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Repeatability</h3>
        <p>Builds only use input files that are explicitly declared in the
           build specification. On Linux, Bazel runs tools in a sandboxed
           environment that contain only the minimum necessary files required.
           Even tests are run in sandboxes, which ensures predictable,
           environment-independent results.
        </p>
      </div>
    </div>
  </div>
</div>
<div class="landing-feature-1">
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h1 id="beta">Bazel is in Beta</h1>
        <p>Bazel is in Beta. There are still some functional limitations,
           but we believe that Bazel is stable enough for production use.
           See our <a href="docs/support.html">Support</a> page for information
           about feature status and releases. The Bazel team monitors and
           responds actively to bug reports from users.
        </p>
      </div>
    </div>
  </div>
</div>
<div class="landing-feature-2">
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h1>Get Started</h1>
      </div>
      <div class="col-sm-4">
        <h3>Install Bazel</h2>
        <p>See our <a href="docs/install.html">Installation Guide</a> to learn
           how to download and install Bazel.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Run Bazel</h2>
        <p>See our
           <a href="docs/getting-started.html">Getting Started Guide</a> to
           learn how to write a BUILD file and run Bazel.
        </p>
      </div>
      <div class="col-sm-4">
        <h3>Bazel Commands</h2>
        <p>See our <a href="docs/bazel-user-manual.html">User Manual</a> to
           learn about the Bazel command-line tool.
        </p>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-12">
        <h3>Learn More</h2>
        <p>Take a look at our <a href="docs/install.html">documentation</a>
           and read our <a href="faq.html">FAQ</a>.
        </p>
      </div>
    </div>
  </div>
</div>

<div class="landing-feature-1">
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h1>About Bazel</h1>
        <p>
          <a href="contributing.html">Contribute</a><br />
          <a href="governance.html">Governance Plan</a><br />
          <a href="roadmap.html">Roadmap</a><br />
          <a href="docs/support.html">Support</a><br />
          <a href="users.html">Who's using Bazel</a>
        </p>
      </div>
    </div>
  </div>
</div>
