DoesItRunOnGet early access

Private beta — join the waitlist

Does your web app run on a $180 phone?

Paste a URL. We run it on a fleet of real devices — flagships to five-year-old mid-range Androids — and send back FPS, frame times, and jank you can act on. No SDK, no device drawer.

No spam. One email when early access opens.

Built for WebGL apps, web games, three.js sites, and anyone whose users don't own flagships.

run #1284 · yourapp.commedian FPS
  • Pixel 8

    2023 · real device

    60 fps
  • Galaxy A52

    2021 · real device

    34 fps
  • Moto G7

    2019 · real device

    12 fps

▸ 14 more devices in this run…

Your dev machine is lying to you.

It hits 120 fps on your M-series laptop. Half the web is browsing on hardware from another universe.

Lighthouse has never met a Mali GPU

Simulated throttling slows a desktop CPU and calls it a phone. It can't see shader cost, fill-rate limits, or what a mid-range GPU does to your particle system.

Device clouds test function, not framerate

BrowserStack-style platforms answer “does it render and click correctly?”. They don't tell you that your hero scene runs at 11 fps on a Galaxy A52.

A drawer full of test phones doesn't scale

Manually poking your app on three old Androids before each release is slow, unrepeatable, and the first thing skipped under deadline pressure.

How it works

One input, real hardware, actionable output. That's the whole product.

  1. 01

    Paste your URL

    Point us at any public or tunneled URL. Add an optional test script to drive interactions — load a level, open the heavy scene, scroll the page.

    $ diro run https://yourapp.com --script warmup.ts
  2. 02

    We run it on real phones

    Actual hardware in our rack — recent iPhones and Pixels down to the mid-range Samsungs and Motos your users actually own. Instrumented, warmed up, repeatable.

    ▸ running on 17 devices · Adreno / Mali / Apple GPUs
  3. 03

    Get numbers you can act on

    Median and p95 FPS, frame-time distribution, jank events, thermal throttling over time — per device. Set FPS budgets and fail your CI when a scene drops below target.

    ✗ galaxy-a52: median 34 fps < budget 45 fps

The report you actually want

Not a screenshot gallery. Per-device frame timing from real hardware — this is a sample of what every run produces.

Frame time · Galaxy A52 · 30s run

≤ 16.7 ms≤ 33 msjank
16.733.350012 ms13 ms12 ms14 ms13 ms12 ms15 ms22 ms38 ms45 ms41 ms28 ms18 ms14 ms13 ms12 ms13 ms14 ms12 ms13 ms15 ms13 ms12 ms14 ms26 ms31 ms24 ms15 ms13 ms12 ms14 ms13 ms12 ms13 ms19 ms14 ms12 ms13 ms12 ms14 ms13 ms15 ms12 ms13 ms14 ms12 ms13 ms12 ms16.7 ms — 60 fps budgetscene load0s30s

Median FPS

34

p95 frame time

41 ms

Jank events

12

Thermal drop after 90s

−18%

Device matrix · 17 devices, 6 shown

DeviceGPUFPSp95Verdict
iPhone 152023Apple A166017 mssmooth
Pixel 82023Mali-G7156018 mssmooth
Galaxy S212021Mali-G785424 mssmooth
Galaxy A522021Adreno 6183441 msplayable
Redmi Note 92020Mali-G522752 msplayable
Moto G72019Adreno 5061296 msjanky

Why not BrowserStack?

Keep it — it's great at functional cross-browser QA. It just answers a different question than the one that's keeping you up at night.

Device clouds (BrowserStack & co.)DoesItRunOn
Primary question“Does it work correctly?”“Does it hit 60 fps?”
Core outputScreenshots, logs, test resultsFPS, frame times, jank, thermals
WebGL & canvas workloadsRuns, but unmeasuredFirst-class citizen
Device poolThousands of combos for QA coverageCurated performance spread, incl. old mid-rangers
SetupTest suites, SDKs, framework configsA URL (+ optional test script)
CI gatingFunctional pass / failFPS budgets per device

Full breakdown: DoesItRunOn as a BrowserStack alternative for performance testing →

Early-access pricing

Join the waitlist from any plan to lock in this pricing at launch. No card required today.

Indie

$29 /month

For solo devs and side projects that still need to run everywhere.

  • 50 runs / month
  • 5 devices per run
  • FPS + frame-time reports
  • Shareable report links

Team

Most popular

$99 /month

For studios and product teams shipping performance-critical web apps.

  • 300 runs / month
  • 15 devices per run
  • CI integration + FPS budgets
  • PR status checks
  • Run history & regressions

Scale

$299 /month

For platforms and agencies testing many apps across the full fleet.

  • Unlimited runs (fair use)
  • Full device pool + custom devices
  • API access
  • Priority hardware queue

Questions people ask us

How is this different from BrowserStack or LambdaTest?

Those platforms are built for functional cross-browser QA: does the page render, do the buttons work. We answer a different question — how fast does it actually run — by measuring FPS, frame times, jank and thermal throttling on real phones. Many teams will use both.

How do you measure FPS on real devices?

Your URL runs in an instrumented browser session on physical hardware in our rack. We record per-frame timing while your scenario plays — real GPU, real thermals, real memory pressure. Runs are repeated and warmed up so numbers are stable enough to gate a release on.

Which devices are in the fleet?

A curated performance spread rather than thousands of QA combos: recent iPhones and Pixels, the popular mid-rangers (Galaxy A-series, Redmi Note), and 4–6 year old budget models your analytics say still exist. Early-access members vote on which devices we add.

Can I test a specific scene or interaction, not just page load?

Yes. Alongside the URL you can provide a Playwright-style test script that drives the app — load a level, open the heaviest scene, scroll the page — and we measure while it runs.

Does it work for Unity WebGL, three.js, PixiJS or Babylon.js?

Anything that runs in a browser. GPU-heavy WebGL and WebGPU content is exactly what the service is built for — that's where simulated testing fails hardest.

Isn't Lighthouse enough?

Lighthouse is great for load performance, and its throttling simulates a slow CPU on your desktop machine. It doesn't measure runtime framerate, and it has no idea what a Mali-G52 does to your shaders. Real hardware is the only honest answer.

Can I run it in my CI?

That's the plan for launch: a CLI and GitHub Action where you set FPS budgets per device, and the check fails when a scene drops below target.

What do I get for joining the waitlist?

Early access when the beta opens, locked-in early-access pricing, and a vote on the device pool and integrations. We send one email when it's live — no drip campaigns.

Something else? Email hello@doesitrunon.app

Find out what your app runs like in the real world

Join the waitlist and be first in line when the beta opens — early members lock in launch pricing and pick the device pool.

No spam. One email when early access opens.