Analyst-grade market intelligence for the autonomous enterprise IT stack — five markets, 504 profiled vendors, $330B combined 2030 TAM, statically prerendered for SEO and shipped as a WordPress plugin.
🔗 Live: aienterpriseit.com/market-intelligence
An interactive market-intelligence portal covering the five pillars of the autonomous enterprise IT stack — sized from $134.2B (2025) to $330B (2030), +146% growth. Each market ships TAM/CAGR sizing, sortable vendor tables, a cross-market positioning chart, and per-vendor deep-dive profiles (SWOT, sentiment, ICP, future focus). The hand-curated TypeScript catalog is the canonical source of truth, augmented by a weekly-scheduled Claude refresh pipeline and guarded against regressions on every run. Sizing draws on Gartner, IDC, Mordor Intelligence, Grand View Research, MarketsandMarkets, Omdia, and Precedence Research.
Built as a React 18 + TypeScript SPA, statically prerendered to ~515 HTML routes for SEO and instant first paint, and deployed as a self-contained WordPress plugin.
| Market | Scope | 2030 TAM | CAGR |
|---|---|---|---|
| AIOps & Observability | APM, ML event correlation, observability suites | $100B | 22% |
| IT Service, Ops & Asset Mgmt | ITSM, ITAM, Cloud FinOps, IT automation | $94B | 13% |
| RPA & Intelligent Automation | Attended/unattended bots, IDP, process mining | $74B | 25% |
| Agentic Operations | LLM-native copilots, self-healing infra, agent orchestration | $8B | 45% |
| Security Operations (SecOps) | SIEM, SOAR, XDR, threat intelligence | $54B | 21% |
Each market profiles 50 established vendors + 50 startups (SecOps carries 54 established) — 504 vendor profiles in total.
A log-scale revenue × YoY-growth bubble chart (bubble size = market cap) that positions every vendor in a market across four quadrants, with imputation + dashed markers for vendors that don't disclose a full set of metrics.
- Per-market pages (
/market/:slug) — overview, vendor + startup tables, use cases, trends, growth charts - Cross-market Market Map — sortable/filterable positioning chart across all five markets
- Global vendor search — ⌘K command-palette fuzzy search across all 504 profiles
- Vendor drill-down profiles — SWOT, user sentiment, ICP, future focus, recent signals (M&A / funding / launches), with a "refreshed X days ago" freshness badge
- Signals & pricing — funding/M&A/launch leaderboard and pricing/TCO coverage
- PDF / PPTX export — fully styled, dark-themed report and deck
- SEO-first — per-route
<title>, meta, canonical, OpenGraph, and JSON-LD baked into prerendered HTML
React 18 SPA ──build──► vite-react-ssg ──► ~515 prerendered HTML routes
│ │
│ BrowserRouter (basename /market-intelligence)│ each route: real content + per-route <head>
▼ ▼
WordPress plugin ◄── serves prerendered HTML per route, hydrates on the client
│
├─ WP-Cron weekly refresh ──► Claude API ──► snapshot DB ──► REST API (live data layer)
└─ static TS bundle = build-time source of truth + fallback
- Rendering: statically prerendered via
vite-react-ssg— crawlers and first paint get real HTML; the live REST layer augments after hydration. Recharts charts are wrapped in<ClientOnly>to avoid hydration mismatches. - Single source of truth:
src/data/*.ts—allCategoriesdrives every page, table, and chart; nothing is duplicated. - Deployment:
npm run build→rsync dist/→ purge CDN cache, wrapped inscripts/publish.sh.
A weekly-scheduled WP-Cron job calls the Claude API to refresh the live snapshot of market sizing and vendor profiles (best-effort; the static TS catalog remains the source of truth). Two systems keep that autonomy safe:
- Regression guard (coverage + rankings) — a deterministic, zero-token invariant check that runs both at build time (
scripts/check-data-invariants.js) and at runtime inside the refresh. It fails closed: a snapshot that drops vendors, collapses a tier, or demotes an anchor leader is rejected, and the last good snapshot keeps serving. - Signal + M&A monitor (content freshness) — a monthly scheduled agent that does snippet-only research for new funding / acquisitions / launches and writes a human-reviewed proposal (never auto-deploys). See
monitor/.
Together: the guard catches structural drift the monitor can't see; the monitor catches real-world events the guard can't see.
React 18 · TypeScript 5 · Vite 5 · vite-react-ssg (SSG) · Tailwind CSS · shadcn/ui · Recharts · Framer Motion · jsPDF + PptxGenJS (exports) · WordPress plugin (PHP) · Claude API (data refresh)
src/
data/ # allCategories — single source of truth (5 markets × 100 vendors)
pages/ # Index (home), MarketPage (/market/:slug), vendor detail, signals, pricing
components/
presentation/ # CategorySection, VendorComparisonMatrix (Market Map), charts
scripts/
check-data-invariants.js # build-time regression guard
publish.sh # build → rsync → purge
monitor/ # signal + M&A monitor brief, state, and proposals
wordpress-plugin/ # WP plugin: template, WP-Cron refresh, REST API
npm install
npm run dev # local dev server
npm run build # data guard → prerender (SSG) → dist/
npm run check:data # run the regression guard standalone
npx tsc --noEmit # type-checkSee
CLAUDE.mdfor the full architecture, routing, and deploy reference.
Proprietary — all rights reserved. This repository is source-visible for reference and portfolio purposes only; no license to use, copy, modify, or redistribute is granted. See LICENSE. For inquiries, contact the repository owner.

