docs

Documentation

Everything you need to install, configure, and integrate TechStacker.

Installation

TechStacker is a Manifest V3 extension for Chromium-based browsers (Chrome, Edge, Brave, Arc, Vivaldi, Opera).

  1. Visit the Chrome Web Store listing
  2. Click Add to Chrome
  3. Confirm the permission prompt
  4. 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:

// webhook payloadPOST /your-endpoint
{
“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:

StoreKeyIndex
siteshostname
scriptsid autohostname
connectionsid autohostname
vendorsid autoname
custom_fieldsname
vendor_snapshotsid autohostname, vendor, timestamp
verticalsid
site_verticalsid compositehostname, vertical_id

Pattern syntax

Each vendor is defined by a pattern, a name, a category, and an optional vertical:

// vendor definitiontechstacker_vendors.json
{
“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:

// puppeteercrawl.js
const puppeteer = require(‘puppeteer’);

(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

// requestGET /api/definitions/sync
{
“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.