Four trap flavors
Tracking pixels, redirect links, preview clones and fully custom fake pages. Pick the disguise that fits the situation.
Badger makes innocent-looking URLs that quietly note down everyone who opens them, and exactly how. Think of it as a canary token you fully control: drop a link and watch the metadata roll in.
Plant a link, then learn exactly who walked into it, and with what.
Tracking pixels, redirect links, preview clones and fully custom fake pages. Pick the disguise that fits the situation.
IP chain, geo, ISP and ASN, parsed browser and OS, referer, language, and the complete raw request headers.
A built-in heuristic flags automated clients, and tells you the reason it decided that. Less noise, more signal.
Copy any URL's OpenGraph card so your trap unfurls identically in Slack, Discord or X, then forwards to the real thing.
Design your own fake link preview with a live preview, then choose: redirect humans onward, or show them your own HTML.
Every hit across every trap, streaming in and auto-refreshing, so you never have to babysit the dashboard.
Warm, friendly, and calm. No scary hacker terminal here.
Type a title, description and image URL and watch the social-card preview update live, exactly as it will unfurl in chat. Then choose what a human gets: a quiet redirect, or your own custom HTML page.
Every visit is logged the same way, no matter which path they take.
Each trap is just a URL you plant somewhere. What the visitor sees depends on the type, but every open is logged.
A 1x1 image you embed in emails and documents. The visitor sees nothing; you see everything.
Looks like a totally normal short link, then quietly forwards the visitor on to a real URL.
Copies a target's OpenGraph card so the link unfurls identically, then forwards to the original.
Your hand-crafted preview plus a redirect, or your own HTML page. Suggest a believable destination.
A soft "loading..." landing page that reveals nothing while it logs the visit in the background.
A prebuilt image ships to GitHub Container Registry on every push. Pull it and you are running.
# pull and run the prebuilt image
docker run -d --name badger \
-p 3000:3000 \
-e NUXT_PUBLIC_BASE_URL=https://badger.example.com \
-v badger-data:/app/.data \
ghcr.io/disane87/badger:latest
Put it behind a reverse proxy so X-Forwarded-For carries the real client IP. The dashboard has no auth yet, so keep it on a leash.
Badger is for authorized security testing and monitoring of assets you own or are allowed to watch. Tracking or cloaked links against third parties without consent may break privacy law, and impersonating a brand you do not control is plain phishing. Be a good human.