Created
February 4, 2026 05:44
-
-
Save drewstone/c26d16bc8a5dfefc7da019a1c7c6a803 to your computer and use it in GitHub Desktop.
Agent Sandbox Landscape - v17 (Fixed all axis layouts)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> | |
| <title>Sandbox Isolation & State Matrix</title> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | |
| background: linear-gradient(145deg, #0a0a12 0%, #0f0f1a 50%, #0a0a12 100%); | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| padding: clamp(16px, 4vw, 40px); | |
| color: #fff; | |
| overflow-x: hidden; | |
| } | |
| .container { | |
| max-width: 720px; | |
| margin: 0 auto; | |
| } | |
| h1 { | |
| text-align: center; | |
| font-size: clamp(1.2rem, 5vw, 2rem); | |
| font-weight: 800; | |
| margin-bottom: 8px; | |
| background: linear-gradient(135deg, #06b6d4 0%, #8b5cf6 50%, #ec4899 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| letter-spacing: -0.03em; | |
| } | |
| .subtitle { | |
| text-align: center; | |
| font-size: clamp(0.75rem, 2.5vw, 0.95rem); | |
| color: #64748b; | |
| margin-bottom: clamp(24px, 6vw, 40px); | |
| } | |
| /* Matrix container */ | |
| .matrix-wrapper { | |
| background: rgba(255, 255, 255, 0.015); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: clamp(16px, 4vw, 24px); | |
| padding: clamp(16px, 4vw, 28px); | |
| overflow-x: auto; | |
| } | |
| .matrix { | |
| display: grid; | |
| grid-template-columns: auto repeat(3, 1fr); | |
| gap: 3px; | |
| min-width: 340px; | |
| } | |
| /* Column headers */ | |
| .col-header { | |
| padding: clamp(12px, 3vw, 18px); | |
| text-align: center; | |
| font-size: clamp(0.6rem, 2vw, 0.8rem); | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| border-radius: 10px 10px 0 0; | |
| } | |
| .col-header.isolate { | |
| background: linear-gradient(180deg, rgba(245, 158, 11, 0.25), rgba(245, 158, 11, 0.08)); | |
| color: #fbbf24; | |
| border-bottom: 2px solid rgba(245, 158, 11, 0.5); | |
| } | |
| .col-header.container { | |
| background: linear-gradient(180deg, rgba(59, 130, 246, 0.25), rgba(59, 130, 246, 0.08)); | |
| color: #60a5fa; | |
| border-bottom: 2px solid rgba(59, 130, 246, 0.5); | |
| } | |
| .col-header.microvm { | |
| background: linear-gradient(180deg, rgba(16, 185, 129, 0.25), rgba(16, 185, 129, 0.08)); | |
| color: #34d399; | |
| border-bottom: 2px solid rgba(16, 185, 129, 0.5); | |
| } | |
| .corner { background: transparent; } | |
| /* Row headers */ | |
| .row-header { | |
| padding: clamp(10px, 2.5vw, 16px) clamp(8px, 2vw, 14px); | |
| font-size: clamp(0.58rem, 1.9vw, 0.75rem); | |
| font-weight: 600; | |
| color: #94a3b8; | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| gap: 6px; | |
| text-align: right; | |
| background: rgba(255, 255, 255, 0.02); | |
| border-radius: 10px 0 0 10px; | |
| } | |
| .row-header .icon { | |
| font-size: clamp(0.8rem, 2.5vw, 1.1rem); | |
| } | |
| /* Matrix cells */ | |
| .cell { | |
| background: rgba(255, 255, 255, 0.015); | |
| padding: clamp(10px, 2.5vw, 16px); | |
| min-height: clamp(60px, 15vw, 90px); | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-content: flex-start; | |
| gap: clamp(6px, 1.5vw, 10px); | |
| } | |
| .cell.isolate-col { background: rgba(245, 158, 11, 0.04); } | |
| .cell.container-col { background: rgba(59, 130, 246, 0.04); } | |
| .cell.microvm-col { background: rgba(16, 185, 129, 0.04); } | |
| /* Provider chips with logos */ | |
| .provider { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: clamp(4px, 1vw, 6px); | |
| padding: clamp(5px, 1.2vw, 7px) clamp(10px, 2.5vw, 14px); | |
| background: rgba(15, 23, 42, 0.9); | |
| backdrop-filter: blur(12px); | |
| border-radius: 18px; | |
| font-size: clamp(0.52rem, 1.7vw, 0.7rem); | |
| font-weight: 600; | |
| border: 1px solid rgba(255, 255, 255, 0.12); | |
| white-space: nowrap; | |
| transition: all 0.2s ease; | |
| } | |
| .provider:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); | |
| } | |
| .provider img { | |
| width: clamp(12px, 3vw, 16px); | |
| height: clamp(12px, 3vw, 16px); | |
| border-radius: 3px; | |
| object-fit: contain; | |
| } | |
| .provider .price { | |
| margin-left: 4px; | |
| font-weight: 400; | |
| color: #64748b; | |
| font-size: clamp(0.48rem, 1.5vw, 0.62rem); | |
| } | |
| .provider.isolate { border-color: rgba(245, 158, 11, 0.35); } | |
| .provider.container { border-color: rgba(59, 130, 246, 0.35); } | |
| .provider.microvm { border-color: rgba(16, 185, 129, 0.35); } | |
| /* Empty cell indicator */ | |
| .cell-empty { | |
| color: #334155; | |
| font-size: clamp(0.55rem, 1.6vw, 0.68rem); | |
| font-style: italic; | |
| } | |
| /* Legend */ | |
| .legend { | |
| display: flex; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| gap: clamp(20px, 5vw, 32px); | |
| margin-top: clamp(24px, 6vw, 36px); | |
| padding: clamp(16px, 4vw, 24px); | |
| background: rgba(255, 255, 255, 0.02); | |
| border-radius: clamp(12px, 3vw, 16px); | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| .legend-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: clamp(0.58rem, 1.9vw, 0.72rem); | |
| color: #94a3b8; | |
| } | |
| .legend-swatch { | |
| width: clamp(28px, 7vw, 40px); | |
| height: clamp(12px, 3vw, 16px); | |
| border-radius: 6px; | |
| } | |
| .legend-swatch.isolate { | |
| background: linear-gradient(90deg, rgba(245, 158, 11, 0.5), rgba(245, 158, 11, 0.15)); | |
| border: 1px solid rgba(245, 158, 11, 0.6); | |
| } | |
| .legend-swatch.container { | |
| background: linear-gradient(90deg, rgba(59, 130, 246, 0.5), rgba(59, 130, 246, 0.15)); | |
| border: 1px solid rgba(59, 130, 246, 0.6); | |
| } | |
| .legend-swatch.microvm { | |
| background: linear-gradient(90deg, rgba(16, 185, 129, 0.5), rgba(16, 185, 129, 0.15)); | |
| border: 1px solid rgba(16, 185, 129, 0.6); | |
| } | |
| /* Insights */ | |
| .insights { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: clamp(10px, 2.5vw, 14px); | |
| margin-top: clamp(20px, 5vw, 28px); | |
| } | |
| .insight { | |
| background: rgba(255, 255, 255, 0.02); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: clamp(10px, 2.5vw, 14px); | |
| padding: clamp(14px, 3.5vw, 20px); | |
| text-align: center; | |
| } | |
| .insight-icon { | |
| font-size: clamp(1.4rem, 5vw, 1.8rem); | |
| margin-bottom: 8px; | |
| } | |
| .insight-label { | |
| font-size: clamp(0.55rem, 1.7vw, 0.68rem); | |
| color: #64748b; | |
| text-transform: uppercase; | |
| letter-spacing: 0.3px; | |
| line-height: 1.4; | |
| margin-bottom: 4px; | |
| } | |
| .insight-value { | |
| font-size: clamp(0.65rem, 2.1vw, 0.85rem); | |
| font-weight: 700; | |
| } | |
| .insight.isolate .insight-value { color: #fbbf24; } | |
| .insight.container .insight-value { color: #60a5fa; } | |
| .insight.microvm .insight-value { color: #34d399; } | |
| @media (max-width: 400px) { | |
| .insights { grid-template-columns: 1fr; } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>Sandbox Isolation & State</h1> | |
| <p class="subtitle">Isolation technology vs data persistence model</p> | |
| <div class="matrix-wrapper"> | |
| <div class="matrix"> | |
| <!-- Header row --> | |
| <div class="corner"></div> | |
| <div class="col-header isolate">V8 Isolates</div> | |
| <div class="col-header container">Containers</div> | |
| <div class="col-header microvm">MicroVMs</div> | |
| <!-- Checkpoint row --> | |
| <div class="row-header"><span class="icon">๐พ</span>Checkpoint</div> | |
| <div class="cell isolate-col"> | |
| <span class="cell-empty">โ</span> | |
| </div> | |
| <div class="cell container-col"> | |
| <div class="provider container"> | |
| <img src="https://www.google.com/s2/favicons?domain=daytona.io&sz=64" alt=""> | |
| Daytona<span class="price">$0.05/hr</span> | |
| </div> | |
| </div> | |
| <div class="cell microvm-col"> | |
| <div class="provider microvm"> | |
| <img src="https://www.google.com/s2/favicons?domain=runloop.ai&sz=64" alt=""> | |
| Runloop<span class="price">$0.11/hr</span> | |
| </div> | |
| </div> | |
| <!-- Persistent row --> | |
| <div class="row-header"><span class="icon">๐ฟ</span>Persistent</div> | |
| <div class="cell isolate-col"> | |
| <span class="cell-empty">โ</span> | |
| </div> | |
| <div class="cell container-col"> | |
| <div class="provider container"> | |
| <img src="https://www.google.com/s2/favicons?domain=railway.app&sz=64" alt=""> | |
| Railway<span class="price">$0.01/GB</span> | |
| </div> | |
| <div class="provider container"> | |
| <img src="https://www.google.com/s2/favicons?domain=replit.com&sz=64" alt=""> | |
| Replit<span class="price">$25/mo+</span> | |
| </div> | |
| </div> | |
| <div class="cell microvm-col"> | |
| <div class="provider microvm"> | |
| <img src="https://www.google.com/s2/favicons?domain=fly.io&sz=64" alt=""> | |
| Fly.io<span class="price">$0.07/hr</span> | |
| </div> | |
| </div> | |
| <!-- Session row --> | |
| <div class="row-header"><span class="icon">โฑ๏ธ</span>Session</div> | |
| <div class="cell isolate-col"> | |
| <div class="provider isolate"> | |
| <img src="https://www.google.com/s2/favicons?domain=sprites.cloud&sz=64" alt=""> | |
| Sprites<span class="price">$0.07/hr</span> | |
| </div> | |
| </div> | |
| <div class="cell container-col"> | |
| <div class="provider container"> | |
| <img src="https://www.google.com/s2/favicons?domain=modal.com&sz=64" alt=""> | |
| Modal<span class="price">$0.14/hr</span> | |
| </div> | |
| <div class="provider container"> | |
| <img src="https://www.google.com/s2/favicons?domain=beam.cloud&sz=64" alt=""> | |
| Beam<span class="price">$0.10/hr</span> | |
| </div> | |
| </div> | |
| <div class="cell microvm-col"> | |
| <div class="provider microvm"> | |
| <img src="https://www.google.com/s2/favicons?domain=e2b.dev&sz=64" alt=""> | |
| E2B<span class="price">$0.10/hr</span> | |
| </div> | |
| <div class="provider microvm"> | |
| <img src="https://www.google.com/s2/favicons?domain=deno.com&sz=64" alt=""> | |
| Deno<span class="price">$0.05/hr</span> | |
| </div> | |
| </div> | |
| <!-- Stateless row --> | |
| <div class="row-header"><span class="icon">โก</span>Stateless</div> | |
| <div class="cell isolate-col"> | |
| <div class="provider isolate"> | |
| <img src="https://www.google.com/s2/favicons?domain=cloudflare.com&sz=64" alt=""> | |
| Cloudflare<span class="price">$0.50/M</span> | |
| </div> | |
| <div class="provider isolate"> | |
| <img src="https://www.google.com/s2/favicons?domain=vercel.com&sz=64" alt=""> | |
| Vercel<span class="price">$0.60/M</span> | |
| </div> | |
| </div> | |
| <div class="cell container-col"> | |
| <span class="cell-empty">โ</span> | |
| </div> | |
| <div class="cell microvm-col"> | |
| <span class="cell-empty">โ</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="legend"> | |
| <div class="legend-item"><div class="legend-swatch isolate"></div>V8 Isolates</div> | |
| <div class="legend-item"><div class="legend-swatch container"></div>Containers</div> | |
| <div class="legend-item"><div class="legend-swatch microvm"></div>MicroVMs</div> | |
| </div> | |
| <div class="insights"> | |
| <div class="insight isolate"> | |
| <div class="insight-icon">โก</div> | |
| <div class="insight-label">V8 Isolates</div> | |
| <div class="insight-value">~0ms cold start</div> | |
| </div> | |
| <div class="insight container"> | |
| <div class="insight-icon">๐ฆ</div> | |
| <div class="insight-label">Containers</div> | |
| <div class="insight-value">Shared kernel</div> | |
| </div> | |
| <div class="insight microvm"> | |
| <div class="insight-icon">๐</div> | |
| <div class="insight-label">MicroVMs</div> | |
| <div class="insight-value">Full VM isolation</div> | |
| </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> | |
| <title>Cold Start vs Workload Duration</title> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | |
| background: linear-gradient(145deg, #0a0a12 0%, #0f0f1a 50%, #0a0a12 100%); | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| padding: clamp(16px, 4vw, 40px); | |
| color: #fff; | |
| overflow-x: hidden; | |
| } | |
| .container { | |
| max-width: 700px; | |
| margin: 0 auto; | |
| } | |
| h1 { | |
| text-align: center; | |
| font-size: clamp(1.2rem, 5vw, 2rem); | |
| font-weight: 700; | |
| margin-bottom: 8px; | |
| background: linear-gradient(135deg, #f97316 0%, #ec4899 50%, #8b5cf6 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .subtitle { | |
| text-align: center; | |
| font-size: clamp(0.75rem, 2.5vw, 0.95rem); | |
| color: #64748b; | |
| margin-bottom: clamp(24px, 6vw, 40px); | |
| } | |
| .chart-wrapper { | |
| background: rgba(255, 255, 255, 0.015); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: clamp(16px, 4vw, 24px); | |
| padding: clamp(16px, 4vw, 32px); | |
| } | |
| /* Main layout: y-title | y-ticks | chart */ | |
| .chart-layout { | |
| display: grid; | |
| grid-template-columns: auto auto 1fr; | |
| grid-template-rows: 1fr auto; | |
| gap: 0; | |
| } | |
| /* Y-axis title - far left, vertically centered */ | |
| .y-title { | |
| grid-row: 1; | |
| grid-column: 1; | |
| writing-mode: vertical-rl; | |
| transform: rotate(180deg); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: clamp(0.6rem, 1.8vw, 0.75rem); | |
| font-weight: 600; | |
| color: #94a3b8; | |
| text-transform: uppercase; | |
| letter-spacing: 1.5px; | |
| padding-right: clamp(6px, 1.5vw, 12px); | |
| } | |
| /* Y-axis ticks - second column */ | |
| .y-ticks { | |
| grid-row: 1; | |
| grid-column: 2; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: space-between; | |
| padding: 4% 0; | |
| padding-right: clamp(6px, 1.5vw, 10px); | |
| } | |
| .y-tick { | |
| font-size: clamp(0.55rem, 1.8vw, 0.7rem); | |
| color: #64748b; | |
| text-align: right; | |
| white-space: nowrap; | |
| } | |
| /* Chart area - third column */ | |
| .chart-area { | |
| grid-row: 1; | |
| grid-column: 3; | |
| position: relative; | |
| aspect-ratio: 1.15; | |
| border-left: 2px solid rgba(255, 255, 255, 0.12); | |
| border-bottom: 2px solid rgba(255, 255, 255, 0.12); | |
| border-radius: 0 0 0 8px; | |
| } | |
| /* Grid lines */ | |
| .chart-area::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: | |
| linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px), | |
| linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px); | |
| background-size: 25% 25%; | |
| } | |
| /* X-axis ticks - spans under chart */ | |
| .x-ticks { | |
| grid-row: 2; | |
| grid-column: 3; | |
| display: flex; | |
| justify-content: space-between; | |
| padding: clamp(6px, 1.5vw, 10px) 4% 0; | |
| } | |
| .x-tick { | |
| font-size: clamp(0.55rem, 1.8vw, 0.7rem); | |
| color: #64748b; | |
| text-align: center; | |
| } | |
| /* X-axis title - centered below */ | |
| .x-title { | |
| text-align: center; | |
| margin-top: clamp(12px, 3vw, 20px); | |
| font-size: clamp(0.6rem, 1.8vw, 0.75rem); | |
| font-weight: 600; | |
| color: #94a3b8; | |
| text-transform: uppercase; | |
| letter-spacing: 1.5px; | |
| } | |
| /* ZONES */ | |
| .zone { | |
| position: absolute; | |
| border-radius: clamp(12px, 3vw, 20px); | |
| padding: clamp(10px, 2.5vw, 16px); | |
| } | |
| .zone-label { | |
| font-size: clamp(0.55rem, 1.8vw, 0.72rem); | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .zone-edge { | |
| bottom: 1%; | |
| left: 1%; | |
| width: 34%; | |
| height: 40%; | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.2) 0%, rgba(59, 130, 246, 0.02) 100%); | |
| border: 1px solid rgba(59, 130, 246, 0.25); | |
| } | |
| .zone-edge .zone-label { color: #60a5fa; } | |
| .zone-code { | |
| bottom: 20%; | |
| left: 24%; | |
| width: 40%; | |
| height: 48%; | |
| background: linear-gradient(135deg, rgba(236, 72, 153, 0.2) 0%, rgba(236, 72, 153, 0.02) 100%); | |
| border: 1px solid rgba(236, 72, 153, 0.25); | |
| } | |
| .zone-code .zone-label { color: #f472b6; } | |
| .zone-agent { | |
| top: 1%; | |
| right: 1%; | |
| width: 52%; | |
| height: 58%; | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.02) 100%); | |
| border: 1px solid rgba(16, 185, 129, 0.25); | |
| } | |
| .zone-agent .zone-label { color: #34d399; } | |
| /* Provider cards */ | |
| .provider { | |
| position: absolute; | |
| display: flex; | |
| align-items: center; | |
| gap: clamp(4px, 1vw, 8px); | |
| background: rgba(15, 23, 42, 0.95); | |
| backdrop-filter: blur(12px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: clamp(8px, 2vw, 12px); | |
| padding: clamp(6px, 1.5vw, 10px) clamp(10px, 2.5vw, 16px); | |
| font-size: clamp(0.6rem, 2vw, 0.8rem); | |
| font-weight: 600; | |
| white-space: nowrap; | |
| transform: translate(-50%, -50%); | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4); | |
| z-index: 10; | |
| transition: all 0.2s ease; | |
| } | |
| .provider:hover { | |
| transform: translate(-50%, -50%) scale(1.05); | |
| box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5); | |
| z-index: 20; | |
| } | |
| .provider img { | |
| width: clamp(14px, 4vw, 20px); | |
| height: clamp(14px, 4vw, 20px); | |
| border-radius: 4px; | |
| } | |
| .provider .meta { | |
| font-size: clamp(0.5rem, 1.5vw, 0.65rem); | |
| font-weight: 400; | |
| color: #64748b; | |
| } | |
| .provider.edge { border-color: rgba(59, 130, 246, 0.4); } | |
| .provider.code { border-color: rgba(236, 72, 153, 0.4); } | |
| .provider.agent { border-color: rgba(16, 185, 129, 0.4); } | |
| /* Tangle - spans multiple zones, positioned far right */ | |
| .tangle-range { | |
| position: absolute; | |
| right: -2%; | |
| bottom: 15%; | |
| top: 5%; | |
| width: clamp(70px, 18vw, 100px); | |
| background: linear-gradient(180deg, | |
| rgba(124, 58, 237, 0.25) 0%, | |
| rgba(236, 72, 153, 0.25) 50%, | |
| rgba(124, 58, 237, 0.15) 100%); | |
| border: 2px solid #ec4899; | |
| border-radius: clamp(12px, 3vw, 18px); | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| gap: clamp(4px, 1vw, 8px); | |
| padding: clamp(8px, 2vw, 14px); | |
| box-shadow: 0 0 30px rgba(236, 72, 153, 0.3), inset 0 0 20px rgba(124, 58, 237, 0.1); | |
| z-index: 15; | |
| animation: tangle-glow 2.5s infinite ease-in-out; | |
| } | |
| @keyframes tangle-glow { | |
| 0%, 100% { box-shadow: 0 0 30px rgba(236, 72, 153, 0.3), inset 0 0 20px rgba(124, 58, 237, 0.1); } | |
| 50% { box-shadow: 0 0 45px rgba(236, 72, 153, 0.5), inset 0 0 30px rgba(124, 58, 237, 0.2); } | |
| } | |
| .tangle-range .tangle-logo { | |
| width: clamp(28px, 8vw, 40px); | |
| height: auto; | |
| } | |
| .tangle-range .tangle-name { | |
| font-size: clamp(0.7rem, 2.2vw, 0.9rem); | |
| font-weight: 700; | |
| background: linear-gradient(135deg, #a78bfa, #ec4899); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .tangle-range .tangle-desc { | |
| font-size: clamp(0.45rem, 1.4vw, 0.58rem); | |
| color: #c4b5fd; | |
| text-align: center; | |
| line-height: 1.3; | |
| } | |
| .tangle-range .range-arrow { | |
| position: absolute; | |
| left: -24px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| font-size: clamp(0.5rem, 1.5vw, 0.65rem); | |
| color: #a78bfa; | |
| writing-mode: vertical-rl; | |
| transform: translateY(-50%) rotate(180deg); | |
| } | |
| /* Positions - shifted left to make room for Tangle on right */ | |
| .p-cloudflare { left: 10%; bottom: 8%; } | |
| .p-vercel { left: 16%; bottom: 18%; } | |
| .p-sprites { left: 22%; bottom: 30%; } | |
| .p-deno { left: 48%; bottom: 42%; } | |
| .p-e2b { left: 42%; bottom: 36%; } | |
| .p-modal { left: 35%; bottom: 48%; } | |
| .p-beam { left: 46%; bottom: 28%; } | |
| .p-fly { left: 52%; bottom: 58%; } | |
| .p-railway { left: 58%; bottom: 72%; } | |
| .p-runloop { left: 64%; bottom: 52%; } | |
| .p-replit { left: 68%; bottom: 80%; } | |
| .p-daytona { left: 74%; bottom: 92%; } | |
| /* Legend */ | |
| .legend { | |
| display: flex; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| gap: clamp(16px, 4vw, 28px); | |
| margin-top: clamp(20px, 5vw, 32px); | |
| padding: clamp(14px, 3.5vw, 22px); | |
| background: rgba(255, 255, 255, 0.02); | |
| border-radius: clamp(12px, 3vw, 16px); | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| .legend-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: clamp(0.6rem, 2vw, 0.75rem); | |
| color: #94a3b8; | |
| } | |
| .legend-swatch { | |
| width: clamp(28px, 7vw, 40px); | |
| height: clamp(12px, 3vw, 16px); | |
| border-radius: 6px; | |
| } | |
| .legend-swatch.edge { | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.5), rgba(59, 130, 246, 0.15)); | |
| border: 1px solid rgba(59, 130, 246, 0.5); | |
| } | |
| .legend-swatch.code { | |
| background: linear-gradient(135deg, rgba(236, 72, 153, 0.5), rgba(236, 72, 153, 0.15)); | |
| border: 1px solid rgba(236, 72, 153, 0.5); | |
| } | |
| .legend-swatch.agent { | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.5), rgba(16, 185, 129, 0.15)); | |
| border: 1px solid rgba(16, 185, 129, 0.5); | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>Cold Start vs Workload Duration</h1> | |
| <p class="subtitle">Where each sandbox shines: ephemeral functions to persistent dev environments</p> | |
| <div class="chart-wrapper"> | |
| <div class="chart-layout"> | |
| <div class="y-title">Workload Duration โ</div> | |
| <div class="y-ticks"> | |
| <span class="y-tick">Days+</span> | |
| <span class="y-tick">Hours</span> | |
| <span class="y-tick">Minutes</span> | |
| <span class="y-tick">Seconds</span> | |
| </div> | |
| <div class="chart-area"> | |
| <div class="zone zone-edge"><span class="zone-label">API / Edge</span></div> | |
| <div class="zone zone-code"><span class="zone-label">Code Execution</span></div> | |
| <div class="zone zone-agent"><span class="zone-label">Agent Sessions</span></div> | |
| <!-- Tangle spans from code execution to long-running --> | |
| <div class="tangle-range"> | |
| <img class="tangle-logo" src="https://cdn.prod.website-files.com/6494562b44a28080aafcbad4/65aaf8b0818b1d504cbdf81b_Tnt%20Logo.png" alt="Tangle"> | |
| <span class="tangle-name">Tangle</span> | |
| <span class="tangle-desc">Minutes to Days+<br>Multi-driver</span> | |
| </div> | |
| <div class="provider edge p-cloudflare"> | |
| <img src="https://www.google.com/s2/favicons?domain=cloudflare.com&sz=64" alt=""> | |
| Cloudflare | |
| </div> | |
| <div class="provider edge p-vercel"> | |
| <img src="https://www.google.com/s2/favicons?domain=vercel.com&sz=64" alt=""> | |
| Vercel | |
| </div> | |
| <div class="provider edge p-sprites"> | |
| <img src="https://www.google.com/s2/favicons?domain=sprites.cloud&sz=64" alt=""> | |
| Sprites | |
| </div> | |
| <div class="provider code p-deno"> | |
| <img src="https://www.google.com/s2/favicons?domain=deno.com&sz=64" alt=""> | |
| Deno | |
| </div> | |
| <div class="provider code p-e2b"> | |
| <img src="https://www.google.com/s2/favicons?domain=e2b.dev&sz=64" alt=""> | |
| E2B | |
| </div> | |
| <div class="provider code p-modal"> | |
| <img src="https://www.google.com/s2/favicons?domain=modal.com&sz=64" alt=""> | |
| Modal | |
| </div> | |
| <div class="provider code p-beam"> | |
| <img src="https://www.google.com/s2/favicons?domain=beam.cloud&sz=64" alt=""> | |
| Beam | |
| </div> | |
| <div class="provider agent p-fly"> | |
| <img src="https://www.google.com/s2/favicons?domain=fly.io&sz=64" alt=""> | |
| Fly.io | |
| </div> | |
| <div class="provider agent p-railway"> | |
| <img src="https://www.google.com/s2/favicons?domain=railway.app&sz=64" alt=""> | |
| Railway | |
| </div> | |
| <div class="provider agent p-runloop"> | |
| <img src="https://www.google.com/s2/favicons?domain=runloop.ai&sz=64" alt=""> | |
| Runloop | |
| </div> | |
| <div class="provider agent p-replit"> | |
| <img src="https://www.google.com/s2/favicons?domain=replit.com&sz=64" alt=""> | |
| Replit | |
| </div> | |
| <div class="provider agent p-daytona"> | |
| <img src="https://www.google.com/s2/favicons?domain=daytona.io&sz=64" alt=""> | |
| Daytona | |
| </div> | |
| </div> | |
| <div class="x-ticks"> | |
| <span class="x-tick"><50ms</span> | |
| <span class="x-tick">~500ms</span> | |
| <span class="x-tick">~2s</span> | |
| <span class="x-tick">~10s+</span> | |
| </div> | |
| </div> | |
| <div class="x-title">Cold Start Time โ</div> | |
| </div> | |
| <div class="legend"> | |
| <div class="legend-item"><div class="legend-swatch edge"></div>API / Edge</div> | |
| <div class="legend-item"><div class="legend-swatch code"></div>Code Execution</div> | |
| <div class="legend-item"><div class="legend-swatch agent"></div>Agent Sessions</div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> | |
| <title>Agent Compute: Market Landscape</title> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; | |
| background: linear-gradient(145deg, #0a0a12 0%, #0f0f1a 50%, #0a0a12 100%); | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| padding: clamp(16px, 4vw, 40px); | |
| color: #fff; | |
| overflow-x: hidden; | |
| } | |
| .container { | |
| max-width: 720px; | |
| margin: 0 auto; | |
| } | |
| h1 { | |
| text-align: center; | |
| font-size: clamp(1.2rem, 5vw, 2rem); | |
| font-weight: 800; | |
| margin-bottom: 8px; | |
| background: linear-gradient(135deg, #7c3aed 0%, #ec4899 50%, #f97316 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| letter-spacing: -0.03em; | |
| } | |
| .subtitle { | |
| text-align: center; | |
| font-size: clamp(0.75rem, 2.5vw, 0.95rem); | |
| color: #64748b; | |
| margin-bottom: clamp(24px, 6vw, 40px); | |
| } | |
| .chart-wrapper { | |
| background: rgba(255, 255, 255, 0.015); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: clamp(16px, 4vw, 24px); | |
| padding: clamp(16px, 4vw, 32px); | |
| } | |
| /* Grid layout: y-title | y-labels | quadrants */ | |
| .chart-layout { | |
| display: grid; | |
| grid-template-columns: auto auto 1fr; | |
| grid-template-rows: 1fr auto; | |
| gap: 0; | |
| } | |
| /* Y-axis title - far left column */ | |
| .y-title { | |
| grid-row: 1; | |
| grid-column: 1; | |
| writing-mode: vertical-rl; | |
| transform: rotate(180deg); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: clamp(0.6rem, 1.8vw, 0.75rem); | |
| font-weight: 600; | |
| color: #94a3b8; | |
| text-transform: uppercase; | |
| letter-spacing: 1.5px; | |
| padding-right: clamp(6px, 1.5vw, 12px); | |
| } | |
| /* Y-axis labels - second column */ | |
| .y-labels { | |
| grid-row: 1; | |
| grid-column: 2; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: space-between; | |
| padding: 8% 0; | |
| padding-right: clamp(6px, 1.5vw, 10px); | |
| } | |
| .y-label { | |
| font-size: clamp(0.5rem, 1.6vw, 0.65rem); | |
| color: #64748b; | |
| text-align: right; | |
| white-space: nowrap; | |
| } | |
| /* Quadrant grid - third column */ | |
| .quadrants { | |
| grid-row: 1; | |
| grid-column: 3; | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| grid-template-rows: 1fr 1fr; | |
| gap: 3px; | |
| aspect-ratio: 1; | |
| border-left: 2px solid rgba(255, 255, 255, 0.12); | |
| border-bottom: 2px solid rgba(255, 255, 255, 0.12); | |
| border-radius: 0 0 0 8px; | |
| } | |
| /* X-axis labels */ | |
| .x-labels { | |
| grid-row: 2; | |
| grid-column: 3; | |
| display: flex; | |
| justify-content: space-between; | |
| padding: clamp(6px, 1.5vw, 10px) 8% 0; | |
| } | |
| .x-label { | |
| font-size: clamp(0.5rem, 1.6vw, 0.65rem); | |
| color: #64748b; | |
| } | |
| /* X-axis title */ | |
| .x-title { | |
| text-align: center; | |
| margin-top: clamp(12px, 3vw, 20px); | |
| font-size: clamp(0.6rem, 1.8vw, 0.75rem); | |
| font-weight: 600; | |
| color: #94a3b8; | |
| text-transform: uppercase; | |
| letter-spacing: 1.5px; | |
| } | |
| /* Quadrant styles */ | |
| .quad { | |
| padding: clamp(12px, 3vw, 20px); | |
| display: flex; | |
| flex-direction: column; | |
| gap: clamp(8px, 2vw, 12px); | |
| border-radius: clamp(10px, 2.5vw, 16px); | |
| } | |
| .quad-label { | |
| font-size: clamp(0.5rem, 1.6vw, 0.65rem); | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| opacity: 0.7; | |
| } | |
| .q1 { | |
| background: linear-gradient(135deg, rgba(245, 158, 11, 0.15) 0%, rgba(245, 158, 11, 0.03) 100%); | |
| border: 1px solid rgba(245, 158, 11, 0.2); | |
| } | |
| .q1 .quad-label { color: #fbbf24; } | |
| .q2 { | |
| background: linear-gradient(135deg, rgba(16, 185, 129, 0.2) 0%, rgba(16, 185, 129, 0.03) 100%); | |
| border: 1px solid rgba(16, 185, 129, 0.3); | |
| } | |
| .q2 .quad-label { color: #34d399; } | |
| .q3 { | |
| background: linear-gradient(135deg, rgba(100, 116, 139, 0.12) 0%, rgba(100, 116, 139, 0.02) 100%); | |
| border: 1px solid rgba(100, 116, 139, 0.2); | |
| } | |
| .q3 .quad-label { color: #94a3b8; } | |
| .q4 { | |
| background: linear-gradient(135deg, rgba(59, 130, 246, 0.15) 0%, rgba(59, 130, 246, 0.03) 100%); | |
| border: 1px solid rgba(59, 130, 246, 0.2); | |
| } | |
| .q4 .quad-label { color: #60a5fa; } | |
| /* Provider chips */ | |
| .providers { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: clamp(6px, 1.5vw, 10px); | |
| } | |
| .provider { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: clamp(4px, 1vw, 6px); | |
| padding: clamp(5px, 1.2vw, 8px) clamp(10px, 2.5vw, 14px); | |
| background: rgba(15, 23, 42, 0.9); | |
| backdrop-filter: blur(12px); | |
| border-radius: 20px; | |
| font-size: clamp(0.55rem, 1.8vw, 0.72rem); | |
| font-weight: 600; | |
| border: 1px solid rgba(255, 255, 255, 0.12); | |
| transition: all 0.2s ease; | |
| } | |
| .provider:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); | |
| } | |
| .provider img { | |
| width: clamp(12px, 3vw, 16px); | |
| height: clamp(12px, 3vw, 16px); | |
| border-radius: 3px; | |
| } | |
| .provider.tangle { | |
| background: linear-gradient(135deg, rgba(124, 58, 237, 0.5), rgba(236, 72, 153, 0.5)); | |
| border: 2px solid #ec4899; | |
| box-shadow: 0 0 24px rgba(236, 72, 153, 0.4); | |
| font-size: clamp(0.6rem, 2vw, 0.8rem); | |
| padding: clamp(6px, 1.5vw, 10px) clamp(12px, 3vw, 18px); | |
| animation: glow 2.5s infinite ease-in-out; | |
| } | |
| @keyframes glow { | |
| 0%, 100% { box-shadow: 0 0 24px rgba(236, 72, 153, 0.4); } | |
| 50% { box-shadow: 0 0 36px rgba(236, 72, 153, 0.6); } | |
| } | |
| .quad-note { | |
| font-size: clamp(0.5rem, 1.5vw, 0.62rem); | |
| color: inherit; | |
| opacity: 0.5; | |
| margin-top: auto; | |
| line-height: 1.4; | |
| font-style: italic; | |
| } | |
| /* Features */ | |
| .features { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: clamp(10px, 2.5vw, 16px); | |
| margin-top: clamp(24px, 6vw, 36px); | |
| } | |
| .feature { | |
| background: rgba(255, 255, 255, 0.02); | |
| border: 1px solid rgba(255, 255, 255, 0.06); | |
| border-radius: clamp(10px, 2.5vw, 14px); | |
| padding: clamp(14px, 3.5vw, 20px); | |
| } | |
| .feature h3 { | |
| font-size: clamp(0.65rem, 2vw, 0.8rem); | |
| font-weight: 600; | |
| margin-bottom: 8px; | |
| color: #e2e8f0; | |
| } | |
| .feature p { | |
| font-size: clamp(0.55rem, 1.7vw, 0.7rem); | |
| color: #94a3b8; | |
| line-height: 1.5; | |
| } | |
| .feature .hl { color: #ec4899; font-weight: 600; } | |
| @media (max-width: 400px) { | |
| .features { grid-template-columns: 1fr; } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="container"> | |
| <h1>Agent Compute Landscape</h1> | |
| <p class="subtitle">Developer experience vs agent-native features</p> | |
| <div class="chart-wrapper"> | |
| <div class="chart-layout"> | |
| <div class="y-title">Agent Specialization โ</div> | |
| <div class="y-labels"> | |
| <span class="y-label">Agent-Native</span> | |
| <span class="y-label">Generic</span> | |
| </div> | |
| <div class="quadrants"> | |
| <div class="quad q1"> | |
| <span class="quad-label">DIY Agent Infra</span> | |
| <div class="providers"> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=docker.com&sz=64" alt=""> | |
| Docker MCP | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=morph.so&sz=64" alt=""> | |
| Morph | |
| </div> | |
| </div> | |
| <div class="quad-note">Build your own agent runtime</div> | |
| </div> | |
| <div class="quad q2"> | |
| <span class="quad-label">Turnkey Agent Platforms</span> | |
| <div class="providers"> | |
| <div class="provider tangle"> | |
| <img src="https://cdn.prod.website-files.com/6494562b44a28080aafcbad4/65aaf8b0818b1d504cbdf81b_Tnt%20Logo.png" alt="" style="width: 18px; height: auto;"> | |
| Tangle | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=e2b.dev&sz=64" alt=""> | |
| E2B | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=runloop.ai&sz=64" alt=""> | |
| Runloop | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=deno.com&sz=64" alt=""> | |
| Deno | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=daytona.io&sz=64" alt=""> | |
| Daytona | |
| </div> | |
| </div> | |
| <div class="quad-note">Tangle: centralized cloud + decentralized operators</div> | |
| </div> | |
| <div class="quad q3"> | |
| <span class="quad-label">Raw Infrastructure</span> | |
| <div class="providers"> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=fly.io&sz=64" alt=""> | |
| Fly.io | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=akash.network&sz=64" alt=""> | |
| Akash | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=fluence.network&sz=64" alt=""> | |
| Fluence | |
| </div> | |
| </div> | |
| <div class="quad-note">Low-level, you do the work</div> | |
| </div> | |
| <div class="quad q4"> | |
| <span class="quad-label">Serverless / PaaS</span> | |
| <div class="providers"> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=modal.com&sz=64" alt=""> | |
| Modal | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=railway.app&sz=64" alt=""> | |
| Railway | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=replit.com&sz=64" alt=""> | |
| Replit | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=beam.cloud&sz=64" alt=""> | |
| Beam | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=vercel.com&sz=64" alt=""> | |
| Vercel | |
| </div> | |
| <div class="provider"> | |
| <img src="https://www.google.com/s2/favicons?domain=cloudflare.com&sz=64" alt=""> | |
| Cloudflare | |
| </div> | |
| </div> | |
| <div class="quad-note">Great DX, not agent-specific</div> | |
| </div> | |
| </div> | |
| <div class="x-labels"> | |
| <span class="x-label">DIY / Low-level</span> | |
| <span class="x-label">Turnkey / High-level</span> | |
| </div> | |
| </div> | |
| <div class="x-title">Developer Experience โ</div> | |
| </div> | |
| <div class="features"> | |
| <div class="feature"> | |
| <h3>๐ฎ Why Tangle is Different</h3> | |
| <p><span class="hl">Both centralized AND decentralized</span>. Start on managed cloud, graduate to on-chain operators with cryptographic SLA guarantees.</p> | |
| </div> | |
| <div class="feature"> | |
| <h3>๐ Agent Profiles</h3> | |
| <p><span class="hl">Pre-configured sandboxes</span>: prompts, permissions, MCP servers, credential policies. Operators compete on specialization.</p> | |
| </div> | |
| <div class="feature"> | |
| <h3>โก Multi-Driver Architecture</h3> | |
| <p><span class="hl">Docker, Firecracker, Host-Agent</span>. Choose isolation level per workload. CRIU checkpointing for live migration.</p> | |
| </div> | |
| <div class="feature"> | |
| <h3>๐ค Native Agent Backends</h3> | |
| <p><span class="hl">OpenCode, Claude Code, Codex, Amp</span>. Model switching and BYOK built into the platform.</p> | |
| </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment