# Changelog of Website Tech Stack Detector: CMS, Analytics, Hosting & Email (`folt/tech-stack-detector`) Actor

- **URL**: https://apify.com/folt/tech-stack-detector/changelog.md
- **Full Actor documentation**: https://apify.com/folt/tech-stack-detector.md

## Changelog

### 0.2 — 2026-10

- **Import websites** from a CSV / TXT file or a Google Sheet (`domainsFileUrl`) and from another Actor's dataset, e.g. Google Maps Scraper results (`datasetId`, `datasetField`). URLs are reduced to the homepage and deduplicated; `inputUrl` keeps the original value. Up to 10,000 domains per run in total.
- **Technology filter** (`onlyWithTechnologies`): output only domains using any of the given technologies or categories. You pay per analyzed domain; the filter only trims the output.
- **Change monitoring** (`monitorChanges`, `stateKey`, `outputOnlyChanges`): `changeStatus`, `technologiesAdded` and `technologiesRemoved` compared with the previous run. Analyzed domains are charged even when hidden as unchanged.
- Faster on dead domains: one 25-second budget per domain across all fallback attempts, shorter connect / header timeouts, more parallel DNS lookups, no repeat lookup of a host that doesn't resolve.
- A run on a list that is almost entirely dead (over 80% of at least 200 checked domains failing) stops early with an explanation. Max concurrency has a floor of 10; maximum memory is 1 GB.
- TXT records are sorted before the 100-record cap, so domains with many records give the same result on every run.
- Without the new options, input and output are unchanged.

### 0.1 — 2026-10

- First release: technology stack of up to 10,000 websites per run from one HTTP fetch of the homepage (headers, cookie names, meta tags, script URLs, inline snippets, HTML/DOM markers) plus optional DNS (MX, NS, TXT, SOA, CNAME).
- Fingerprints: community Wappalyzer dataset [enthec/webappanalyzer](https://github.com/enthec/webappanalyzer) (GPL-3.0) pinned at commit `eea872a`, bundled in the image; plus a Folt Labs supplement (frameworks visible in HTML, script URLs injected by tag snippets, email / DNS / hosting providers).
- Convenience fields: CMS, e-commerce platform, analytics, tag managers, JS frameworks, CDN, hosting, web server, payments, marketing automation, live chat, email provider, email security gateway, DNS provider.
- Bot-protection challenge pages (Cloudflare, DataDome, HUMAN/PerimeterX, Imperva, Akamai, AWS WAF, Vercel, Kasada, …) are flagged `blocked` and not charged; failed domains are not charged.
- SSRF-safe fetching (public hostnames only, no IP literals, every redirect hop and every connection re-validated), response size caps, regex time-boxing with automatic quarantine of slow patterns.
- Robust fetching: https → www → http fallback for bare domains, cookie-check redirect loops followed (cookies kept in memory for the redirect chain only), charset-aware decoding (e.g. windows-1251), clear error reasons.
- Verified against an independent checker on 50 well-known sites: precision 0.97, recall 0.97, email provider 27/27.
