allwright

Blog

The allwright blog.

Guides, release notes, and engineering deep-dives on test automation — getting started in your language, what shipped and why, and how the core and its plugins are actually built.

Sign UpLive appAccessibility treewindow  group    text    textfield    buttonLocator codeTypeScriptPythonJavaGoRustapp.getByRole("button", …)
4 min read

Allwright Inspector: find locators by pointing

A new allwright inspector command shows your running app next to its accessibility tree and writes the locator for you in five languages.

inspectorlocatorsiosandroidmacoswindowsreleasechangelog
Read the guide →
TSone test fileallwrightcoreWebChromium · FirefoxAndroidemulator · deviceiOSSimulator · iPhonemacOSXCUITestWindowsUI Automation
3 min read

Web, mobile, and desktop on one API

allwright v0.1.25 puts web, Android, iOS, macOS, and Windows behind one client shape, one locator model, and the same retrying assertions.

releasedesktopwindowsmacosiosandroidweb testingchangelog
Read the guide →
mobile.ios.connectTSTypeScript clientallwrightcoreiosApp.clickiosApp.filliOS SimulatorFlights-simulator.ipaRegistered iPhonesigned device build
4 min read

iOS testing, now on Simulators and real iPhones

allwright now drives iOS apps on Simulators and registered iPhones with the same Playwright-style API as web and Android, and no driver to set up.

iosmobilevitestreleasechangelogxcuitest
Read the guide →
shop.example.com<iframe> pay.example.com<iframe> captcha.example.net.frame().frame()Pagepay.example.com● readyPagecaptcha.example.net● ready
5 min read

Iframes are just pages now

allwright v0.1.13 resolves any iframe — nested or cross-origin — to a normal Page with one call, waiting until its document has actually loaded and settled.

iframesreleasechangelogweb testingcross-originwebdriver bidi
Read the guide →
Without a hookclick()new tab firesmissedRegister, then waitpageregisterHook()New tab● caughtFile chooser● caughtDownload● caught
5 min read

Hooks: catching popups, uploads, and downloads without racing your test

allwright v0.1.5–v0.1.7 shipped typed hooks — a register-then-wait lifecycle across all five clients for new tabs, native file pickers, and downloads, so you never race a browser-native event again.

hooksreleasechangelogweb testingfile uploaddownloadpopup
Read the guide →
v0.1.0milestonev0.1.1a11y snapshotsv0.1.2snapshot modesv0.1.3locators + not()v0.1.4you are here
3 min read

v0.1.0 is here — and it hasn't slowed down since

allwright v0.1.0 shipped September 4th — the first minor version, and a real milestone. Four releases later, at v0.1.4, it's already grown web accessibility snapshots, semantic locators, locator exclusion, and Android accessibility snapshots.

releasemilestonechangelogaccessibilityandroidweb testing
Read the guide →
scaffold$npm init allwright@latest✔ TypeScript ✔ Web✔ installed with npmOne commandpackage.jsonallwright.config.yamlvitest.config.tstests/web.spec.tsWorking project, ready to run
3 min read

npm init allwright: a test project in one command

allwright now ships its own project initializer. Run npm init allwright@latest and get a working, installed TypeScript or JavaScript test project — config, starter tests, and all — in under a minute.

clitypescriptjavascriptgetting-startedvitestweb testing
Read the guide →
v0.0.7Day onev0.0.61you are hereWeb● real todayAndroid● real todayv0.1.0coming soon
3 min read

On the road to allwright v0.1.0

allwright's next release is its first minor version, v0.1.0 — and it's coming soon. Here's the small, tangible set of features that already work today, plus a new Changelog page tracking everything on the way there.

roadmapchangelogrelease notesandroidweb testing
Read the guide →
@allwright.dev/vitestTSTypeScript clientallwrightcorepage.goto · page.clickandroidApp.click · fillReal browserAndroid deviceexperimental · via adb
6 min read

What's cooking: Android testing, Playwright-style

allwright shipped Playwright-style Android testing over adb and never announced it. What works, what's missing, and a step-by-step Vitest example.

androidplaywrightvitestmobilechangelog
Read the guide →
Without one engineWeb toolMobile toolDesktop toolAPI toolOne core, one plugin per surfaceallwrightcoreWeb● installedMobile○ not yetDesktop○ not yetAPI○ not yet
5 min read

Why allwright, when Playwright already exists?

Playwright already solves web automation extremely well. Here's the actual gap allwright is built to close, and why 'Playwright-style' was never the pitch.

architectureplaywrighttest automationopinion
Read the guide →
@allwright.dev/vitestpage.goto · page.click · expectTSTypeScript clientallwrightcoreReal browserChromium · Firefox
5 min read

Get started with allwright in TypeScript

Go from an empty folder to a passing, real-browser test in about five minutes, using @allwright.dev/vitest — no driver binaries, no manual browser setup.

typescriptvitestgetting-startedweb testing
Read the guide →