TechStackAnalyser
AI-powered web application that analyzes website technology stacks using fresh, actively maintained technology definitions
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â
| Feature | Capability |
|---|---|
| AI Analysis | Gemini AI smart analysis for 3-6x faster detection (15-25s vs 90s+) |
| Technology Database | 7,219+ technologies with 108 categories from enthec/webappanalyzer |
| Browser Automation | Playwright renders JavaScript-heavy sites to detect dynamic technologies |
| High Accuracy | Weighted confidence scoring + AI validation reduces false positives |
| Companies Database | Auto-save all analyses, search companies, view profiles |
| API Access | RESTful API for n8n workflow automation |
| Authentication | Cloudflare Zero Trust (Google Workspace + Email OTP) |
| Export Tools | One-click JSON/CSV/PDF exports |
| Cost | Free (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â
- User submits URL â Frontend sends to
/api/v1/analyze - Backend fetches webpage â Downloads HTML, headers, scripts
- Custom Wappalyzer analyzes â Runs 7,219 technology patterns
- Detects technologies â Matches patterns in URL, HTML, headers, meta tags, scripts
- AI Validation (optional) â Gemini AI validates and prioritizes detections
- Company Enrichment (optional) â Gemini extracts company data from website
- 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:
- Service tokens are created in Cloudflare Zero Trust â Access â Service Auth
- Use the Client ID and Client Secret in API request headers
- Service token credentials are stored in the root
.envfile (seedocs/ENVIRONMENT_VARIABLES.mdin 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/URLlimit(default: 20): Results per pageoffset(default: 0): Pagination offsetsort(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 companysearch_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:
- New client added to CRM
- n8n workflow triggers TechStackAnalyser API
- Analysis results saved to company profile
- 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â
- Source Repository: https://github.com/Pacing-Agency/techstackdocs
- Technology Source: enthec/webappanalyzer - 7,219 technology definitions
- API Documentation: Interactive API Docs - FastAPI Swagger UI
- Production URL: https://techstack.pacing.agency
- GitHub Documentation: https://github.com/Pacing-Agency/techstackanalyser/tree/main/docs
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.mdin the repo for.envfile 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
Related Toolsâ
- 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