---
title: "How Better Auth got 2× faster E2E tests with StarSling"
description: "Better Auth cut E2E 2.22× with StarSling."
url: https://starsling.dev/customers/better-auth
---

`better-auth/better-auth`

# How Better Auth got 2× faster E2E tests and cut 20,000 CI minutes a month with StarSling.

In the weeks after migrating to StarSling Runners, StarSling agents shipped three optimization PRs and cut per-job E2E runtime from 2m 22s to just over one minute, adding up to roughly 20,000 minutes of CI compute saved every month.

> "We've been using StarSling for Better Auth CI. It's been saving us countless hours, both with fast runners and their agent optimizing our CI."
>
> Bereket Engida

## By the numbers

- **2.22×** Faster E2E (2m 22s → 1m 04s, post-migration)
- **20,000** CI minutes saved / month (compute across all CI + E2E jobs)
- **2×** Weekly CI runs (~1,800 → ~4,000 / week)

Seed · $5M raised · San Francisco

## Intro

[Better Auth](https://github.com/better-auth/better-auth) is the most popular open-source TypeScript authentication framework with **over 28,000 stars** on GitHub, **over 800 contributors**, and hundreds of PRs open at any given time. Better Auth is scaling fast: since turning on StarSling on February 11, 2026, weekly npm downloads have gone from **1.2 million** to **3.3 million**, and their CI load has roughly doubled alongside it going from **1,800 workflow runs per week** to close to **4,000 workflow runs a week**. A growing framework means a growing test suite, and CI work that perpetually competes with shipping the framework itself.

## Problem: A five-minute E2E tax, about to be paid twice as often

At migration, end-to-end tests took close to five minutes on every PR, a tax the growing contributor queue was about to pay twice as often. The bottlenecks were the kind that only compound as a framework grows: a turbo cache that wasn't picking up hits between runs, a Docker Compose stack whose services weren't ready when the suite kicked off, and Playwright reinstalling browsers from scratch on every run.

> "Before StarSling, speeding up CI was the sort of work that didn't make it into a release. There was always a feature that mattered more than shaving a minute off the test suite. Now we can actually ship CI improvements with new releases."
>
> Bereket Engida

## Solution: CI that opens its own optimization PRs

Better Auth turned on self-driving CI on February 11. Over the next nine days StarSling agents opened three more PRs on their own: fix the turbo cache configuration, add Docker Compose healthchecks where services were racing the test runner, and cache Playwright browser installs across runs. Three CI-tuning projects shipped in nine days.

> "StarSling agents are like a CI engineer we never had to hire. They find the slow spots, test out fixes, find the ones that work and open the PRs themselves."
>
> Bereket Engida

## Results: 2m 22s → 1m 04s

In the weeks after migration, once the runner swap and all three agent-authored optimizations had landed, typical per-job E2E runtime measured **2m 22s → 1m 04s (2.22×)** and CI 1m 40s → 1m 02s. Across the thousands of CI and E2E runs Better Auth fires off every month, those per-job savings compound to roughly **20,000 minutes of CI compute** saved. Not one of those optimizations was scoped by a Better Auth engineer: the agents found the work, opened the PRs, and the team reviewed and merged. For a library every team's PR queue gates on, that's the durable win: CI that improves itself instead of sitting in the backlog behind the framework's own roadmap.

> "Better Auth is growing fast. We've almost doubled our GitHub Actions usage in the past few months without CI becoming a bottleneck thanks to StarSling."
>
> Bereket Engida

## When each speedup landed

Migration on 2026-02-11. Every entry is a merged `starsling/*` PR.

- 2026-02-11 [#7933](https://github.com/better-auth/better-auth/pull/7933) chore: migrate ci workflows to StarSling runners _(migration)_
- 2026-02-13 [#7950](https://github.com/better-auth/better-auth/pull/7950) chore: fix turbo cache configuration in ci
- 2026-02-16 [#8010](https://github.com/better-auth/better-auth/pull/8010) chore(ci): add Docker Compose healthchecks for faster CI service readiness
- 2026-02-20 [#8073](https://github.com/better-auth/better-auth/pull/8073) chore(ci): optimize Playwright browser installs in E2E

## Where the time went

Measured at p50 job-duration across all branches. Pre-migration: GitHub-hosted runners. Post: StarSling runners.

| Workflow | Before | After | Speedup |
|---|---:|---:|---:|
| E2E | 2m 22s | 1m 04s | **2.22×** |
| CI | 1m 40s | 1m 02s | **1.61×** |

## Methodology

Per-job p50 runtime: the median duration of an individual CI job, across all branches. Before: GitHub-hosted runners, the 3 days before the migration PR merged. After: StarSling runners with the agents' three optimization PRs merged, April 1 to 4.

CI compute minutes, the unit GitHub Actions bills: each job's measured p50 saving (CI ~38s, E2E ~78s) summed across every parallel job, times Better Auth's actual monthly job volume from the GitHub Actions API. A conservative, success-runs-only estimate.

> "Most CI providers just give you faster machines. StarSling gives us that and made our tests faster, so we could stay focused on making Better Auth even better."
>
> Bereket Engida
