URL Route Tools
A local Node and Playwright tool that walks a site's XML sitemap or a JSON list of URLs and checks every page for the presence or absence of CSS selectors, with exportable reports.
- Node 24
- Express 5
- Playwright
- Tailwind 4
- xml2js
Source on GitHubStarted April 2026MIT
When you’re migrating or refactoring a site with hundreds of routes, “did the new header land on every page?” is a surprisingly hard question to answer by hand. URL Route Tools answers it in one scan: point it at a site, describe what should (or shouldn’t) be on each page, and it visits every URL in a real browser and reports back.
How it works
- Feed it either the site’s
/sitemap.xmlor a pasted/uploaded JSON array of full URLs, for sites that don’t publish a sitemap. - Each check has a label, a CSS selector (
#top-level-nav,.top-banner, .top-nav,input[type="email"]), an expectation (present, absent, contains text) and an optional “exclude if inside” selector so a match inside a modal or flyout doesn’t count. - Playwright drives a headless browser through every URL, so JavaScript-rendered markup is checked as it actually renders, not as it’s served.
- Results show live in the UI and export as JSON for sharing or diffing later.
Built for local development
It works against localhost and DDEV sites as well as production. For Drupal sites behind a login, a checkbox runs ddev drush uli first and the scan proceeds authenticated. A debug toggle streams both server logs and the browser console to the terminal, and the JSON body limit is configurable for very large URL lists.
The UI is a small Express 5 app with Tailwind compiled on startup, kept deliberately dependency-light.





