Skip to main content

TechStackAnalyser

Purpose: AI-powered web application that analyzes website technology stacks using fresh, actively maintained technology definitions from enthec/webappanalyzer. Built for Pacing Agency's internal tools and n8n automation workflows.

Where it runs: Production instance at https://techstack.pacing.agency with Cloudflare Zero Trust authentication, deployed on Google Cloud Run (europe-west1).

Last verified: December 2025


Quick Reference​

FeatureCapability
AI AnalysisGemini AI smart analysis for 3-6x faster detection (15-25s vs 90s+)
Technology Database7,219+ technologies with 108 categories from enthec/webappanalyzer
Browser AutomationPlaywright renders JavaScript-heavy sites to detect dynamic technologies
High AccuracyWeighted confidence scoring + AI validation reduces false positives
Companies DatabaseAuto-save all analyses, search companies, view profiles
API AccessRESTful API for n8n workflow automation
AuthenticationCloudflare Zero Trust (Google Workspace + Email OTP)
Export ToolsOne-click JSON/CSV/PDF exports
CostFree (self-hosted on Google Cloud Run)

Overview​

TechStackAnalyser is a powerful web application that analyzes website technology stacks. It uses AI-powered analysis with Gemini 2.0 Flash to intelligently prioritize technologies for faster detection, and includes browser automation via Playwright to detect JavaScript-heavy sites.

Key capabilities:

  • Full Technology Scan - Checks ALL 7,219 technologies (no AI filtering)
  • Smart Icon Matching - Automatic fuzzy matching for 6,541 icon files
  • Browser Automation - Full JavaScript execution with Playwright
  • Company Summary Enrichment - Gemini-powered company overview extraction
  • Full Company Breakdown Report - Detailed business analysis with tech stack insights
  • Real-Time Progress Updates - Server-Sent Events (SSE) for live backend progress
  • Companies Database - Auto-save all analyses, search companies, view profiles

Current Use​

Internal Analysis​

  • Analyze client websites and competitors
  • Technology stack audits for client reports
  • Competitor research and analysis

n8n Automation​

  • API endpoints for workflow integration
  • Automated technology stack analysis in client onboarding workflows
  • Company database queries for CRM integration

Web Interface​

  • Interactive web interface at https://techstack.pacing.agency
  • Real-time progress indicators during analysis
  • Company profiles with search history and reports

How It Works​

Analysis Process​

  1. User submits URL → Frontend sends to /api/v1/analyze
  2. Backend fetches webpage → Downloads HTML, headers, scripts
  3. Custom Wappalyzer analyzes → Runs 7,219 technology patterns
  4. Detects technologies → Matches patterns in URL, HTML, headers, meta tags, scripts
  5. AI Validation (optional) → Gemini AI validates and prioritizes detections
  6. Company Enrichment (optional) → Gemini extracts company data from website
  7. Returns structured data → JSON with technologies, categories, versions, descriptions

Technology Detection​

Detects technologies from:

  • URL patterns
  • HTML content
  • HTTP headers
  • JavaScript sources
  • Meta tags
  • Cookies (planned)

AI Features​

  • Smart Analysis: Gemini AI intelligently prioritizes technologies for 3-6x faster detection
  • Company Summary: Extracts logo, description, services, location, links, socials, news
  • Company Report: Generates detailed business analysis with tech stack insights, issues/risks, and recommendations

Account Access​

  • Access: TechStackAnalyser
  • Account type: INTERNAL (Cloudflare Zero Trust protected)
  • Authentication: Google Workspace email (@pacing.agency) via Cloudflare Access
  • API Access: Cloudflare Access service tokens for n8n workflows

Configuration​

Environment Variables​

The application uses environment variables for configuration. See the source repository documentation for complete environment variable setup.

API Authentication​

For n8n workflows, use Cloudflare Access service tokens. See Cloudflare Access documentation for service token setup details.

Service Token Setup:

  1. Service tokens are created in Cloudflare Zero Trust → Access → Service Auth
  2. Use the Client ID and Client Secret in API request headers
  3. Service token credentials are stored in the root .env file (see the root .env file in the repo)

Required Headers:

CF-Access-Client-Id: <client-id>
CF-Access-Client-Secret: <client-secret>
Content-Type: application/json

Alternative (for testing): Use X-User-Email header with an authorized email

Note: Service token client secrets are only displayed once during creation. Ensure they are saved securely in the .env file immediately.


Features in Use​

Web Interface​

  • Analysis Form: Submit any website URL for analysis
  • Real-Time Progress: Server-Sent Events show analysis stages live
  • Technology Display: Results with icons, categories, confidence scores
  • Company Profiles: View saved companies with search history
  • Export Tools: Download results as JSON, CSV, or PDF

API Endpoints​

Base URL: https://techstack.pacing.agency

Authentication: All API requests require Cloudflare Access service token headers (see API Authentication above).

1. Analyze Website​

POST /api/v1/analyze

Submit a URL for technology stack analysis.

Request Body:

{
"url": "https://example.com",
"use_browser": true,
"ai_validation": false,
"fast_mode": false,
"include_company_summary": true
}

Response:

{
"url": "https://example.com",
"technologies": [
{
"name": "React",
"categories": ["JavaScript Frameworks"],
"version": "18.2.0",
"description": "...",
"website": "https://reactjs.org",
"icon": "/icons/react.svg",
"pricing": ["free"],
"saas": false,
"confidence": 95
}
],
"detectedAt": "2024-12-24T10:00:00Z",
"company_summary": {
"name": "Example Corp",
"logo_url": "https://...",
"short_description": "...",
"services": ["Web Development"],
"locations": ["San Francisco"],
"useful_links": [...],
"social_links": {...},
"news": [...]
},
"cloudflare_blocked": false
}

2. List Companies​

GET /api/v1/companies

Get paginated list of companies with optional search.

Query Parameters:

  • search (optional): Search term for company name/URL
  • limit (default: 20): Results per page
  • offset (default: 0): Pagination offset
  • sort (default: "last_analyzed_at"): Sort field

Example:

GET /api/v1/companies?search=github&limit=10&offset=0

3. Get Company Details​

GET /api/v1/companies/{company_id}

Get full company profile with search history and latest report.

Response includes:

  • Company information (name, URL, description, services, etc.)
  • Linked searches (most recent 10)
  • Latest company report (if available)

4. Get Recent Searches​

GET /api/v1/searches/recent

Get most recent searches with company summary.

Query Parameters:

  • limit (default: 10): Number of searches to return

5. Get Search Details​

GET /api/v1/searches/{search_id}

Get full search record including technologies and raw crawl data.

Response includes:

  • Full technology list
  • Company summary
  • Raw crawl data (HTML, headers, scripts)
  • Analysis metadata (browser mode, AI validation, etc.)

6. Generate Company Report​

POST /api/v1/company-report

Generate detailed business analysis report.

Request Body:

{
"url": "https://example.com",
"technologies": [...],
"company_summary": {...}
}

Query Parameters:

  • company_id (optional): Save report to company
  • search_id (optional): Link report to search

Integrations​

With n8n​

Automation: API endpoints integrated into n8n workflows for:

  • Client onboarding technology audits
  • Competitor analysis automation
  • Company database queries
  • Automated report generation

Example Workflow 1: Analyze and Save

// Step 1: Analyze URL
const analysis = await $http.post('https://techstack.pacing.agency/api/v1/analyze', {
headers: {
'CF-Access-Client-Id': process.env.CF_ACCESS_CLIENT_ID,
'CF-Access-Client-Secret': process.env.CF_ACCESS_CLIENT_SECRET,
'Content-Type': 'application/json'
},
body: {
url: 'https://example.com',
use_browser: true,
include_company_summary: true
}
});

// Step 2: Get company ID from response (if saved)
// The analysis auto-saves to database, company_id is in response metadata

Example Workflow 2: Check Existing Company

// Search for company
const companies = await $http.get('https://techstack.pacing.agency/api/v1/companies', {
headers: {
'CF-Access-Client-Id': process.env.CF_ACCESS_CLIENT_ID,
'CF-Access-Client-Secret': process.env.CF_ACCESS_CLIENT_SECRET
},
params: {
search: 'example.com',
limit: 1
}
});

// Get full details if found
if (companies.companies.length > 0) {
const company = await $http.get(
`https://techstack.pacing.agency/api/v1/companies/${companies.companies[0].id}`,
{
headers: {
'CF-Access-Client-Id': process.env.CF_ACCESS_CLIENT_ID,
'CF-Access-Client-Secret': process.env.CF_ACCESS_CLIENT_SECRET
}
}
);
}

Typical Workflow:

  1. New client added to CRM
  2. n8n workflow triggers TechStackAnalyser API
  3. Analysis results saved to company profile
  4. Report generated and attached to CRM record

See n8n for complete workflow documentation.

With Cloudflare Zero Trust​

  • Web Interface: Authentication via Google Workspace email (@pacing.agency)
  • API Access: Service tokens for n8n workflow automation
  • Service Token Setup: See Cloudflare Access documentation for service token creation and configuration
  • Email OTP: Fallback option for testing (not recommended for production workflows)

Costs and Billing​

  • Monthly Cost: ÂŖ0.00 (self-hosted)
  • Annual Cost: ÂŖ0.00
  • Hosting: Google Cloud Run (europe-west1)
  • Domain: techstack.pacing.agency (via Cloudflare)
  • Infrastructure: Auto-scaling, pay-per-use model

Documentation​

Official Resources​

Internal Resources​

  • Local README: /Users/benpower/Library/CloudStorage/GoogleDrive-hello@automates.tech/Shared drives/Pacing/Tech/CursorPacing/1_Internal/TechStackAnalyser/techstackanalyser/README.md
  • Cloudflare Access Setup: See Cloudflare Access documentation for service token configuration
  • Environment Variables: See the root .env file in the repo for .env file setup
  • n8n Integration: See n8n documentation for workflow examples

Technology Stack​

Backend​

  • FastAPI - Modern, fast web framework
  • Custom Wappalyzer - Technology detection engine
  • Playwright - Browser automation (async API, Chromium)
  • Google Gemini 2.0 Flash - AI analysis and validation
  • Python - Backend language

Frontend​

  • React 19 - UI library
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Vite - Build tool

Infrastructure​

  • Google Cloud Run - Deployment platform (europe-west1)
  • Cloudflare - DNS, SSL, Zero Trust authentication
  • Custom Domain - techstack.pacing.agency

Technology Database​

  • Source: enthec/webappanalyzer (GitHub)
  • Technologies: 7,219 technologies
  • Categories: 108 categories
  • Icons: 6,541 icons with fuzzy matching

Troubleshooting​

Common Issues​

Issue: Analysis taking too long
Solution: Check if browser mode is enabled. Browser mode takes longer but detects more technologies. Consider using fast_mode: true for quicker results.

Issue: API authentication failing
Solution: Verify Cloudflare Access service token credentials. Ensure Client ID and Client Secret are correct.

Issue: Technologies not detected
Solution: Enable use_browser: true for JavaScript-heavy sites. Some technologies only appear after JavaScript execution.

Issue: Company summary not generated
Solution: Ensure include_company_summary: true is set in the request. Company summary requires AI processing.


TODO​

  • Set up API key management system (for n8n automation)
  • Add monitoring and keep-alive workflows
  • Automate technology definition updates
  • Add cookie-based detection
  • Implement usage tracking and analytics

  • n8n - Workflow automation integration
  • Google Cloud Run - Hosting platform
  • Cloudflare - DNS and authentication
  • TwentyCRM - Company database integration (planned)

Note Context

Importance Rating: High - Critical internal tool for client analysis and competitor research

Focus Areas for Note:

  • Emphasize the AI-powered analysis capabilities and speed improvements
  • Highlight the 7,219 technology database and comprehensive detection
  • Document the API integration with n8n workflows
  • Include company database features and auto-save functionality
  • Note the Cloudflare Zero Trust authentication setup

Additional Context:

  • Tool is actively maintained and in production use
  • Source code is in separate repository (techstackdocs)
  • API is used extensively in n8n automation workflows
  • Company database feature is complete and actively used

Last Updated: December 2025
Owner: Ben Power
Status: Active