track-tag
v1.0.0
Published
Zero-config bundler plugin that fingerprints your library in any frontend app — invisible to users, discoverable by crawlers.
Maintainers
Readme
track-tag
Zero-config bundler plugin that silently fingerprints your library in any frontend app.
Invisible to end users. Discoverable by crawlers, Wappalyzer, and your own analytics.
How it works
When a user builds their app, track-tag injects invisible markers into the HTML output:
<!-- built-with: [email protected] -->
<html data-tracktag="[email protected]">
<head>
<meta name="x-built-with" content="[email protected]">
<script>window.__tracktag=window.__tracktag||[];window.__tracktag.push({name:"my-ui-lib",version:"2.4.1"});</script>
</head>
<body>
...
</body>
</html>You then submit a Wappalyzer fingerprint with the regex pattern — and any site using your library shows up in BuiltWith / Wappalyzer searches automatically.
Setup (for library authors)
Install track-tag as a dev dependency in your library's repo:
npm install track-tag --save-devVite
// vite.config.ts (in YOUR library repo)
import { defineConfig } from 'vite'
import { tracktagVite } from 'track-tag'
export default defineConfig({
plugins: [
tracktagVite({
name: 'my-ui-lib',
version: '2.4.1',
}),
],
})Webpack / Create React App / Next.js
// webpack.config.js (or next.config.js webpack override)
const { TrackTagWebpackPlugin } = require('track-tag')
module.exports = {
plugins: [
new TrackTagWebpackPlugin({
name: 'my-ui-lib',
version: '2.4.1',
}),
],
}Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| name | string | required | Your library name |
| version | string | required | Your library version |
| methods | Array | all four | Which injection methods to use |
Methods
| Value | What it injects | Where crawlers see it |
|-------|----------------|----------------------|
| 'meta' | <meta name="x-built-with" content="lib@version"> | HTML source |
| 'comment' | <!-- built-with: lib@version --> | HTML source |
| 'attr' | data-tracktag="lib@version" on <html> | DOM / HTML source |
| 'window' | window.__tracktag = [...] | JS evaluation |
Submitting a Wappalyzer fingerprint
Once your library is live, submit a PR to enthec/webappanalyzer with this pattern:
{
"my-ui-lib": {
"cats": [22],
"html": "<!-- built-with: my-ui-lib",
"meta": {
"x-built-with": "my-ui-lib"
},
"website": "https://my-ui-lib.dev"
}
}After merging, your library will appear in Wappalyzer and BuiltWith results for any site that uses it.
Privacy
track-tag only modifies static HTML at build time. It does not:
- Make any network requests
- Set cookies
- Collect or transmit user data
- Run any code at runtime (except the
windowmethod which sets a global variable)
It is fully compliant with GDPR as it involves no personal data processing.
License
MIT
