A modern, vastlint-powered VAST validator, debugger, and QA workbench.
If you are looking for a new and improved alternative to the IAB Tech Lab VAST Tester, this repository is meant to be that starting point. It keeps the familiar idea of a browser-based VAST tester, but adds deeper validation, wrapper inspection, playback diagnostics, tracking visibility, and shareable findings for real ad-tech workflows.
This project is built on top of vastlint, the Rust-based VAST validation engine behind vastlint.org. It is an independent open-source project and is not affiliated with or endorsed by IAB Tech Lab.
If that search term brought you here, the short version is this: this repo is an open-source, modernized VAST tester built for teams who want more than a legacy pass/fail checker.
It is designed for buyers, sellers, SSPs, DSPs, SSAI teams, QA engineers, and ad-ops workflows that need to:
- validate VAST XML against the IAB VAST specification
- inspect wrapper chains and resolved ads in detail
- understand tracking, macro expansion, and playback behavior
- share findings quickly with partners, vendors, or internal engineering teams
- Validate pasted VAST XML or a remote VAST URL
- Auto-fix deterministic issues that
vastlintcan repair - Resolve wrapper chains through
vastlint-client - Inspect wrapper hops, resolved ads, media files, and rule findings in one UI
- Display findings inline while editing XML
- Review playback-oriented runtime signals, tracking waterfalls, and macro previews
- Switch between different compliance-oriented validation profiles
- Export reports and copy error summaries for partner debugging
This UI is the interactive frontend layer for the broader vastlint ecosystem.
- Core project: github.com/aleksUIX/vastlint
- Hosted web validator: vastlint.org
- npm package: npmjs.com/package/vastlint
Use this repo when you want a browser-first debugging workflow. Use vastlint directly when you want CLI automation, CI checks, MCP integration, or to embed VAST validation inside another system.
This app currently depends on local file-based packages from a sibling vastlint checkout in ../vastlint.
Recommended workspace layout:
your-workspace/
vastlint/
VAST-Tester/
Install dependencies:
npm installStart the dev server:
npm run devCreate a production build:
npm run buildThis repo is intended to stay separate from vastlint-infra and deploy directly to Cloudflare Pages on the custom hostname iab-tech-lab-vast-tester.vastlint.org.
One-time Cloudflare auth on your machine:
npm run cf:loginOne-time Pages project creation:
npm run cf:pages:createDeploy the current branch from your local machine:
npm run deploy:pagesAfter the first successful deploy, attach the custom domain in Cloudflare Pages:
iab-tech-lab-vast-tester.vastlint.org
This workflow avoids GitHub Actions and repo secrets while keeping deployment repeatable from the local CLI.
The goal is not to reproduce the old tester one-to-one. The goal is to provide a stronger open-source workflow for anyone searching for an IAB Tech Lab VAST Tester style tool, but needing more visibility into why a tag fails, how wrappers resolve, what media is actually returned, and where tracking or compliance issues appear.
- The app depends on local file-based packages in
../vastlint. - For URL-backed validation, the target endpoint must allow browser-side fetching from your local dev or deployed origin.
- Browser playback results can vary based on codec support and remote asset permissions.