lissy93/wapalyzer β 333β on GitHub (JavaScript). π Identify the technologies powering any website. This is a fork of the now deleted Wappalyzer project by @AliasIO and community.
Snapshot summary built from the project's own GitHub metadata β there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then β see the READ ME tab for the original README in full.
This is a community fork of the now removed wappalyzer project, initially developed by @AliasIO.
The original author maintains a hosted instanced, available at wappalyzer.com.
Prerequisites
Git
Node.js version 14 or higher
Yarn
Quick start
git clone https://github.com/lissy93/wapalyzer.git
cd wappalyzer
yarn install
yarn run link
Usage
Command line
node src/drivers/npm/cli.js https://example.com
Chrome extension
Go to about:extensions
Enable 'Developer mode'
Click 'Load unpacked'
Select src/drivers/webextension
Firefox extension
Go to about:debugging#/runtime/this-firefox
Click 'Load Temporary Add-on'
Select src/drivers/webextension/manifest.json
Specification
A long list of regular expressions is used to identify technologies on web pages. wapalyzer inspects HTML code, as well as JavaScript variables, response headers and more.
Patterns (regular expressions) are kept in src/technologies/. The following is an example of an application fingerprint.
DNS records: supports MX, TXT, SOA and NS (NPM driver only).
{ "MX": "example\\.com" }
js
Object
JavaScript properties (case sensitive). Avoid short property
names to prevent matching minified code.
{ "jQuery.fn.jquery": "" }
headers
Object
HTTP response headers.
{ "X-Powered-By": "^WordPress$" }
html
String | Array
HTML source code. Patterns must include an HTML opening tag to
avoid matching plain text. For performance reasons, avoid
html where possible and use
dom instead.
"<a [^>]*href=\"index.html"
text
String | Array
Matches plain text. Should only be used in very specific cases where other methods can't be used.
\bexample\b
css
String | Array
CSS rules. Unavailable when a website enforces a same-origin
policy. For performance reasons, only a portion of the available
CSS rules are used to find matches.
"\\.example-class"
probe
Object
Request a URL to test for its existence or match text content (NPM driver only).
{ "/path": "Example text" }
robots
String | Array
Robots.txt contents.
"Disallow: /unique-path/"
url
String | Array
Full URL of the page.
"^https?//.+\\.wordpress\\.com"
xhr
String | Array
Hostnames of XHR requests.
"cdn\\.netlify\\.com"
meta
Object
HTML meta tags, e.g. generator.
{ "generator": "^WordPress$" }
scriptSrc
String | Array
URLs of JavaScript files included on the page.
"jquery\\.js"
scripts
String | Array
JavaScript source code. Inspects inline and external scripts. For performance reasons, avoid
scripts where possible and use
js instead.
"function webpackJsonpCallback\\(data\\) {"
Patterns
Patterns are essentially JavaScript regular expressions written as strings, but with some additions.
Quirks and pitfalls
Because of the string format, the escape character itself must be escaped when using special characters such as the dot (\\.). Double quotes must be escaped only once (\"). Slashes do not need to be escaped (/).
Flags are not supported. Regular expressions are treated as case-insensitive.
Capture groups (()) are used for version detection. In other cases, use non-capturing groups ((?:)).
Use start and end of string anchors (^ and $) where possible for optimal performance.
Short or generic patterns can cause applications to be identified incorrectly. Try to find unique strings to match.
Tags
Tags (a non-standard syntax) can be appended to patterns (and implies and excludes, separated by \\;) to store additional information.
Tag
Description
Example
confidence
Indicates a less reliable pattern that may cause false
positives. The aim is to achieve a combined confidence of 100%.
Defaults to 100% if not specified.
"js": { "Mage": "\\;confidence:50" }
version
Gets the version number from a pattern match using a special
syntax.
"scriptSrc": "jquery-([0-9.]+)\.js\\;version:\\1"
Version syntax
Application version information can be obtained from a pattern using a capture group. A condition can be evaluated using the ternary operator (?:).
Example
Description
\\1
Returns the first match.
\\1?a:
Returns a if the first match contains a value, nothing
otherwise.
\\1?a:b
Returns a if the first match contains a value, b otherwise.
\\1?:b
Returns nothing if the first match contains a value, b
otherwise.
The most recent commit recorded on lissy93/wapalyzer was 5 months ago, based on the GitHub push timestamp. The repository has 64 forks β one of the better signals of community interest.
How many stars does lissy93/wapalyzer have?
lissy93/wapalyzer has 333 GitHub stars β refresh the page for the live number, or check github.com/lissy93/wapalyzer. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is lissy93/wapalyzer open source?
Yes β lissy93/wapalyzer ships under the GPL-3.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/lissy93/wapalyzer.
What is lissy93/wapalyzer?
lissy93/wapalyzer (lissy93/wapalyzer) is a JavaScript project on GitHub. From the project's own README: π Identify the technologies powering any website. This is a fork of the now deleted Wappalyzer project by @AliasIO and community.
Where do I read more about lissy93/wapalyzer?
This TopGit page is a snapshot β the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/lissy93/wapalyzer is the definitive source.
Read full README in the tab above.
Curious whether wapalyzer is right for you?
Let ChatGPT, Claude, or Perplexity look into it β click below and see what AI actually says about wapalyzer.