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 docs/ENVIRONMENT_VARIABLES.md 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 tools/n8n.md 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 docs/ENVIRONMENT_VARIABLES.md 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