It scans the page's rendered HTML for signatures that only one technology leaves behind: a vendor hostname (cdn.shopify.com, static.hotjar.com), a framework-specific attribute (data-wf-site, ng-version, astro-island), a global that only one script sets (__NEXT_DATA__, __NUXT__, fbq(), or a generator meta tag. Every detection shows the matched snippet so you can verify it. Nothing is sent to the site beyond fetching the page — no header sniffing of other resources, no port scans. If the page is served from a platform subdomain such as *.vercel.app or *.myshopify.com, that is counted as a hosting signal as well.
It is deliberately conservative. Tailwind, for example, is only reported when the page uses several responsive-prefixed utilities and several palette utilities together — a page with a class named text-center is not Tailwind. React is reported through the frameworks built on it, because a production React bundle leaves no reliable marker of its own. The flip side is that a heavily customised or self-hosted stack will show fewer technologies than it really uses.
What to do with the results
- Competitive research — see which CMS, e-commerce platform, analytics stack and chat or consent widgets a competitor has chosen, with evidence you can cite.
- Auditing your own site — catch tags you forgot were installed. An abandoned Hotjar snippet or two analytics scripts loading side by side cost load time and can put you on the wrong side of consent rules.
- Migration planning — confirm the framework and hosting a site is on before scoping a rebuild, and check the new site after launch to make sure the old tags did not come along.