Documentation
Everything you need to install, configure, and integrate TechStacker.
Getting started
Data
Patterns
Advanced
Installation
TechStacker is a Manifest V3 extension for Chromium-based browsers (Chrome, Edge, Brave, Arc, Vivaldi, Opera).
- Visit the Chrome Web Store listing
- Click Add to Chrome
- Confirm the permission prompt
- The TechStacker icon appears in your toolbar. That’s it — no signup, no email, no account.
Dashboard tour
The dashboard has eight tabs, accessible from the sidebar or top tabs:
- Inspector — site-specific view: full tech stack, raw scripts, third-party connections, custom field editor
- Global Telemetry — fleet-wide search across thousands of network assets, sub-100ms debounced full-text
- Visited Websites — directory of all analyzed domains, visit counts, vertical badges
- Vendor Directory — full catalog of recognized technologies, add/edit/delete patterns
- Vendor Changes — chronological log of additions and removals
- Vertical Models — sites categorized by industry
- Tags & Pairings — analytics container correlation matrix
- Settings & Cloud — telemetry config, export, webhook, license
Settings & privacy
Denylist
Block any domain from being captured. Useful for internal intranets, banking portals, and localhost. Add one domain per line in Settings → Privacy → Denylist.
Incognito
By default, TechStacker does not run in incognito. To enable: chrome://extensions → TechStacker → Details → Allow in incognito. Then choose per-incognito-tab policy:
- Keep — store incognito telemetry in the main IndexedDB
- Anonymize — store with hostname replaced by a UUID
- Discard — capture but immediately delete on tab close
Rate limiting
Default cap is 500 captured resources per page. On infinite-scroll sites (social feeds), increase to 2,000 to avoid dropped captures. Set to 100 on low-power devices.
CSV / JSON export
Settings → Export. Three formats:
- Multi-table CSV (ZIP) — sequential, memory-bounded. Generates 7 CSVs in order: websites, vendors, mappings, tags, pairings, snapshots, custom fields. Bundled into a single ZIP.
- Full JSON snapshot — one file with all stores. Suitable for backup or feeding a database pipeline.
- Vendor config only — portable library to share/import vendor patterns.
Webhook sync
Configure a webhook URL in Settings → Export → Webhook. The extension will POST a JSON snapshot to that URL:
“event”: “scan_complete”,
“timestamp”: “2026-08-29T11:30:38Z”,
“hostname”: “shop.example.com”,
“vendors”: [
{ “name”: “Google Tag Manager”, “id”: “GTM-P7Q2X9C” },
{ “name”: “Stripe.js”, “category”: “payment” }
]
}
Fire modes:
- Manual — click “Sync now” in the dashboard
- Auto — after every page scan completes
- Throttled — every N minutes, deduplicated by hostname
IndexedDB schema
8 object stores, all under the database TechStackerDB:
| Store | Key | Index |
|---|---|---|
sites | hostname | — |
scripts | id auto | hostname |
connections | id auto | hostname |
vendors | id auto | name |
custom_fields | name | — |
vendor_snapshots | id auto | hostname, vendor, timestamp |
verticals | id | — |
site_verticals | id composite | hostname, vertical_id |
Pattern syntax
Each vendor is defined by a pattern, a name, a category, and an optional vertical:
“pattern”: “static.hotjar.com”,
“name”: “Hotjar”,
“category”: “Session Recording”,
“vertical”: “v_saas”,
“custom_fields”: {
“Owner”: “growth-team”,
“Compliance”: “GDPR — pending DPA”
}
}
Patterns are compiled into boundary-checked regex and cached in a 5,000-entry FIFO. Sub-millisecond match times across tens of thousands of requests.
Submitting to the cloud
From the dashboard, find an unmapped vendor and click Submit to Community. The extension pre-fills the script URL(s) and lets you confirm the name and category. The submission lands in the admin moderation queue at app.tchstkr.com/admin.
On approval, contribution credits are automatically added to your account — an internal currency you can spend on metered scans and API usage. See the contribute page for pattern authoring tips.
Automation / Puppeteer
TechStacker emits a custom console message when telemetry collection finishes on a page. Capture it from your automation runner:
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
page.on(‘console’, m => {
if (m.text() === ‘SCAN_COMPLETE’) {
console.log(‘telemetry ready’);
}
});
await page.goto(url, { waitUntil: ‘networkidle2’ });
await browser.close();
})();
Compatible with Chrome DevTools Protocol (CDP) downloads, Playwright, Puppeteer, and Selenium. The codebase ships a 28-test Playwright integration suite for tab switching, scan time, and memory under load.
Cloud platform
The cloud platform at app.tchstkr.com is opt-in. Paid subscribers unlock:
- Master definition push via
/api/definitions/sync - License verification via
/api/auth/verify - Submission queue via
/api/submissions - Admin console at
/admin
Delta sync protocol
“since_version”: 2418,
“license_key”: “TS-PRO-XXXX-XXXX”
}
Response contains only the vendor definitions that have changed since the requested version. The client merges them into the local IndexedDB and updates definitionsVersion.
Troubleshooting
Extension isn’t detecting anything
Check chrome://extensions — make sure TechStacker is enabled. Open the popup; if it says “No active tab,” reload the current page. Check Settings → Denylist — overly broad rules will block legitimate hosts.
Dashboard is slow with thousands of records
Run the built-in compaction: Settings → Storage → Compact DB. This rebuilds indexes and reclaims space. For >100k records, increase the Chrome storage quota or run a CSV export + reset.
Cloud sync fails with a 401
License key not recognized. Check that you copied the full key (format TS-PRO-XXXX-XXXX or TS-YEAR-XXXX-XXXX). If your subscription has lapsed, renew at tchstckr.com/pricing and re-enter the new key.