StackPrism is a browser extension for detecting website technology stacks.
See the code
Identify the web technology stack behind any page with a Manifest V3 browser extension for Chrome, Edge, and Firefox.
English · 简体中文 · 繁體中文 · 日本語 · Français · Deutsch · Português · Italiano · Čeština · Polski
Introduction • Features • Rule System • Caveats • Contributing • Sponsors • Star History • License
StackPrism is a Manifest V3 browser extension for Chrome, Edge, and Firefox that identifies the tech stack used by any webpage.
Unlike most similar tools that only scan HTML resource URLs, StackPrism runs 4 independent detection channels in parallel:
<meta> tagswebRequest.onHeadersReceived and captures response headers and HTTP version for the main document, XHR requests, and iframesPerformanceObserver + MutationObserver to accumulate scripts, styles, iframes, and feeds loaded after user interactionindex/main/vendor chunks via their copyright headersResults from all 4 channels are merged and deduplicated, grouped into 50+ categories, with active suppression of spoofed headers, self-referential detections, and fuzzy false positives.
public/rules/) maintained centrally; at build time a precompiler injects __hints (top-3 longest literal segments) and __keywordCombined (merged regex) into each leaf rule, so the runtime only evaluates candidate matches| Dimension | Category examples |
|---|---|
| Frontend | Frontend frameworks / UI frameworks / Frontend libraries / Build & runtime |
| Backend | Web servers / Backend frameworks / CDN & hosting / Languages |
| Content | CMS / Themes & templates / E-commerce / RSS |
| Third-party | SaaS / APM / AI models / Social login / Payments |
| Marketing | Ads / Marketing / Analytics / Tag managers |
| Security | WAF / HTTPS / HTTP/2 / HTTP/3 / CSP / Cookie consent |
The popup and settings page are available in 9 languages, auto-detected from your browser locale:
🇨🇳 简体中文 · 🇹🇼 繁體中文 · 🇯🇵 日本語 · 🇫🇷 Français · 🇩🇪 Deutsch · 🇧🇷 Português · 🇮🇹 Italiano · 🇨🇿 Čeština · 🇵🇱 Polski
You can also switch the language manually with the 🌐 button in the popup header.
Load from source (developer mode):
git clone https://github.com/setube/stackprism.git
cd stackprism
bun install
bun run build # Chrome / Edge
bun run build:firefox # Firefox
Chrome / Edge:
chrome://extensions or edge://extensionsdist/ directoryFirefox:
about:debugging#/runtime/this-firefoxdist-firefox/manifest.jsonbun run build:firefox and double-click the .xpi in release/bun run dev # Dev mode + HMR
bun run typecheck # vue-tsc type checking
bun run lint # ESLint
bun run build # Production build (includes rule precompilation)
bun run build:firefox # Firefox build + .xpi packaging
bun run docs:dev # VitePress docs preview
StackPrism's detection is data-driven — almost all changes require only editing the JSON rule files, not touching any code.
public/rules/page/*.json handle page source, DOM, resource URLs, and dynamic resourcespublic/rules/headers/*.json handle server response headers and cookiesprecompileRulesPlugin in vite.config.ts injects __hints and __keywordCombined into each leaf rule at build time; the runtime rule-matcher.ts uses them as candidate filtersRule schema:
{
"name": "My Technology",
"category": "Frontend Framework", // one of 50+ categories
"patterns": ["regex-or-keyword"],
"matchType": "regex", // or "keyword"
"matchIn": ["html", "resources", "url", "headers", "dynamic"],
"confidence": "高", // 高 / 中 / 低 (high / medium / low)
"kind": "description",
"selectors": ["CSS selector"],
"globals": ["window global name"],
"classPrefixes": ["class-prefix"]
}
<meta name="generator">, window.<global>, unique CSS selectors, copyright comments, official SDK package namesspring, phoenix, column, container — these match competitor mentions, Bootstrap/Tailwind utility classes, and generic prose)matchIn scopes — use resources / url / headers rather than bare html to reduce false positives from page textServer / X-Powered-By headers; backend results are shown as "clues + confidence"outerHTML, not the original server-returned HTMLStackPrism ships 2000+ detection rules across 50+ categories, but the frontend ecosystem moves fast. New frameworks, new SaaS tools, false positives, and missed detections are all welcome:
public/rules/Before submitting code, run bun run typecheck && bun run lint && bun run build and make sure all three pass.
If this is useful, a ⭐ helps others find the project.
MIT.
Thanks to the Linux.do community for its support and contributions.
585 followers · starred Jun 2026
117 followers · starred May 2026
16 followers · starred May 2026
59 followers · starred May 2026
StackPrism is a browser extension for detecting website technology stacks.
See the code
Identify the web technology stack behind any page with a Manifest V3 browser extension for Chrome, Edge, and Firefox.
English · 简体中文 · 繁體中文 · 日本語 · Français · Deutsch · Português · Italiano · Čeština · Polski
Introduction • Features • Rule System • Caveats • Contributing • Sponsors • Star History • License
StackPrism is a Manifest V3 browser extension for Chrome, Edge, and Firefox that identifies the tech stack used by any webpage.
Unlike most similar tools that only scan HTML resource URLs, StackPrism runs 4 independent detection channels in parallel:
<meta> tagswebRequest.onHeadersReceived and captures response headers and HTTP version for the main document, XHR requests, and iframesPerformanceObserver + MutationObserver to accumulate scripts, styles, iframes, and feeds loaded after user interactionindex/main/vendor chunks via their copyright headersResults from all 4 channels are merged and deduplicated, grouped into 50+ categories, with active suppression of spoofed headers, self-referential detections, and fuzzy false positives.
public/rules/) maintained centrally; at build time a precompiler injects __hints (top-3 longest literal segments) and __keywordCombined (merged regex) into each leaf rule, so the runtime only evaluates candidate matches| Dimension | Category examples |
|---|---|
| Frontend | Frontend frameworks / UI frameworks / Frontend libraries / Build & runtime |
| Backend | Web servers / Backend frameworks / CDN & hosting / Languages |
| Content | CMS / Themes & templates / E-commerce / RSS |
| Third-party | SaaS / APM / AI models / Social login / Payments |
| Marketing | Ads / Marketing / Analytics / Tag managers |
| Security | WAF / HTTPS / HTTP/2 / HTTP/3 / CSP / Cookie consent |
The popup and settings page are available in 9 languages, auto-detected from your browser locale:
🇨🇳 简体中文 · 🇹🇼 繁體中文 · 🇯🇵 日本語 · 🇫🇷 Français · 🇩🇪 Deutsch · 🇧🇷 Português · 🇮🇹 Italiano · 🇨🇿 Čeština · 🇵🇱 Polski
You can also switch the language manually with the 🌐 button in the popup header.
Load from source (developer mode):
git clone https://github.com/setube/stackprism.git
cd stackprism
bun install
bun run build # Chrome / Edge
bun run build:firefox # Firefox
Chrome / Edge:
chrome://extensions or edge://extensionsdist/ directoryFirefox:
about:debugging#/runtime/this-firefoxdist-firefox/manifest.jsonbun run build:firefox and double-click the .xpi in release/bun run dev # Dev mode + HMR
bun run typecheck # vue-tsc type checking
bun run lint # ESLint
bun run build # Production build (includes rule precompilation)
bun run build:firefox # Firefox build + .xpi packaging
bun run docs:dev # VitePress docs preview
StackPrism's detection is data-driven — almost all changes require only editing the JSON rule files, not touching any code.
public/rules/page/*.json handle page source, DOM, resource URLs, and dynamic resourcespublic/rules/headers/*.json handle server response headers and cookiesprecompileRulesPlugin in vite.config.ts injects __hints and __keywordCombined into each leaf rule at build time; the runtime rule-matcher.ts uses them as candidate filtersRule schema:
{
"name": "My Technology",
"category": "Frontend Framework", // one of 50+ categories
"patterns": ["regex-or-keyword"],
"matchType": "regex", // or "keyword"
"matchIn": ["html", "resources", "url", "headers", "dynamic"],
"confidence": "高", // 高 / 中 / 低 (high / medium / low)
"kind": "description",
"selectors": ["CSS selector"],
"globals": ["window global name"],
"classPrefixes": ["class-prefix"]
}
<meta name="generator">, window.<global>, unique CSS selectors, copyright comments, official SDK package namesspring, phoenix, column, container — these match competitor mentions, Bootstrap/Tailwind utility classes, and generic prose)matchIn scopes — use resources / url / headers rather than bare html to reduce false positives from page textServer / X-Powered-By headers; backend results are shown as "clues + confidence"outerHTML, not the original server-returned HTMLStackPrism ships 2000+ detection rules across 50+ categories, but the frontend ecosystem moves fast. New frameworks, new SaaS tools, false positives, and missed detections are all welcome:
public/rules/Before submitting code, run bun run typecheck && bun run lint && bun run build and make sure all three pass.
If this is useful, a ⭐ helps others find the project.
MIT.
Thanks to the Linux.do community for its support and contributions.
585 followers · starred Jun 2026
117 followers · starred May 2026
16 followers · starred May 2026
59 followers · starred May 2026