Skip to content

Agentokratia/stack-radar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StackRadar

Tech stack detection API with business intelligence signals. Detect technologies used by any website and get actionable insights about the company.

Features

  • 5,800+ Technologies - Comprehensive fingerprint database based on Wappalyzer patterns
  • Business Signals - Infer company type, business model, and tech sophistication
  • Lead Scoring - Automatic scoring based on detected stack and gaps
  • Gap Analysis - Identify missing tools and sales opportunities
  • Evidence Trail - Optional evidence for each detection
  • SSRF Protected - Secure by default with comprehensive protections

Quick Start

# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build
npm start

API Usage

Detect Technologies

curl -X POST http://localhost:3000/api/detect \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'

Request Parameters

Parameter Type Default Description
url string required URL to scan
timeout number 15000 Timeout in ms (max 30000)
includeEvidence boolean false Include detection evidence

Response

{
  "url": "https://vercel.com/",
  "domain": "vercel.com",
  "meta": {
    "title": "Vercel: Build and deploy the best web experiences",
    "description": "...",
    "ssl": true,
    "statusCode": 200
  },
  "technologies": [
    {
      "name": "Next.js",
      "slug": "next-js",
      "category": "frontend",
      "confidence": "high",
      "website": "https://nextjs.org",
      "evidence": ["HTML: <script[^>]+src=\"[^\"]*\\/_next\\/..."]
    }
  ],
  "insights": {
    "leadScore": 80,
    "companyType": "startup",
    "businessModel": "saas",
    "activelySelling": false,
    "marketingMaturity": "none",
    "techSophistication": "modern",
    "gaps": [
      {
        "category": "crm",
        "insight": "SaaS company without CRM detected",
        "opportunity": "May need HubSpot, Salesforce, or Pipedrive"
      }
    ]
  },
  "scan": {
    "timestamp": "2025-01-01T00:00:00.000Z",
    "durationMs": 4500
  }
}

Business Signals

StackRadar doesn't just detect technologies - it infers business intelligence:

Company Type

  • startup - Modern stack, smaller footprint
  • smb - Medium complexity
  • enterprise - Enterprise tools detected
  • unknown - Insufficient signals

Business Model

  • saas - SaaS indicators (Stripe, Intercom, Sentry, etc.)
  • ecommerce - E-commerce platforms (Shopify, WooCommerce, etc.)
  • media - Content-heavy CMS
  • unknown - Insufficient signals

Tech Sophistication

  • cutting-edge - Astro, Qwik, Bun, Edge functions
  • modern - Next.js, Vercel, Supabase
  • standard - Common frameworks
  • legacy - jQuery, WordPress, older tech

Lead Score (0-100)

Higher scores indicate better sales opportunities based on:

  • Active selling (payment processing)
  • Company type and size
  • Identified gaps in tooling
  • Marketing maturity level

Security

StackRadar includes comprehensive SSRF protections:

  • DNS resolution validation before requests
  • Request interception for redirect validation
  • Blocking of private IPs (127.x, 10.x, 192.168.x, etc.)
  • Blocking of cloud metadata endpoints
  • Hostname blocklist (localhost, *.internal, etc.)
  • Resource size limits

Error Codes

Code Description
E001 Invalid JSON in request body
E002 Missing required field: url
E003 Invalid URL format
E004 Invalid URL protocol (only HTTP/HTTPS)
E005 Private/internal IP blocked (SSRF protection)
E006 Domain not found
E007 Connection refused
E008 Connection timeout
E009 Page error
E010 Unauthorized
E011 Payload too large
E012 Redirect blocked (SSRF protection)
E099 Detection failed

Environment Variables

Variable Description
AGENTOKRATIA_SECRET Optional API secret for authentication

Deployment

Vercel (Recommended)

npm install -g vercel
vercel

The project automatically uses @sparticuz/chromium-min for serverless Chromium.

Docker

FROM node:20-slim

# Install Chrome dependencies
RUN apt-get update && apt-get install -y \
    chromium \
    --no-install-recommends \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build

ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
EXPOSE 3000
CMD ["npm", "start"]

Tech Stack

  • Framework: Next.js 16 (App Router)
  • Runtime: Node.js with Puppeteer
  • Browser: Chromium (via @sparticuz/chromium-min for serverless)
  • Language: TypeScript

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE for details.

Credits

Fingerprint patterns inspired by Wappalyzer (open source).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published