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

# Optimizing Build and Test Times: Coda's Success with Aspect

> Coda reduced CI build times by 10x and cut compute costs by 67% with Aspect Workflows, streamlining their development process and boosting efficiency.

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

<Section>
  <div className="max-w-3xl mx-auto">
    <div className="case-study-logo">
      <img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/customers/coda-logo.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=8fea372e6752e74c4a63130980bcfcfa" alt="Coda" noZoom width="100" height="32" data-path="images/marketing/customers/coda-logo.svg" />
    </div>

    <h1 className="mt-6 text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">
      Optimizing Build and Test Times: Coda's Success with Aspect
    </h1>

    <div className="case-study-hero mt-10">
      <img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/case-studies/coda.png?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=a7627e0977c5d48d0fb9ebe395c3acd0" alt="" noZoom width="1307" height="803" data-path="images/marketing/case-studies/coda.png" />
    </div>

    <div className="mt-10 grid grid-cols-2 md:grid-cols-3 gap-6 text-center">
      <div>
        <p className="text-3xl font-semibold text-blue-600 dark:text-blue-400">10x</p>
        <p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Faster no-op build from 11 to 1 min</p>
      </div>

      <div>
        <p className="text-3xl font-semibold text-blue-600 dark:text-blue-400">2-3x</p>
        <p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Speedup of typical build & test</p>
      </div>

      <div>
        <p className="text-3xl font-semibold text-blue-600 dark:text-blue-400">67%</p>
        <p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Reduced compute costs</p>
      </div>
    </div>

    <div className="mt-12 space-y-5 text-zinc-600 dark:text-zinc-300 leading-relaxed">
      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Challenges Faced</h2>

      <p>
        After adopting Bazel, Coda had a powerful tool for scaling up the size of their TypeScript codebase,
        and spent some effort resolving cycles in the dependency graph to improve incrementality.
      </p>

      <p>
        However, the build and test process on CircleCI were consistently exceeding 10 minutes on average,
        often stretching beyond 30 minutes. They were spending the equivalent of two software engineer salaries
        to cover the cloud costs required to run their build and test processes.
      </p>

      <p>
        The prolonged build and test times were hindering Coda's development efficiency, causing delays in
        project timelines, and impacting overall productivity. The challenge was to find a solution that could
        significantly reduce these times and streamline their continuous integration process.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Selection Process</h2>

      <p>
        After careful consideration, Coda selected Aspect Workflows, developed by Aspect, as the solution that
        met their criteria for efficiency, scalability, and ease of integration. One of the key criteria was to
        remain on their existing CI system (CircleCI). The decision to use Workflows was influenced by their
        experience having worked at Google.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Implementation</h2>

      <p>
        The implementation process was a testament to the user-friendly nature of Aspect Workflows. Coda
        reported that adopting our product was "a pretty smooth transition." This speaks to the ease of
        onboarding and the effectiveness of Aspect Workflows in aligning with Coda's existing workflows.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Results and Benefits</h2>

      <p>
        The impact of implementing Aspect Workflows was substantial. After the implementation, Coda achieved
        not only a boost in development efficiency but also a remarkable cost savings in CI cloud spend.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Customer Case Study</h2>
      <h3 className="mt-6 text-lg font-semibold text-zinc-900 dark:text-white">Challenge</h3>

      <ul className="list-disc pl-6 space-y-2">
        <li>Bazel build & test on CircleCI taking over 10 min average, often over 30 min.</li>
        <li>Cost too high: the equivalent of two software engineer salaries</li>
      </ul>

      <h3 className="mt-6 text-lg font-semibold text-zinc-900 dark:text-white">Solution</h3>

      <ul className="list-disc pl-6 space-y-2">
        <li>Aspect Workflows trial for one month.</li>
        <li>Improve stability and uptime, evaluate spot instances.</li>
        <li>"Pretty smooth transition" for developers.</li>
        <li>Regular improvement through monthly releases.</li>
      </ul>

      <h3 className="mt-6 text-lg font-semibold text-zinc-900 dark:text-white">Results</h3>

      <ul className="list-disc pl-6 space-y-2">
        <li>10x faster no-op build from 11 min to 1 min</li>
        <li>2-3x speedup of typical build & test</li>
        <li>67% reduced compute cost (despite higher usage)</li>
      </ul>

      <blockquote className="border-l-4 border-blue-500 pl-4 italic text-zinc-700 dark:text-zinc-200">
        We went from having significant limits in CI and tools to where the limits are now just due to our code
        <footer className="mt-2 not-italic text-sm text-zinc-500 dark:text-zinc-400">Neal Norwitz, Software Engineer</footer>
      </blockquote>

      <p>
        The implementation of Aspect Workflows yielded tangible and impressive results for Coda. Their no-op
        fully-cached build, which previously took 11 minutes, was optimized to an impressive 1-minute duration.
      </p>

      <p>
        The typical build and test cycle at Coda, representing a critical component of their development
        workflow, saw a remarkable improvement, now operating 2-3 times faster than before. This acceleration
        has significantly increased the team's agility and ability to iterate swiftly.
      </p>

      <p>
        Notably, Coda achieved a remarkable 67% reduction in compute costs. This is despite the codebase
        growing during this period, so the workload increased. This cost efficiency demonstrates the
        effectiveness of Aspect Workflows in not only enhancing performance but also in optimizing resource
        utilization. This reduction in compute costs allows Coda to allocate resources more strategically,
        contributing to a more cost-effective and streamlined development process.
      </p>

      <p>
        Notably, the 10x speedup in build and 2-3x faster tests exactly match the user testimonial presented in
        the Bazel 1.0 blog post.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Client's Perspective</h2>

      <ul className="list-disc pl-6 space-y-2">
        <li>
          The optimization journey at Coda provides valuable insights into their historical and ongoing efforts
          to enhance their software development pipeline. In 2018/2019, the introduction of Bazel initiated a
          gradual process of improving build and test. By January 2022, about half of the code base could be
          compiled under Bazel.
        </li>

        <li>
          Additional targets and tests were added to address scaling issues. The team considered Bazel a
          natural fit based on their experiences with using it internally at Google. However, limited
          familiarity with JS/TS Bazel integrations presented a learning curve, and efforts were made part-time
          until a year ago.
        </li>

        <li>
          The contributor investigated alternatives to Bazel but found none that met Coda's specific needs.
          The team, not married to Bazel, remains open to exploration but faces challenges due to their
          existing setup with Webpack and plugins. Aspect plans to provide better off-ramps for Webpack that
          leverage Bazel's ability to serve as the build orchestration.
        </li>

        <li>
          As long as Bazel and the TypeScript ecosystem provide sufficient value, Coda plans to continue using
          them. Ongoing evaluations will be crucial to ensuring the selected tool remains the best fit.
        </li>
      </ul>
    </div>

    <div className="mt-12">
      <a href="https://cdn.aspect.build/case-studies/Coda.pdf" target="_blank" rel="noopener noreferrer" 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">
        Download PDF →
      </a>
    </div>
  </div>
</Section>
