new-term-radar
Daily radar for new AI terms: names of new models, products and repos, caught on X, Hugging Face, GitHub and sitemaps before keyword tools list them.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Detect what any website is built with, in bulk: CMS, ecommerce platform, frameworks, analytics, CDN and hosting from 7,600+ fingerprints. Straight answers at one flat price per site, and failed URLs never cost a cent. Runs on Apify Store: https://apify.com/josh99smith/tech-stack-detector
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
This website technology detector finds out what any website is built with in seconds. Paste a list of URLs and get back the CMS, ecommerce platform, JavaScript frameworks, analytics and marketing tags, CDN, hosting provider, email provider, security tools and more, matched against a database of 7,600+ technology fingerprints.
It is a Wappalyzer / BuiltWith alternative that runs as an API: no browser extension, no monthly subscription, no per-seat licence. You pay a flat price per website analyzed, and websites that cannot be reached are reported free of charge.檢視完整 README ↗This website technology detector finds out what any website is built with in seconds. Paste a list of URLs and get back the CMS, ecommerce platform, JavaScript frameworks, analytics and marketing tags, CDN, hosting provider, email provider, security tools and more, matched against a database of 7,600+ technology fingerprints.
It is a Wappalyzer / BuiltWith alternative that runs as an API: no browser extension, no monthly subscription, no per-seat licence. You pay a flat price per website analyzed, and websites that cannot be reached are reported free of charge.
For every URL the Actor downloads the HTML page and inspects HTTP headers, cookies, meta tags, inline scripts and styles, script and stylesheet URLs, the DOM structure and (optionally) DNS records. Every signal is matched against the open-source fingerprint database maintained by the webappanalyzer project, the community continuation of the original Wappalyzer rules. Detections also resolve implied technologies (for example WordPress implies PHP and MySQL) and drop contradictory ones.
Detection is HTTP-only, so it is fast (typically 1 to 3 seconds per site) and cheap. Technologies that only reveal themselves after JavaScript executes in a browser are not detected; see the FAQ.
{
"urls": ["https://www.shopify.com", "wordpress.org", "https://www.nytimes.com"],
"detectViaDns": true,
"includeEvidence": false
}
One record per website. Successful records look like this (trimmed):
{
"url": "https://wordpress.org/",
"finalUrl": "https://wordpress.org/",
"success": true,
"statusCode": 200,
"title": "Blog Tool, Publishing Platform, and CMS",
"technologyCount": 13,
"technologies": [
{ "name": "WordPress", "slug": "wordpress", "categories": ["CMS", "Blogs"], "version": "7.2", "confidence": 100, "website": "https://wordpress.org" },
{ "name": "Gutenberg", "slug": "gutenberg", "categories": ["WordPress plugins", "Editors"], "version": "24.0.0", "confidence": 100, "website": "https://wordpress.org/gutenberg/" },
{ "name": "Nginx", "slug": "nginx", "categories": ["Web servers", "Reverse proxies"], "version": null, "confidence": 100, "website": "http://nginx.org/en" },
{ "name": "Google Tag Manager", "slug": "google-tag-manager", "categories": ["Tag managers"], "version": null, "confidence": 100, "website": "http://www.google.com/tagmanager" }
],
"byCategory": {
"CMS": ["WordPress"],
"Web servers": ["Nginx"],
"Tag managers": ["Google Tag Manager"],
"Security": ["HSTS"]
},
"byGroup": { "Content": ["WordPress"], "Servers": ["Nginx"], "Analytics": ["Google Tag Manager"] },
"server": "nginx",
"responseTimeMs": 474,
"fetchedAt": "2026-09-18T20:24:11.000Z"
}
Websites that could not be analyzed are still recorded, so nothing silently disappears from your list:
{ "url": "https://this-domain-does-not-exist.example", "success": false, "errorType": "dns", "error": "getaddrinfo ENOTFOUND ...", "fetchedAt": "..." }
| Field | Description |
|---|---|
url / finalUrl | The URL you supplied and the URL after redirects. |
success | true when the page was fetched and analyzed. Only these records are billed. |
statusCode | HTTP status of the final response. |
title | The page <title>. |
technologyCount | Number of technologies detected. |
technologies[] | name, slug, categories, version (when it can be determined), confidence (0 to 100), vendor website, optional cpe identifier, optional description and evidence. |
byCategory / byGroup | Technology names grouped by category (CMS, CDN, Analytics, ...) and by broader group (Content, Servers, Marketing, ...). |
server | Raw Server response header. |
errorType | For failures: invalid-url, dns, timeout, blocked, http-error, network or other. |
Run the Actor and get the results back in one HTTP call:
curl -X POST "https://api.apify.com/v2/acts/josh99smith~tech-stack-detector/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "urls": ["https://www.shopify.com", "https://wordpress.org"] }'
Python, with the apify-client package:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("josh99smith/tech-stack-detector").call(
run_input={"urls": ["https://www.shopify.com", "https://wordpress.org"], "detectViaDns": True}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["url"], item.get("byCategory", {}).get("CMS"))
JavaScript, with the apify-client package:
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });
const run = await client.actor("josh99smith/tech-stack-detector").call({
urls: ["https://www.shopify.com", "https://wordpress.org"],
detectViaDns: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((item) => [item.url, item.technologyCount]));
The Actor is exposed as a tool by the Apify MCP server, so an AI agent can call it by name. Add this to your MCP client configuration (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and others):
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=josh99smith/tech-stack-detector",
"headers": { "Authorization": "Bearer <YOUR_API_TOKEN>" }
}
}
}
Then ask, for example: "What is shopify.com built with? Use josh99smith/tech-stack-detector." The agent fills in the input, runs the Actor and reads the dataset back; you pay the same per-result price as in the Console.
The Actor can also be scheduled, or connected to Zapier, Make, n8n and Google Sheets in the Integrations tab.
You pay a flat price per successfully analyzed website (see the price shown next to the Start button). Unreachable or invalid URLs cost nothing. There is no charge for Actor start-up, and the Actor stops automatically when it reaches the maximum cost you set for a run, so a large list never produces a surprise bill.
For comparison, a 1,000-domain lookup on this Actor costs a fraction of a single month of a BuiltWith or Wappalyzer subscription, and you only pay for what you actually run.
How it compares (September 2026). The most-used alternative on Apify Store charges $0.10 per website and the next one $0.07 to $0.10; this Actor charges $0.008 per analyzed website with the same 7,600-technology catalogue, so 1,000 domains cost about $8 instead of $70 to $100. There is no start fee, blocked or unreachable sites are never billed, and the run stops on its own at the cost cap you set.
Browser extensions execute the page's JavaScript and read global variables. This Actor analyzes the served HTML, headers, cookies and DNS records, which covers the large majority of fingerprints and is many times faster and cheaper. Single-page applications that render everything client-side will show fewer detections. A JavaScript-rendering mode is on the roadmap; tell us in the Issues tab if you need it.
Each fingerprint is a community-maintained rule. Confidence values reflect how many independent signals matched. Occasional false positives are possible when a page merely mentions another platform; use the evidence field to review them.
Only the page you provide (usually the home page), after following redirects. Sub-pages are not crawled.
There is no fixed cap on the list size. Large lists are processed in parallel (up to 50 sites at a time) and the run stops cleanly when it reaches the maximum cost you set. Each request times out after the configured Request timeout (default 30 seconds) and is retried once before it is reported as a free failure.
The Actor reads publicly served pages exactly like a browser does, at low request rates, and stores no personal data. You are responsible for using the results in compliance with the laws and terms that apply to you.
No. Output fields are stable: existing fields are never renamed or removed without a major version bump announced in the changelog, and new fields are only ever added. You can build integrations on the schema without checking it after every run.
Best Damn Tech Stack Detector plugs into the tools you already use through Apify integrations, so results can flow on without anyone downloading a file. Ready-made connectors include:
You can also attach webhooks to trigger your own endpoint whenever a run succeeds, fails or times out. For example, post a Slack message when a prospect list finishes, or push newly detected Shopify stores into your CRM.
Found a site that is misdetected, or a technology that is missing? Open a ticket in the Issues tab of this Actor. Fingerprint contributions are welcome upstream at enthec/webappanalyzer. If this Actor saved you time, a review on its Store page helps other people find it.
This Actor is open source under the GPL-3.0 licence. The technology fingerprints are © their contributors, GPL-3.0.
The full source code is on GitHub: josh99smith/tech-stack-detector. Stars and pull requests are welcome.