Port a web app
Checked against ebe8d96 on 2026-11-10 by Capy (drift after the docs-site merge). The files it covers are unchanged since.
An existing web app is the best test of niso, and the quickest way to find
out whether yours will run. You need its static build: the directory a
vite build, expo export or similar produces.
1. Run it headless
Section titled “1. Run it headless”target/release/niso-run --page dist/index.html --root dist --url http://localhost/ \ --missing --max-ms 15000--root serves the build at http://localhost/; --url puts the page at the
route the app expects (a router may care). --max-ms gives its timers 15
seconds of page time, which is milliseconds of real time.
2. Read what’s missing
Section titled “2. Read what’s missing”--missing prints every DOM interface member and global the app looked up
that niso doesn’t have. Not all of them matter: apps feature-test a lot. The
ones to look at first are those that appear right before an uncaught
exception (niso-run prints it and exits 1) or an error boundary in the
--dump output.
Bluesky’s web build is a worked example: it mounts on niso and stops in two
error boundaries, one for element.scroll({ behavior: 'smooth' }) and one
for IntersectionObserver (Bluesky).
3. Check what it looks like
Section titled “3. Check what it looks like”--boxes prints where every element landed, and niso-iced --page shows it
in a window. Compare with the same build in Chrome.
4. Report or fix
Section titled “4. Report or fix”A gap is either a missing API (look it up in the Web API reference and the support table) or a bug in one that exists. For niso contributors, an app worth keeping goes into the app corpus with a driver for its core flow, and its findings go on its page under Real apps.