Tenth Ask for a pilot slot

End-to-end testsyou don't maintain.

Give Tenth one staging URL. It does the rest: drives Chromium through the product, writes plain Playwright into your repo, and opens a pull request the day the UI moves.

They're your tests either way — plain Playwright, in your repository, kept if you cancel.

Private pilot, 2026 · read what we haven't measured
  • 2026-07-2716 of 16 targets passed
  • 2026-07-27$5.33 model spend, whole run
  • 2026-07-26Crawl: 11 states, 53 edges
  • 2026-07-25First provision, run, destroy on live hardware
  • current build40 of 41 internal gates, 44 tests
  • awaitingFirst run on a repository that isn't ours

What Tenth does

Three jobs, no new hire.

Explore, verify, repair: the loop a QA engineer runs every week. Tenth runs all three against staging, on your schedule, and hands the work back as code.

01

No scripts, no selectors

Tenth drives Chromium against staging and works out what the product does. Nothing to script. No selectors to babysit. What comes back is a map: every screen it reached, every route between them, a screenshot at each one.

02

Three reruns before one alert

A suspected failure gets rerun three times in fresh sandboxes. All three have to agree before anyone hears about it; if they don't, it goes to quarantine instead. The reasoning is blunt. A test tool is worth nothing the day a team starts skipping its alerts.

03

Plain Playwright, in your repo

The output is plain Playwright — no proprietary format, no runtime to license. When the UI moves, Tenth writes the repair and opens a pull request. Forward it a Sentry issue and it comes back as a failing test. It never writes to your default branch, and that's enforced in code, not promised in a contract.

A behavior graph: rows of application screens connected by arrows showing every route between them, with two screens marked as failures.
What it reads. Screens, the routes between them, the states that failed. One crawl of a production-grade app returned 11 states and 53 edges with a screenshot at each, on 2026-07-26. Illustration; artifacts retained.

tenth[bot] · 1 commit into main

Heal: ‘Save card’ moved inside the billing dialog

tests/checkout.spec.ts

  • - page.getByRole('checkbox', { name: 'Save card' })
  • + page.getByRole('dialog', { name: 'Billing' })
  • + .getByRole('checkbox', { name: 'Save card' })
Cause
Checkbox re-parented; role and name unchanged
Evidence
before.png, after.png, 3 clean reruns agreed
Label
Generated by Tenth (AI)
What it writes. A repair arrives as a pull request on its own branch, cause named, screenshots attached. Tenth cannot merge it. Illustration of the output format.

$5.33

Total model spend for the most recent full fleet run: sixteen targets, all passing. Measured 2026-07-27. Billed, not estimated.

The numbers

What's measured. What isn't.

Every figure carries two things: the date it was taken, and a retained artifact behind it. Projections say so on the line. Nobody has to take our word for any of it.

Measured
  • 16 of 16 targets passed

    On the most recent full fleet run.

    2026-07-27 · run artifacts retained
  • $5.33

    Total model spend across that entire run.

    2026-07-27 · billed cost
  • 1.7 machine-minutes

    One complete cycle on live hardware: provision, run, destroy.

    metered, not estimated
  • 11 states, 53 edges, 11 screenshots

    From a single crawl of a production-grade app.

    2026-07-26 · artifacts retained
  • 40 of 41 internal gates green

    Across 44 tests.

    current build
Modelled
  • About $77 per customer-month

    Cost of goods, extrapolated from a 14-flow fixture suite.

    projection · no customer has generated this
  • About $203 per customer-month

    At modelled real-customer steady state.

    projection
  • Roughly 70% of that is infrastructure

    Metered for one cycle, not for one month.

    the largest uncertainty in our economics

What we can't tell you yet.

Three of them. The first decides whether Tenth is a product or just an engine.

Not measured

Three numbers we won't quote yet.

  • Alert precision

    The one number that decides whether Tenth is useful. We have a sample of one: that's a demo, not a result. We'd rather leave the space blank than fill it with a figure that flatters us.

    Target: at or above 0.97 across at least three real customer suites, published here, and bound to the price.
  • External installations: zero

    Everything above was measured on our own applications. Nobody outside this company has run Tenth against their code. Take a pilot slot and you'd be among the first — and this page will say so the day that changes.

    Design partners wanted. Pilot slots cost nothing.
  • Fully-loaded cost at scale

    We've metered one complete cycle on live hardware, not one complete month. Until the bill lands for a real month at real volume, the cost side of our pricing is a model, not a fact.

    See gate 03 below.

No reading yet.

Gates

Three gates. No moving them.

We wrote these down before there were customers, precisely so they couldn't be moved afterwards. If the first one fails, Tenth isn't a business: it's an engine, and we'd tell you that.

Gate 01

A repository that isn't ours

The full condition: one run against a repository we don't own, with the infrastructure bill metered on it. It has two halves, and one of them is done.

  • Infrastructure halfCleared 2026-07-25. A complete provision, run and destroy cycle on live hardware — our largest cost assumption, now a measured one.
  • External halfStill open. The GitHub App is registered and one click from installation. What's missing is the click.

In progress

Gate 02

Precision at 0.97, published

Alert precision at or above 0.97, across at least three real customer suites, printed on this page and bound to the price. Our internal release bar is already there — 0.97 precision, 0.90 recall, a newborn 100-run flake rate at or under 1% — and no agent-logic change merges without a scorecard clearing it. Gate two is that same bar met on your code instead of ours. If it drops below the line, the price moves.

Not started

Gate 03

Cost under $120 a month

Fully-loaded cost under $120 per customer-month at first-hundred scale. Starter holds 69% gross margin at our modelled cost and 23% under a 2.5× infrastructure stress case. That spread is exactly why Starter stays self-serve with a fair-use cap until the real bill is known.

Blocked on gate 01

Pricing

One flat price a month.

Priced against the QA engineer nobody got budget for, not against the test framework already in the repo. No per-seat. No per-test. Two things worth knowing up front. The prices below are set, and billing isn't live yet — pilot slots cost nothing.

Starter

$249/mo

  • One application, staging only
  • Self-serve, with a fair-use cap
  • Behavior graph and screenshots retained
  • Findings arrive as GitHub pull requests

Team

$1,499/mo

  • Multiple applications
  • Priority triage on findings
  • Scheduled runs against every release
  • A direct line to the engineers who wrote it

Managed

$4,999/mo

  • A managed outcome, not just a tool
  • We own the triage queue
  • Coverage reviewed with you every month
  • Custom flow priorities

The cheapest managed-outcome floor we could find in this market is $599 a month. Starter is $249. Prices in US dollars, local tax excluded.

Safety

How it is fenced.

An agent with a browser and write access to a repository is a serious thing to point at somebody's software. Here's exactly how it's fenced — including the time the fence wasn't good enough.

01

We crawled the wrong app

A run was pointed at a local address with a matching allow-list entry and a valid authorization record. The intended app had died on that port; something else had taken it. Tenth crawled a system nobody had authorized, and spent $1.32 doing it.

02

Origin stopped being enough

Every target now carries a string that has to appear in the page before Chromium is allowed to open it. If it isn't there the run fails closed, and the error names what it actually found instead. Enforced in code, not in the contract.

03

The bad run, still logged

The mislabeled graph came out. The original log entry stands, with a second entry beside it naming the mistake and the fix. Here's the rule: you don't erase an audit trail to tidy up a mistake, you write the correction next to it.

Content as data, never orders

Tenth reads pages and tickets that anyone can write into. All of it is data, never instructions; any attempt to act off an allow-listed origin is a hard failure. Credentials go from the vault into the sandbox environment and nowhere else — never into a prompt, a log, or Postgres.

No production, no real data

Tenth runs against staging rather than production, and won't touch real personal data unless you arrange it with us first. Runs are scheduled in UTC.

Human merge, always

Tenth opens pull requests and stops. There's no setting that lets it merge its own work into your codebase. There isn't one to ask for.

Labeled AI, every PR

Every pull request carries a “Generated by Tenth (AI)” label, consistent with EU AI Act Article 50, in force since 2 August 2026.

Ask for a pilot slot

Five slots. Three months at no cost, in exchange for thirty minutes of feedback a week and permission to publish the flake numbers we get. All we need to start: one staging URL, and a repository you can install a GitHub App on.