Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

unstack

Discover any website's tech stack from a single URL.

Give Claude a URL. It reads public signals -- HTTP headers, cookies, HTML source, asset URLs, common framework paths -- and pieces together a styled, evidence-backed report. No headless browser. No paid APIs. No authentication. Just a Claude skill and a URL.


What This Does

Most "what's this site built with" tools pattern-match against a static database. They'll tell you "WordPress" but not why they think it's WordPress, and they'll miss the Statamic site running behind Laravel cookies or the Payload CMS hiding behind a Vercel edge layer.

unstack is different. It gives Claude a structured methodology for reading public signals -- five phases of analysis, a library of 100+ detection signatures, and a report template -- then lets the model reason about converging evidence instead of checking boxes.

  • Cookie reading -- Laravel's encrypted {iv, value, mac, tag} payload reveals the framework even when every other header is scrubbed
  • Asset URL patterns -- Statamic's Glide pipeline, Next.js image optimization, Shopify CDN paths, Sanity's image API -- each has a distinctive URL shape
  • CSS class recognition -- sc- prefix = styled-components, css- = Emotion, Tailwind utilities are unmistakable, svelte- hashes don't lie
  • Absence as signal -- No analytics scripts? No JS framework? No build artifacts? Those are deliberate architectural decisions worth calling out

The output is either a full styled HTML report (editorial design, scroll animations, evidence citations) or a quick text summary when you just want answers fast.


Installation

Claude Code Plugin Marketplace

/plugin marketplace add simplyarun/unstack
/plugin install unstack@unstack

Manual Installation

Clone into your Claude skills directory:

git clone https://github.com/simplyarun/unstack.git ~/.claude/skills/unstack

Usage

Full Report

> Audit the tech stack of stripe.com
> What is vercel.com built with? Give me the full report.
> Unstack linear.app

Produces a styled HTML report with five sections: Core Stack, Infrastructure, Frontend, Third-Party Services, Privacy & Security -- plus architectural notes.

Quick Summary

> Quick check -- what's notion.com running?
> Just tell me what framework github.com uses

Returns a concise text breakdown in chat. No file generated.

Commonly Detected Technologies

Category Examples
CMS / Framework WordPress, Next.js, Nuxt, Laravel, Django, Rails, Statamic, Craft, Ghost, Astro, Remix
Hosting / CDN Vercel, Netlify, Cloudflare, AWS CloudFront, Fastly, Fly.io, Render, GitHub Pages
Frontend React, Vue, Svelte, Angular, Tailwind, styled-components, Emotion, CSS Modules
Analytics Google Analytics, Segment, Amplitude, PostHog, Plausible, Fathom, Hotjar
Services Stripe, Intercom, HubSpot, Sentry, LaunchDarkly, Zendesk, Algolia
Security posture CSP policies, HSTS, CSRF tokens, cookie flags, bot detection

Detection depends on what signals the site exposes. Sites behind aggressive bot protection or with fully static CDN layers may yield fewer results.


How It Works

The skill runs five phases: fetch HTTP headers and cookies, analyze HTML source in two passes (structure then patterns), check robots.txt and sitemap.xml, probe ~10 well-known framework paths for non-404 responses, then synthesize everything against the signature library.

No single signal is treated as definitive. The value is in the synthesis -- converging evidence across multiple phases. A Laravel-style encrypted cookie alone could be any of a dozen PHP CMSes. But that cookie + Glide image URLs + flat-file sitemap structure + no database-backed admin path = high-confidence Statamic.

The strongest signals, roughly ranked:

  1. Cookie encryption format -- survives even when developers strip all other headers
  2. Asset URL path structure -- image CDNs and build pipelines each have distinctive shapes
  3. CSS class naming conventions -- generated by build tools, not easily changed
  4. Meta generator tags -- when present, they're definitive
  5. Path probe responses -- /wp-admin redirecting or /_next/data existing confirms the framework

Architecture

unstack/
  .claude-plugin/
    marketplace.json                  # Plugin marketplace catalog
  plugins/
    unstack/
      .claude-plugin/
        plugin.json                   # Plugin manifest (name, version, description)
      skills/
        unstack/
          SKILL.md                    # Investigation methodology + output mode logic (~180 lines)
          references/
            detection-signatures.md   # 100+ fingerprints organized by detection method
            report-template.html      # Styled HTML template with scroll animations

The skill follows a progressive disclosure pattern. SKILL.md loads on every invocation and contains the five-phase workflow and output mode logic. The detection signature library and report template load on demand -- only when Claude needs to cross-reference patterns or generate a full report. This keeps context lean for quick-answer queries.


Design Choices

Reasoning over pattern matching. Static databases go stale. The real value is in an AI that can interpret what it sees -- recognizing that a cookie encryption format implies a specific framework family, or that the absence of analytics scripts is itself a signal. unstack provides the methodology and evidence library, then trusts the model to reason.

Evidence or silence. Every technology in the report is backed by a specific, verifiable signal. If there's no header, cookie, URL pattern, or HTML marker to point to, it doesn't appear in the report.

The report is the product. The report template draws from Bauhaus design principles: editorial typography (Fraunces serif + Space Grotesk), strict grid discipline, numbered sections, and restrained color. It's meant to be shared, not just read and discarded.


Limitations

unstack reads what's publicly visible. That means it has blind spots:

  • Aggressive bot protection -- Sites using Cloudflare's Under Attack mode or similar challenges may block curl entirely, returning a CAPTCHA page instead of real headers.
  • SPAs behind CDN proxies -- If all HTML is generated client-side and the CDN strips server headers, there are fewer signals to work with. Detection still works but may miss backend technologies.
  • Obfuscated or stripped headers -- Some sites actively remove x-powered-by, custom cookies, and other identifying headers. Cookie encryption format is harder to strip, but not impossible.
  • Rate limiting -- The ~10 path probes are lightweight, but some WAFs may flag even that. If a site returns 403 on everything, path probing yields nothing.
  • Ground truth is unknowable -- unstack reports what it can detect, not what actually exists. A site might use Redis, PostgreSQL, and Kafka internally, but none of that is visible from public signals.

Smoke Test Results

Tested against 4 sites with different stacks (WordPress, Next.js/Vercel, React SPA, Statamic/Laravel). Each site was audited with and without the skill to measure what the skill actually adds.

What the skill consistently improves:

  • Evidence specificity -- With the skill, every finding cites the exact header, cookie, or URL pattern. Without it, Claude often identifies the right technology but infers from general knowledge rather than observed signals.
  • Report consistency -- The skill produces a predictable, styled HTML report every time. Without it, formatting and depth vary randomly.
  • Detection coverage -- The structured five-phase approach catches signals that ad hoc analysis skips, particularly cookie encryption formats and CSS class naming patterns.

What the skill costs: ~2x tokens and time compared to asking Claude the same question without the skill. The overhead comes from the multi-phase methodology and report template population.

This is a small smoke test, not a comprehensive benchmark. Contributions of additional test sites are welcome.


Requirements

  • Claude Code, Claude Desktop (Cowork mode), or any Claude environment that supports skills
  • Internet access (for fetching headers and page content)
  • curl available in shell (standard on macOS/Linux)

No API keys. No external dependencies. No build step.


Credits

Built by @simplyarun. Report design inspired by Bauhaus grid principles.

License

MIT

About

Discover any website's tech stack using public signals. For Claude Code and Claude Cowork.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages