- nodes
- 1147
- scripts
- 168
- endpoints
- 10
- tech
- 4
vercel.com-reconstruction.md281 lines
# Reconstruction: vercel.com
> scanned `https://vercel.com/` · scope: **everything** · depth: **standard** · Mon, 09 Nov 2026 00:40:57 GMT
## Overview
| field | value |
| --- | --- |
| title | Agentic Infrastructure - Vercel |
| description | The autonomous stack for every app and agent. |
| status | 200 |
| response time | 96 ms |
| html size | 578.0 KB |
| lang | en |
| viewport | width=device-width, initial-scale=1, maximum-scale=1 |
| theme-color | #FAFAFA |
## Tech stack
- **framework**: Next.js
- **library**: React
- **styling**: Tailwind CSS
- **hosting**: Vercel
- **server header**: `Vercel`
- **x-powered-by**: `Next.js, Payload`
## DOM tree
- **1147** element nodes, max depth **20**
- top tags: `div` ×178, `a` ×166, `li` ×162, `span` ×157, `path` ×51, `svg` ×44, `link` ×34, `g` ×28, `ul` ×28, `meta` ×23, `img` ×23, `h2` ×17
```
div
a.fixed.-m-px.overflow-hidden
div.flex.min-w-0
div.@container.flex-1.min-w-0
header#marketing-header.peer.sticky.top-0
div.mx-auto.flex.h-full
div
div#logo-branding-menu.m-0.w-[325px].max-w-[calc(100vw-32px)]
span.sr-only
nav.flex.h-full.items-center
div.ml-auto.flex.shrink-0
div.pointer-events-none.fixed.inset-x-0
div#geist-skip-nav
span
main.overflow-x-clip
div
div.max-w-(--ds-page-width-with-margin).px-(--geist-page-margin).mx-auto
div.lg:min-h-(--banner-min-height)
div.max-w-(--ds-page-width-with-margin).px-(--geist-page-margin).mx-auto
section.relative.flex.min-h-[min(calc(100svh-var(--header-height)),1100px)]
section.mt-40.@md:mt-52
div
div.px-px.-mx-px
div
footer.max-w-[var(--ds-page-width-with-margin)].mx-auto.px-[var(--geist-page-margin)]
nav
template#B:0
aside.shrink-0.z-[100].sticky
div.w-[400px].h-full
div#S:0
div.flex.items-center.justify-between
a.cursor-pointer.focus-visible:outline-2.outline-[var(--ds-focus-color)]
div.flex-[0_1_auto].min-w-0.w-auto
span.status-dot.shrink-0.inline-block
p.status-text.text-copy-14.geist-ellipsis
div.flex.items-center.gap-1
fieldset.isolate.flex.shadow-[var(--ds-shadow-border)]
legend.sr-only
span.h-full
span.h-full
span.h-full
span.inline-flex.h-fit.items-center
button.group/agent-view-trigger.relative.flex
```
## Accessibility tree
- landmarks: `header` ×5, `nav` ×3, `main` ×1, `aside` ×1, `footer` ×1, `section` ×10
- aria roles: `menu`, `menuitem`, `list`, `link`, `dialog`, `presentation`, `img`
- images: 23 (0 missing alt)
- buttons: 11 (0 without an accessible name)
- form controls: 3 (0 unlabeled)
- links: 166
### heading outline
- h1: Agentic Infrastructure
- h2: Build agents on infrastructure that thinks like them
- h2: Ship apps that scale from zero to millions instantly
- h2: Host platforms that serve every customer
- h2: Recently shipped
- h2: Built by you, or your agents
- h2: Agent Stack
- h2: Core Platform
- h2: Security
- h2: Tools
- h2: Frameworks
- h2: SDKs
- h2: Build
- h2: Learn
- h2: Explore
- h2: Company
- h2: Legal & Trust
- h2: Social
## Design system
### palette (by frequency)
`#000` ×112 · `#fff` ×81 · `#ccc` ×11 · `#eaeaea` ×9 · `#333` ×8 · `#666` ×8 · `#95bf47` ×6 · `#fafafa` ×6 · `#1f1f1f` ×6 · `#de2670` ×5 · `#4b4c57` ×5 · `#0070f3` ×5
### type
- font-family stacks: `Georgia`, `cursive`, `Geist Mono`, `GeistSans`, `GeistSans Fallback`, `GeistPixelSquare`, `GeistPixelGrid`, `GeistPixelCircle`, `GeistPixelTriangle`, `GeistPixelLine`
- breakpoints: 961px, 960px, 600px, 401px, 601px, 1200px, 1400px, 1600px, 1024px, 992px, 880px, 540px
### css custom properties
```css
--value: 0;
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-translate-z: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-scale-z: 1;
--tw-rotate-x: initial;
--tw-rotate-y: initial;
--tw-rotate-z: initial;
--tw-skew-x: initial;
--tw-skew-y: initial;
--tw-pan-x: initial;
--tw-pan-y: initial;
--tw-pinch-zoom: initial;
--tw-scroll-snap-strictness: proximity;
--tw-space-y-reverse: 0;
--tw-space-x-reverse: 0;
--tw-divide-x-reverse: 0;
--tw-border-style: solid;
--tw-divide-y-reverse: 0;
--tw-gradient-position: initial;
--tw-gradient-from: #0000;
--tw-gradient-via: #0000;
--tw-gradient-to: #0000;
--tw-gradient-stops: initial;
--tw-gradient-via-stops: initial;
--tw-gradient-from-position: 0%;
```
- stylesheets: 3, inline `<style>` blocks: 1
## Screenshots + visual refs

- og image: https://lishhsx6kmthaacj.public.blob.vercel-storage.com/og-home-not-x.png
- favicon: https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/favicon.ico
## Scripts + deps
- external scripts: **43**, inline scripts: **125** (343.7 KB)
- module scripts: 0, async: 42, defer: 0
- libraries referenced in bundles: `react-dom`, `swr`, `d3`
| script | size | sourcemap |
| --- | --- | --- |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/3ax878yiio--h.js` | 42.9 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0a756y5g9dct9.js` | 33.9 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/1xfgo2cm5jixl.js` | 203.3 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/05e7qw-29b39f.js` | 38.3 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/168r-mgbee569.js` | 131.4 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/turbopack-2d6yzswnspsc7.js` | 13.5 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/2r9bnqhyyag7a.js` | 14.0 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/13f-5-q198_yl.js` | 11.7 KB | yes |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0relcc5yf6cci.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/1ucx8cw75c95c.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/30yhpz_qaohgu.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0mv05eihh7v7e.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/1-u5tnuqrq_q3.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/36o_cd5bx1xcy.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/44q-d0940misl.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/1e5mcz24xdh9p.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/350_1t37f95yc.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0qam3lr7-yy4y.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/3kwv9r7bluv66.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/1sperssjyrch1.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/3eefvk2-xrh7y.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/2y3m8skjgnzqj.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/2xolsd5t2xork.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0fx_y6v--6e6x.js` | not fetched | — |
| `/vc-ap-vercel-marketing/_next/static/immutable/chunks/0h-3azbyow04j.js` | not fetched | — |
- fetched 8 bundles, 488.8 KB total
## API routes
```
/api/forms/submit
/api/security-support
/api/solution-partners/contact-solution-partner
/api/report-abuse
/api/appeals
/api/ai-chat
/api/ai-chat/title
/api/ai-chat/share
/api/www/avatar/${c.avatar}
/api/www/avatar/
```
## Network
- third-party hosts (2): `assets.vercel.com`, `lishhsx6kmthaacj.public.blob.vercel-storage.com`
- internal routes: `/`, `/home`, `/ai-sdk`, `/ai-gateway`, `/sandbox`, `/passport`, `/connect`, `/eve`, `/security`, `/cdn`, `/fluid`, `/products/observability`, `/workflows`, `/products/previews`, `/frameworks/nextjs`, `/agent`, `/plugin`, `/oss`, `/domains`, `/docs`, `/about`, `/blog`, `/changelog`, `/kb`, `/ai`, `/for/web-apps`, `/solutions/marketing-sites`, `/for/platforms`, `/for/retail`, `/customers`, `/marketplace`, `/partners/solution-partners`, `/partners/aws`, `/enterprise`, `/pricing`, `/contact/sales`, `/login`, `/signup`, `/dashboard`, `/backends`
### response headers
| header | value |
| --- | --- |
| accept-ch | Sec-CH-Prefers-Color-Scheme |
| access-control-allow-origin | * |
| age | 568 |
| cache-control | public, max-age=0, must-revalidate |
| content-disposition | inline |
| content-encoding | br |
| content-security-policy | default-src 'self' vercel.com *.vercel.com *.vercel.sh vercel.live localhost:* chrome-extension://* assets.vercel.com wss://*.vercel.com *.codesandbox.io https: |
| content-type | text/html; charset=utf-8 |
| critical-ch | Sec-CH-Prefers-Color-Scheme |
| date | Mon, 09 Nov 2026 00:40:55 GMT |
| etag | W/"e2d6c89d695c2cb5ffcc5b96531a5448" |
| feature-policy | fullscreen 'self' https://www.youtube.com https://www.youtube-nocookie.com; camera 'none' |
| link | </.well-known/api-catalog>; rel="api-catalog", </.well-known/ai-catalog.json>; rel="ai-catalog"; type="application/ai-catalog+json", </.well-known/agent-skills/ |
| referrer-policy | origin-when-cross-origin |
| server | Vercel |
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| transfer-encoding | chunked |
| vary | rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch |
| x-content-type-options | nosniff |
| x-dns-prefetch-control | on |
| x-download-options | noopen |
| x-frame-options | DENY |
| x-matched-path | /precomputed/exp~-empty-/home/__no_flags__/redesign-2026 |
| x-nextjs-prerender | 1 |
| x-nextjs-stale-time | 300 |
| x-pathname | / |
| x-powered-by | Next.js, Payload |
| x-vercel-cache | HIT |
| x-vercel-id | sfo1::pg8nk-1794184855948-b69ba306cd24 |
| x-xss-protection | 0 |
### security headers
- [x] strict-transport-security
- [x] content-security-policy
- [x] x-frame-options
- [x] x-content-type-options
- [x] referrer-policy
- [ ] permissions-policy
## Storage
- cookies set on first response: `_v-consent` (Path, Expires, Max-Age, Domain, Secure, SameSite), `_v-visitor-id` (Path, Expires, Max-Age, Domain, Secure, SameSite), `_v-visitor-id-renewed` (Path, Expires, Max-Age, Domain, Secure, SameSite)
- localStorage keys: `ignore-browser`
- sessionStorage keys: none found
- indexedDB: no · service worker: no
## How to rebuild it
1. scaffold with **Next.js** + **Tailwind CSS**.
2. load fonts: Georgia, cursive, Geist Mono.
3. define color tokens from the palette above (start with #000, #fff, #ccc).
4. lay out sections following the heading outline (18 top-level sections).
5. stub the 10 api paths listed above as route handlers.
---
generated by create Anything in 1.2s