PageSourceSearch

https://rauchg.com/2025/the-ai-cloud

html rauchg.com collected 2026-10-02 04:30:14 UTC 74,140 bytes, 258 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="geist_a8fa0c1a-module__MXp6vq__variable geist_mono_44a15786-module__TFZSCa__variable geist_a8fa0c1a-module__MXp6vq__className antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="https://cdn.simpleicons.org/openai/737373"/><link rel="preload" as="image" href="https://cdn.simpleicons.org/vercel"/><link rel="preload" as="image" href="https://cdn.simpleicons.org/anthropic/c2410c"/><link rel="preload" as="image" href="https://cdn.simpleicons.org/google/ca8a04"/><link rel="stylesheet" href="/_next/static/chunks/dd7b830295a7d76f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/1d064decab531487.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/42bbec399ef26bd0.js"/>
1<script src="/_next/static/chunks/fee8d241f6698635.js" async=""></script>
1<script src="/_next/static/chunks/6cf72fd878dce16b.js" async=""></script>
1<script src="/_next/static/chunks/df58c052710bc33f.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-bb869efcc2c89edb.js" async=""></script>
1<script src="/_next/static/chunks/e89db027249216a8.js" async=""></script>
1<script src="/_next/static/chunks/0a9f293e99116f13.js" async=""></script>
1<script src="/_next/static/chunks/d1bd3319f186a5e9.js" async=""></script>
1<script src="/_next/static/chunks/3512fd29dfc0cda1.js" async=""></script>
1<script src="/_next/static/chunks/2aff4a6db8a957a2.js" async=""></script>
1<script src="/_next/static/chunks/df33d3f4ad2d6c04.js" async=""></script>
1<script src="/_next/static/chunks/68e7b984035c4776.js" async=""></script>
1<meta name="next-size-adjust" content=""/><meta name="theme-color" content="transparent"/><title>The AI Cloud</title><meta name="description" content="The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI"/><meta property="og:title" content="The AI Cloud"/><meta property="og:description" content="The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI"/><meta property="og:image" content="https://rauchg.com/og/the-ai-cloud"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@rauchg"/><meta name="twitter:creator" content="@rauchg"/><meta name="twitter:title" content="The AI Cloud"/><meta name="twitter:description" content="The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI"/><meta name="twitter:image" content="https://rauchg.com/og/the-ai-cloud"/><link rel="icon" href="/icon.png?icon.7e34900e.png" sizes="512x512" type="image/png"/>
1<script>(function n(){console.log(`
2                     ▄              ▄
3                    ▌▒█           ▄▀▒▌
4                    ▌▒▒█        ▄▀▒▒▒▐
5                   ▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐
6                 ▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐
7               ▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌
8              ▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒▌
9              ▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐
10             ▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌
11             ▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌
12            ▌▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒▐
13            ▐▒▒▐▀▐▀▒░▄▄▒▄▒▒▒▒▒▒░▒░▒░▒▒▒▒▌
14            ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▐
15             ▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒░▒░▒░▒░▒▒▒▌
16             ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▄▒▒▐
17              ▀▄▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▄▒▒▒▒▌
18                ▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀
19                  ▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀
20                     ▒▒▒▒▒▒▒▒▒▒▀▀
21  `)})();</script>
21<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
21</head><body class="dark:text-gray-100 max-w-2xl m-auto"><div hidden=""><!--$--><!--/$--></div><main class="p-6 pt-3 md:pt-6 min-h-screen"><header class="flex mb-5 md:mb-10 items-center"><span class="text-md md:text-lg whitespace-nowrap font-bold"><a class="hover:bg-neutral-200 dark:hover:bg-neutral-700 p-2 rounded-2xl -ml-2 transition-[background-color]" href="/">Guillermo Rauch</a></span><nav class="text-xs grow justify-end items-center flex"><a class="group p-2" href="/about"><span class="group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700 rounded-xl py-0.5 px-1.5 inline-flex">About</span></a><a href="https://x.com/rauchg" target="_blank" class="group inline-flex items-center p-2 rounded-sm transition-[background-color] whitespace-nowrap -mr-2"><span class="group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700 rounded-xl py-0.5 px-1.5 inline-flex items-center gap-1"><svg viewBox="0 0 24 24" class="inline-flex fill-current" width="12" height="12"><g><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></g></svg><span>Follow me</span></span></a></nav></header><article class="text-gray-800 dark:text-gray-300 mb-10"><h1 class="text-2xl font-bold mb-1 dark:text-gray-100">The AI Cloud</h1><p class="font-mono flex text-xs text-neutral-500 dark:text-neutral-500"><span class="flex-grow"><span class="hidden md:inline"><span><a href="https://twitter.com/rauchg" class="hover:text-neutral-800 dark:hover:text-neutral-400" target="_blank">@rauchg</a></span><span class="mx-2">|</span></span><span>Oct 17, 2025<!-- --> (<!-- -->12m<!-- --> ago)</span></span><span class="pr-1.5"><span>51,961<!-- --> views</span></span></p><p class="my-5 [blockquote_&amp;]:my-2">Vercel was born out of my frustration in 2015 that while the cloud enabled
22this seemingly infinite array of possibilities (and compute), the <em>pixels</em>
23on the web weren&#x27;t getting significantly better. And neither was the experience
24of crafting them.</p>
25<p class="my-5 [blockquote_&amp;]:my-2">The cloud promised to remove the burden of maintaining physical data centers
26and hardware, but ultimately we inherited much of that burden in digital form.
27DevOps, K8s, VPCs, CI/CD, IAM, CDNs, IaC...</p>
28<p class="my-5 [blockquote_&amp;]:my-2">The time you should have spent on the pixels... was spent on the configs. The
29jobs you could have devoted to product and customers, were devoted to the setup
30of clusters and machines.</p>
31<p class="my-5 [blockquote_&amp;]:my-2">Over the past 10 years, we&#x27;ve been fortunate to play a role in reversing this story.
32We led with developer experience, starting with frameworks
33and tools that, upon deployment, <em>generated</em> the infrastructure. React
34pioneered the concept that the DOM is the <em>output</em> of your state and data.</p>
35<p class="my-5 [blockquote_&amp;]:my-2">We set out to make Vercel the <em>React of the Cloud</em>, where the hyperscaler
36primitives are outputs not to be directly manipulated, or jQueryed. And,
37in the process, we made a popular React framework too.</p>
38<p class="my-5 [blockquote_&amp;]:my-2">The results: Next.js&#x27;s seen 500M downloads over the past 12 months, which is
39more than in the entire 2016 to 2024 period. Vercel is crossing 1 billion
40application deployments. We now power two of the top 20 highest traffic
41web properties on the planet, like OpenAI and The Weather Company, while also
42serving millions of applications of all sizes, including 1-person
43companies making millions in ARR.</p>
44<p class="my-5 [blockquote_&amp;]:my-2">But to win the next decade, Vercel must heed the advice of its hyperscaler
45predecessor and partner: it&#x27;s always Day One.</p>
46<p class="my-5 [blockquote_&amp;]:my-2">AI is eating the Web, and with it, the Web Services we&#x27;re used to. There
47are three massive trends that are shaking up the web, the cloud, and
48software as a whole:</p>
49<ul class="my-5 list-none list-inside">
50<li class="
51    my-2
52    [ul_&amp;]:relative
53    [ul_&amp;]:pl-4
54    [ul_&amp;]:before:text-gray-400
55    [ul_&amp;]:before:content-[&#x27;–&#x27;]
56    [ul_&amp;]:before:mr-2
57    [ul_&amp;]:before:absolute
58    [ul_&amp;]:before:-ml-4
59  "><strong><a href="#pages-to-agents" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
59k:hover:border-white ">Pages to Agents</a></strong></li>
60<li class="
61    my-2
62    [ul_&amp;]:relative
63    [ul_&amp;]:pl-4
64    [ul_&amp;]:before:text-gray-400
65    [ul_&amp;]:before:content-[&#x27;–&#x27;]
66    [ul_&amp;]:before:mr-2
67    [ul_&amp;]:before:absolute
68    [ul_&amp;]:before:-ml-4
69  "><strong><a href="#problems-to-solutions" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Problems to Solutions</a></strong></li>
70<li class="
71    my-2
72    [ul_&amp;]:relative
73    [ul_&amp;]:pl-4
74    [ul_&amp;]:before:text-gray-400
75    [ul_&amp;]:before:content-[&#x27;–&#x27;]
76    [ul_&amp;]:before:mr-2
77    [ul_&amp;]:before:absolute
78    [ul_&amp;]:before:-ml-4
79  "><strong><a href="#closed-to-open" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Closed to Open</a></strong></li>
80</ul>
81<p class="my-5 [blockquote_&amp;]:my-2">I believe this is a transcendental time for developers and users.
82We can either give up the web, proxy all our data and intent through
83one closed mega-app, or reinvent it together in the open.</p>
84<h2 class="group font-bold text-xl my-8 relative"><span class="relative"><a class="
85                absolute
86                px-3
87                -left-[2rem]
88                invisible
89                [span:hover_&amp;]:visible
90                font-mono
91                font-normal
92                text-gray-400
93                hover:text-gray-600
94                dark:text-gray-500
95                dark:hover:text-gray-400
96              " href="#pages-to-agents">#</a><a id="pages-to-agents" class="
97              absolute
98              -top-[20px]
99            "></a>From pages to agents </span></h2>
100<p class="my-5 [blockquote_&amp;]:my-2">The cloud was conceived as a democratization of Amazon.com. Developers
101demanded faster mechanisms to provision infrastructure than clunky
102data centers, and wanted to dream up new experiences of their own.</p>
103<p class="my-5 [blockquote_&amp;]:my-2">Amazon.com is a set of pages. Very fast, dynamic, personalized pages. Emphasis
104on fast... something that, despite the rise of AWS, remained elusive to most and
105today underpins a lot of the success of the Vercel business. Customers like
106Under Armour, PetSmart, DoorDash, Nintendo, and Porsche partner with us because we
107help them work backwards from the customer experience, delivering fast pages
108and great product experiences, while we automate the infrastructure away.</p>
109<p class="my-5 [blockquote_&amp;]:my-2">One of the key unlocks of this first wave of the web was that page speed correlated
110closely with conversion. Google rewards page speed with higher rankings, which
111creates a flywheel of more business, more conversion, more organic traffic.</p>
112<p class="my-5 [blockquote_&amp;]:my-2">Pages got us here, but agents will get us there.</p>
113<p class="my-5 [blockquote_&amp;]:my-2">When you Google something and you get 10 blue links, wouldn&#x27;t it be
114great if <em>&quot;someone&quot;</em> opened 10 tabs, did a ton of reading, researched the facts,
115compared them, visualized them in a way that&#x27;s relatable to you, considering
116your knowledge, memories, preferences?</p>
117<p class="my-5 [blockquote_&amp;]:my-2">Well, that&#x27;s just the definition of an agent, and something Google is already
118doing via AI Overviews, and in the process re-shuffling the traffic makeup
119of the internet. An agent is &quot;just&quot; a piece of software that&#x27;s able to perform
120a bunch of steps on our behalf, intelligently, and deliver an outcome.</p>
121<p class="my-5 [blockquote_&amp;]:my-2">Unlike pages, agents are not usually synchronous. They&#x27;re never static. They can think
122for seconds, minutes, hours. Soon, days and weeks. Unlike pages, they don&#x27;t follow
123a rigid set of data fetching and rendering instructions. They can write their
124own code and create tools on the fly to achieve their goals.</p>
125<p class="my-5 [blockquote_&amp;]:my-2">This is making us rethink the services that make up the cloud.</p>
126<div class="relative my-12 lg:-mx-20 overflow-x-auto"><table class="w-full max-w-4xl mx-auto border-collapse border border-neutral-300 dark:border-neutral-700"><thead>
126<tr class="bg-neutral-100 dark:bg-neutral-900"><th class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-left font-semibold text-sm sm:text-base">Traditional Cloud</th><th class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-left font-semibold text-sm sm:text-base">AI Cloud</th></tr></thead><tbody><tr class="hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Static &amp; semi-static UI<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">One-shot responses</span></td><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Full dynamic &amp; generative UI<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400"><a href="https://vercel.com/docs/functions/streaming-functions" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
126k:hover:border-white ">Streaming responses</a></span></td></tr><tr class="hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Framework for UI &amp; Pages<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">React / Next.js</span></td><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Framework for AI &amp; Agents<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400"><a href="https://ai-sdk.dev" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">AI SDK</a></span></td></tr><tr class="hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">CDN of Pixels<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">CloudFront</span></td><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">CDN of Tokens<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400"><a href="https://vercel.com/ai-gateway" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
126k:hover:border-white ">AI Gateway</a></span></td></tr><tr class="hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Compute for Human-written Code<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">EC2</span></td><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Compute for Agent-written Code<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400"><a href="https://vercel.com/docs/vercel-sandbox" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Sandbox</a></span></td></tr><tr class="hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors"><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Foreground Compute<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">Quick / CPU-bound (Lambda)</span></td><td class="border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base">Background Compute<br/><span class="text-xs sm:text-sm text-gray-600 dark:text-gray-400">Long running / IO-bound (<a href="https://vercel.com/fluid" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
126k:hover:border-white ">Fluid</a>)</span></td></tr></tbody></table><p class="text-center mt-4 px-4 font-mono text-xs sm:text-sm text-gray-600 dark:text-gray-400">Traditional cloud services and frameworks are foundational — they&#x27;re not going away</p></div>
127<p class="my-5 [blockquote_&amp;]:my-2">Agents get closer to why we invented software to begin with. We wanted to
128scale expertise, make users more productive, make people&#x27;s lives better. I believe
129every organization and individual should have the power to create and deploy their
130own. Instead of clinging onto the old web, we should pick up its lessons. Everyone
131has the freedom to own a domain and deploy to it.</p>
132<h2 class="group font-bold text-xl my-8 relative"><span class="relative"><a class="
133                absolute
134                px-3
135                -left-[2rem]
136                invisible
137                [span:hover_&amp;]:visible
138                font-mono
139                font-normal
140                text-gray-400
141                hover:text-gray-600
142                dark:text-gray-500
143                dark:hover:text-gray-400
144              " href="#problems-to-solutions">#</a><a id="problems-to-solutions" class="
145              absolute
146              -top-[20px]
147            "></a>From problems to solutions </span></h2>
148<p class="my-5 [blockquote_&amp;]:my-2">To wrestle with the complexity of building and deploying software, we invented an enormous
149ecosystem of tools, frameworks, and services.</p>
150<p class="my-5 [blockquote_&amp;]:my-2">Frameworks have so far served two purposes. One, to abstract away the complexity of
151the underlying platform, codifying the best practices of expert developers and
152organizations that have gone before us.</p>
153<p class="my-5 [blockquote_&amp;]:my-2">On Vercel, frameworks also serve an additional, critical purpose. They automate
154infrastructure through what we call Framework-defined Infrastructure (FdI). CI/CD,
155compute clusters, CDNs, caching systems, and more are seamlessly provisioned. Like
156a &quot;cloud compiler&quot; that turns your code into optimal infrastructure.</p>
157<p class="my-5 [blockquote_&amp;]:my-2">The lifecycle of software is roughly &quot;build and run&quot;. Build is the
158phase where you write code, test it, and prepare it for production. FdI has given
159us autonomy here.</p>
160<p class="my-5 [blockquote_&amp;]:my-2">Run is the phase where your code is executed, serving users, processing data,
161and performing tasks. This is also where things can go wrong, slow down, or
162altogether break.</p>
163<p class="my-5 [blockquote_&amp;]:my-2">The latter phase, run, is where we believe AI will allow us to attain the next
164level of cloud autonomy. An AI Cloud will be able to monitor, optimize, secure,
165and repair itself, without human intervention.</p>
166<p class="my-5 [blockquote_&amp;]:my-2">Earlier this year, we introduced our <a href="https://vercel.com/changelog/vercel-agent-now-in-limited-beta" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
166k:hover:border-white ">Firewall Agent</a>, capable of responding to
167threats and providing high-quality investigations and mitigation strategies
168to human operators.
169Our <a href="https://vercel.com/agent" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Code Review Agent</a> now analyzes every pull request by executing it in a
170secure sandbox and emulating the work of a dedicated, expert colleague
171who looks at your code with a healthy amount of skepticism. A (thorough and extensive) <em>vibe check</em> if
172you will.</p>
173<p class="my-5 [blockquote_&amp;]:my-2">We believe that an agentic cloud will repair and optimize, not merely inform.
174Every application at scale today incurs gigantic costs associated with
175collecting telemetry and observability data, surfacing it in dashboards...
176hoping that humans will open them, prioritize issues, and fix them by hand.</p>
177<p class="my-5 [blockquote_&amp;]:my-2">Fundamentally, we believe an AI Cloud shouldn&#x27;t give you problem after problem
178(alerts, 5xx errors, latency spikes, traffic anomalies...). It should give you
179solutions: pull requests, recommendations, and automated actions.</p>
180<h2 class="group font-bold text-xl my-8 relative"><span class="relative"><a class="
181                absolute
182                px-3
183                -left-[2rem]
184                invisible
185                [span:hover_&amp;]:visible
186                font-mono
187                font-normal
188                text-gray-400
189                hover:text-gray-600
190                dark:text-gray-500
191                dark:hover:text-gray-400
192              " href="#closed-to-open">#</a><a id="closed-to-open" class="
193              absolute
194              -top-[20px]
195            "></a>From closed to open </span></h2>
196<p class="my-5 [blockquote_&amp;]:my-2">The promise of rethinking all software with AI is thrilling. I believe all
197applications and services will involve AI in some way, shape, or form. I
198believe the cloud itself will become agentic.</p>
199<p class="my-5 [blockquote_&amp;]:my-2">As we reimagine the web and web services, we must ensure they remain open
200and decentralized. The beauty of the web is that anyone can own a domain, deploy
201to it, and link to anyone else. There&#x27;s no &quot;app review process&quot;, no &quot;platform fee,&quot;
202and every protocol and format is open and documented.</p>
203<p class="my-5 [blockquote_&amp;]:my-2">The first wave of AI has been dominated by closed models, proprietary SDKs,
204protocols, and centralized interfaces.</p>
205<p class="my-5 [blockquote_&amp;]:my-2">Instead of a single agentic interface, we should have a web of agents. Instead
206of a single model SDK, we should embrace model choice. Our contribution here
207is the AI SDK, which not only abstracts over providers, it makes the developer
208experience even more delightful than the vendor-specific SDKs.</p>
209<p class="my-5 [blockquote_&amp;]:my-2">Developers seem to agree, with the AI SDK package (<code class="
210        [p_&amp;]:text-sm
211        [p_&amp;]:px-1
212        [p_&amp;]:py-0.5
213        [p_&amp;]:rounded-sm
214        [p_&amp;]:bg-neutral-200
215        dark:[p_&amp;]:bg-[#333]
216      ">ai</code>) on npm now being
217the second-largest AI package by downloads, second only to <code class="
218        [p_&amp;]:text-sm
219        [p_&amp;]:px-1
220        [p_&amp;]:py-0.5
221        [p_&amp;]:rounded-sm
222        [p_&amp;]:bg-neutral-200
223        dark:[p_&amp;]:bg-[#333]
224      ">openai</code>:</p>
225<div class="jsx-26c8f78742c54f23 relative my-12 lg:-mx-20 overflow-x-auto focus:outline-none"><div class="jsx-26c8f78742c54f23 chart-container w-full max-w-4xl mx-auto border border-neutral-300 dark:border-neutral-700 p-3 sm:p-6 focus:outline-none"><div class="recharts-responsive-container" style="width:100%;height:400px;min-width:0"><div style="width:0;height:0;overflow:visible"></div></div><div class="flex flex-wrap justify-center gap-x-7 gap-y-3 mt-6"><a href="https://www.npmjs.com/package/openai" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 group"><img src="https://cdn.simpleicons.org/openai/737373" alt="openai" class="w-4 h-4"/><span class="font-mono text-xs whitespace-nowrap " style="color:#737373">`<span class="border-b border-transparent group-hover:border-dotted transition-colors" style="border-bottom-color:transparent">openai</span>
225`</span></a><a href="https://ai-sdk.dev" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 group"><img src="https://cdn.simpleicons.org/vercel" alt="ai" class="w-4 h-4 dark:invert dark:opacity-85"/><span class="font-mono text-xs whitespace-nowrap text-black dark:text-neutral-300">`<span class="border-b border-transparent group-hover:border-dotted transition-colors" style="border-bottom-color:transparent">ai</span>`</span></a><a href="https://www.npmjs.com/package/@anthropic-ai/sdk" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 group"><img src="https://cdn.simpleicons.org/anthropic/c2410c" alt="@anthropic-ai/sdk" class="w-4 h-4"/><span class="font-mono text-xs whitespace-nowrap " style="color:#dc2626">`<span class="border-b border-transparent group-hover:border-dotted transition-colors" style="border-bottom-color:transparent">@anthropic-ai/sdk</span>`</span></a><a href="https://www.npmjs.com/package/@google/genai" target="_blank" rel="noopener noreferrer" class="flex items-center gap-2 group"><img src="https://cdn.simpleicons.org/google/ca8a04" alt="@google/genai" class="w-4 h-4"/><span class="font-mono text-xs whitespace-nowrap " style="color:#eab308">`<span class="border-b border-transparent group-hover:border-dotted transition-colors" style="border-bottom-color:transparent">@google/genai</span>`</span></a></div></div><p class="jsx-26c8f78742c54f23 text-center mt-4 px-4 font-mono text-xs sm:text-sm text-gray-600 dark:text-gray-400"><a href="https://ai-sdk.dev" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
225k:hover:border-white ">AI SDK</a> is now the #2 largest SDK for AI in JS/TS, but, crucially, one that&#x27;s model and provider agnostic</p></div>
226<p class="my-5 [blockquote_&amp;]:my-2">The early success of MCP as the protocol connecting agents is a promising
227foundation of this new web, which won&#x27;t be made up solely of pages. And
228more examples of open AI protocols are emerging, such as for
229commerce (<a href="https://www.agenticcommerce.dev/" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Agentic Commerce Protocol</a>) and
230coding (<a href="https://agentclientprotocol.com/" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">Agent Client Protocol</a>).</p>
231<h2 class="group font-bold text-xl my-8 relative"><span class="relative"><a class="
232                absolute
233                px-3
234                -left-[2rem]
235                invisible
236                [span:hover_&amp;]:visible
237                font-mono
238                font-normal
239                text-gray-400
240                hover:text-gray-600
241                dark:text-gray-500
242                dark:hover:text-gray-400
243              " href="#conclusion">#</a><a id="conclusion" class="
244              absolute
245              -top-[20px]
246            "></a>Conclusion </span></h2>
247<p class="my-5 [blockquote_&amp;]:my-2">The internet of tomorrow will look very different. Users expect (and deserve!) more
248intelligent experiences, while increasingly relying on agents to
249solve their problems.</p>
250<p class="my-5 [blockquote_&amp;]:my-2">This is true for developers, who offload problem-solving to agents. For
251framework and devtools builders, this means our job is no longer to
252empower and delight developers, but also their agents.</p>
253<p class="my-5 [blockquote_&amp;]:my-2">It&#x27;s also true for the cloud. The &quot;hello world&quot; experience of yesterday
254was a page, today it&#x27;s an agent. The interface was clicking through UIs,
255today it&#x27;s prompting, or just doing work behind the scenes. <a href="https://x.com/rauchg/status/1978585286130221336" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
255k:hover:border-white ">Surfacing
256insights and solutions</a>, not endless UI or problems.</p>
257<p class="my-5 [blockquote_&amp;]:my-2">For all of us, <a href="https://v0.app" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">developers or not</a>, this is an opportunity to reinvent and reimagine the web
258and continue building it on open foundations.</p><!--$--><!--/$--></article></main><footer class="p-6 pt-3 pb-6 flex text-xs text-center mt-3 dark:text-gray-400 text-gray-500 font-mono"><div class="grow text-left">Guillermo Rauch (<a href="https://twitter.com/rauchg" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white ">@rauchg</a>)</div><div><a href="https://github.com/rauchg/blog" target="_blank" rel="noopener noreferrer" class="border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white ">Source</a></div></footer><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
258<script src="/_next/static/chunks/42bbec399ef26bd0.js" id="_R_" async=""></script>
258<script>(self.__next_f=self.__next_f||[]).push([0])</script>
258<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[28811,[\"/_next/static/chunks/e89db027249216a8.js\"],\"Logo\"]\n3:I[86796,[\"/_next/static/chunks/e89db027249216a8.js\",\"/_next/static/chunks/0a9f293e99116f13.js\",\"/_next/static/chunks/d1bd3319f186a5e9.js\",\"/_next/static/chunks/3512fd29dfc0cda1.js\",\"/_next/static/chunks/2aff4a6db8a957a2.js\"],\"\"]\n4:I[64532,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"default\"]\n5:I[70689,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"default\"]\nd:I[48705,[],\"default\"]\n:HL[\"/_next/static/chunks/dd7b830295a7d76f.css\",\"style\"]\n:HL[\"/_next/static/chunks/1d064decab531487.css\",\"style\"]\n"])</script>
258<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"H7kM9EJW0gEcPI3MVv58M\",\"c\":[\"\",\"2025\",\"the-ai-cloud\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(post)\",{\"children\":[\"2025\",{\"children\":[\"the-ai-cloud\",{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/dd7b830295a7d76f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/e89db027249216a8.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_a8fa0c1a-module__MXp6vq__variable geist_mono_44a15786-module__TFZSCa__variable geist_a8fa0c1a-module__MXp6vq__className antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function n(){console.log(`\\n                     ▄              ▄\\n                    ▌▒█           ▄▀▒▌\\n                    ▌▒▒█        ▄▀▒▒▒▐\\n                   ▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐\\n                 ▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐\\n               ▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌\\n              ▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒▌\\n              ▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐\\n             ▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌\\n             ▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌\\n            ▌▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒▐\\n            ▐▒▒▐▀▐▀▒░▄▄▒▄▒▒▒▒▒▒░▒░▒░▒▒▒▒▌\\n            ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▐\\n             ▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒░▒░▒░▒░▒▒▒▌\\n             ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▄▒▒▐\\n              ▀▄▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▄▒▒▒▒▌\\n                ▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀\\n                  ▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀\\n                     ▒▒▒▒▒▒▒▒▒▒▀▀\\n  `)})();\"}}]}],[\"$\",\"body\",null,{\"className\":\"dark:text-gray-100 max-w-2xl m-auto\",\"children\":[[\"$\",\"main\",null,{\"className\":\"p-6 pt-3 md:pt-6 min-h-screen\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex mb-5 md:mb-10 items-center\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"nav\",null,{\"className\":\"text-xs grow justify-end items-center flex\",\"children\":[[\"$\",\"$L3\",null,{\"href\":\"/about\",\"className\":\"group p-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700 rounded-xl py-0.5 px-1.5 inline-flex\",\"children\":\"About\"}]}],[\"$\",\"a\",null,{\"href\":\"https://x.com/rauchg\",\"target\":\"_blank\",\"className\":\"group inline-flex items-center p-2 rounded-sm transition-[background-color] whitespace-nowrap -mr-2\",\"children\":[\"$\",\"span\",null,{\"className\":\"group-hover:bg-neutral-200 dark:group-hover:bg-neutral-700 rounded-xl py-0.5 px-1.5 inline-flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"className\":\"inline-flex fill-current\",\"width\":12,\"height\":12,\"children\":[\"$\",\"g\",null,{\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"}]}]}],[\"$\",\"span\",null,{\"children\":\"Follow me\"}]]}]}]]}]]}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\"
258:\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"$L6\",\"$L7\"]}]]}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{\"children\":[\"$Lb\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true}\n"])</script>
258<script>self.__next_f.push([1,"e:I[31154,[\"/_next/static/chunks/e89db027249216a8.js\"],\"Analytics\"]\n39:I[56847,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"ViewportBoundary\"]\n3b:I[56847,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"MetadataBoundary\"]\n3c:\"$Sreact.suspense\"\n6:[\"$\",\"footer\",null,{\"className\":\"p-6 pt-3 pb-6 flex text-xs text-center mt-3 dark:text-gray-400 text-gray-500 font-mono\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grow text-left\",\"children\":[\"Guillermo Rauch (\",[\"$\",\"a\",null,{\"href\":\"https://twitter.com/rauchg\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"@rauchg\"}],\")\"]}],[\"$\",\"div\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/rauchg/blog\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Source\"}]}]]}]\n7:[\"$\",\"$Le\",null,{}]\n8:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0a9f293e99116f13.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$Lf\"]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
258<script>self.__next_f.push([1,"b:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"Vercel was born out of my frustration in 2015 that while the cloud enabled\\nthis seemingly infinite array of possibilities (and compute), the \",[\"$\",\"em\",null,{\"children\":\"pixels\"}],\"\\non the web weren't getting significantly better. And neither was the experience\\nof crafting them.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The cloud promised to remove the burden of maintaining physical data centers\\nand hardware, but ultimately we inherited much of that burden in digital form.\\nDevOps, K8s, VPCs, CI/CD, IAM, CDNs, IaC...\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The time you should have spent on the pixels... was spent on the configs. The\\njobs you could have devoted to product and customers, were devoted to the setup\\nof clusters and machines.\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"Over the past 10 years, we've been fortunate to play a role in reversing this story.\\nWe led with developer experience, starting with frameworks\\nand tools that, upon deployment, \",[\"$\",\"em\",null,{\"children\":\"generated\"}],\" the infrastructure. React\\npioneered the concept that the DOM is the \",[\"$\",\"em\",null,{\"children\":\"output\"}],\" of your state and data.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"We set out to make Vercel the \",[\"$\",\"em\",null,{\"children\":\"React of the Cloud\"}],\", where the hyperscaler\\nprimitives are outputs not to be directly manipulated, or jQueryed. And,\\nin the process, we made a popular React framework too.\"]}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The results: Next.js's seen 500M downloads over the past 12 months, which is\\nmore than in the entire 2016 to 2024 period. Vercel is crossing 1 billion\\napplication deployments. We now power two of the top 20 highest traffic\\nweb properties on the planet, like OpenAI and The Weather Company, while also\\nserving millions of applications of all sizes, including 1-person\\ncompanies making millions in ARR.\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"But to win the next decade, Vercel must heed the advice of its hyperscaler\\npredecessor and partner: it's always Day One.\"}],\"\\n\",[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"AI is eating the Web, and with it, the Web Services we're used to. There\\nare three massive trends that are shaking up the web, the cloud, and\\nsoftware as a whole:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"my-5 list-none list-inside\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"\\n    my-2\\n    [ul_\u0026]:relative\\n    [ul_\u0026]:pl-4\\n    [ul_\u0026]:before:text-gray-400\\n    [ul_\u0026]:before:content-['–']\\n    [ul_\u0026]:before:mr-2\\n    [ul_\u0026]:before:absolute\\n    [ul_\u0026]:before:-ml-4\\n  \",\"children\":[\"$\",\"strong\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"#pages-to-agents\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Pages to Agents\"}]}]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"\\n    my-2\\n    [ul_\u0026]:relative\\n    [ul_\u0026]:pl-4\\n    [ul_\u0026]:before:text-gray-400\\n    [ul_\u0026]:before:content-['–']\\n    [ul_\u0026]:before:mr-2\\n    [ul_\u0026]:before:absolute\\n    [ul_\u0026]:before:-ml-4\\n  \",\"children\":[\"$\",\"strong\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"#problems-to-solutions\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"Problems to Solutions\"}]}]}],\"\\n\",\"$L10\",\"\\n\"]}],\"\\n\",\"$L11\",\"\\n\",\"$L12\",\"\\n\",\"$L13\",\"\\n\",\"$L14\",\"\\n\",\"$L15\",\"\\n\",\"$L16\",\"\\n\",\"$L17\",\"\\n\",\"$L18\",\"\\n\",\"$L19\",\"\\n\",\"$L1a\",\"\\n\",\"$L1b\",\"\\n\",\"$L1c\",\"\\n\",\"$L1d\",\"\\n\",\"$L1e\",\"\\n\",\"$L1f\",\"\\n\",\"$L20\",\"\\n\",\"$L21\",\"\\n\",\"$L22\",\"\\n\",\"$L23\",\"\\n\",\"$L24\",\"\\n\",\"$L25\",\"\\n\",\"$L26\",\"\\n\",\"$L27\",\"\\n\",\"$L28\",\"\\n\",\"$L29\",\"\\n\",\"$L2a\",\"\\n\",\"$L2b\",\"\\n\",\"$L2c\",\"\\n\",\"$L2d\",\"\\n\",\"$L2e\",\"\\n\",\"$L2f\",\"\\n\",\"$L30\",\"\\n\",\"$L31\",\"\\n\",\"$L32\",\"\\n\",\"$L33\"],[\"$L34\",\"$L35\",\"$L36\",\"$L37\"],\"$L38\"]}]\n"])</script>
258<script>self.__next_f.push([1,"c:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L39\",null,{\"children\":\"$L3a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L3b\",null,{\"children\":[\"$\",\"$3c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L3d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
258<script>self.__next_f.push([1,"41:I[92951,[\"/_next/static/chunks/e89db027249216a8.js\",\"/_next/static/chunks/0a9f293e99116f13.js\",\"/_next/static/chunks/d1bd3319f186a5e9.js\",\"/_next/static/chunks/3512fd29dfc0cda1.js\",\"/_next/static/chunks/2aff4a6db8a957a2.js\"],\"Chart\"]\n42:I[56847,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"OutletBoundary\"]\n10:[\"$\",\"li\",null,{\"className\":\"\\n    my-2\\n    [ul_\u0026]:relative\\n    [ul_\u0026]:pl-4\\n    [ul_\u0026]:before:text-gray-400\\n    [ul_\u0026]:before:content-['–']\\n    [ul_\u0026]:before:mr-2\\n    [ul_\u0026]:before:absolute\\n    [ul_\u0026]:before:-ml-4\\n  \",\"children\":[\"$\",\"strong\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"#closed-to-open\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"Closed to Open\"}]}]}]\n11:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"I believe this is a transcendental time for developers and users.\\nWe can either give up the web, proxy all our data and intent through\\none closed mega-app, or reinvent it together in the open.\"}]\n12:[\"$\",\"h2\",null,{\"className\":\"group font-bold text-xl my-8 relative\",\"children\":[[\"$\",\"span\",\".0\",{\"className\":\"relative\",\"children\":[[\"$\",\"a\",null,{\"className\":\"\\n                absolute\\n                px-3\\n                -left-[2rem]\\n                invisible\\n                [span:hover_\u0026]:visible\\n                font-mono\\n                font-normal\\n                text-gray-400\\n                hover:text-gray-600\\n                dark:text-gray-500\\n                dark:hover:text-gray-400\\n              \",\"href\":\"#pages-to-agents\",\"children\":\"#\"}],[\"$\",\"a\",null,{\"id\":\"pages-to-agents\",\"className\":\"\\n              absolute\\n              -top-[20px]\\n            \"}],\"From pages to agents \"]}]]}]\n13:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The cloud was conceived as a democratization of Amazon.com. Developers\\ndemanded faster mechanisms to provision infrastructure than clunky\\ndata centers, and wanted to dream up new experiences of their own.\"}]\n14:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Amazon.com is a set of pages. Very fast, dynamic, personalized pages. Emphasis\\non fast... something that, despite the rise of AWS, remained elusive to most and\\ntoday underpins a lot of the success of the Vercel business. Customers like\\nUnder Armour, PetSmart, DoorDash, Nintendo, and Porsche partner with us because we\\nhelp them work backwards from the customer experience, delivering fast pages\\nand great product experiences, while we automate the infrastructure away.\"}]\n15:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"One of the key unlocks of this first wave of the web was that page speed correlated\\nclosely with conversion. Google rewards page speed with higher rankings, which\\ncreates a flywheel of more business, more conversion, more organic traffic.\"}]\n16:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Pages got us here, but agents will get us there.\"}]\n17:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"When you Google something and you get 10 blue links, wouldn't it be\\ngreat if \",[\"$\",\"em\",null,{\"children\":\"\\\"someone\\\"\"}],\" opened 10 tabs, did a ton of reading, researched the facts,\\ncompared them, visualized them in a way that's relatable to you, considering\\nyour knowledge, memories, preferences?\"]}]\n18:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Well, that's just the definition of an agent, and something Google is already\\ndoing via AI Overviews, and in the process re-shuffling the traffic makeup\\nof the internet. An agent is \\\"just\\\" a piece of software that's able to perform\\na bunch of steps on our behalf, intelligently, and deliver an outcome.\"}]\n19:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Unlike pages, agents are not usually synchronous. They're never static. They can think\\nfor seconds, minutes, hours. Soon, days and weeks. Unlike pages, the"])</script>
258<script>self.__next_f.push([1,"y don't follow\\na rigid set of data fetching and rendering instructions. They can write their\\nown code and create tools on the fly to achieve their goals.\"}]\n1a:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"This is making us rethink the services that make up the cloud.\"}]\n"])</script>
258<script>self.__next_f.push([1,"1b:[\"$\",\"div\",null,{\"className\":\"relative my-12 lg:-mx-20 overflow-x-auto\",\"children\":[[\"$\",\"table\",null,{\"className\":\"w-full max-w-4xl mx-auto border-collapse border border-neutral-300 dark:border-neutral-700\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"bg-neutral-100 dark:bg-neutral-900\",\"children\":[[\"$\",\"th\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-left font-semibold text-sm sm:text-base\",\"children\":\"Traditional Cloud\"}],[\"$\",\"th\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-left font-semibold text-sm sm:text-base\",\"children\":\"AI Cloud\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",null,{\"className\":\"hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors\",\"children\":[[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Static \u0026 semi-static UI\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"One-shot responses\"}]]}],[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Full dynamic \u0026 generative UI\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://vercel.com/docs/functions/streaming-functions\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Streaming responses\"}]}]]}]]}],[\"$\",\"tr\",null,{\"className\":\"hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors\",\"children\":[[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Framework for UI \u0026 Pages\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"React / Next.js\"}]]}],[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Framework for AI \u0026 Agents\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://ai-sdk.dev\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"AI SDK\"}]}]]}]]}],[\"$\",\"tr\",null,{\"className\":\"hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors\",\"children\":[[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"CDN of Pixels\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"CloudFront\"}]]}],[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"CDN of Tokens\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://vercel.com/ai-gateway\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"AI Gateway\"}]}]]}]]}],[\"$\",\"tr\",null,{\"className\":\"hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors\",\"children\":[[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Compute for Human-written Code\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"EC2\"}]]}],\"$L3e\"]}],\"$L3f\"]}]]}],\"$L40\"]}]\n"])</script>
258<script>self.__next_f.push([1,"1c:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Agents get closer to why we invented software to begin with. We wanted to\\nscale expertise, make users more productive, make people's lives better. I believe\\nevery organization and individual should have the power to create and deploy their\\nown. Instead of clinging onto the old web, we should pick up its lessons. Everyone\\nhas the freedom to own a domain and deploy to it.\"}]\n1d:[\"$\",\"h2\",null,{\"className\":\"group font-bold text-xl my-8 relative\",\"children\":[[\"$\",\"span\",\".0\",{\"className\":\"relative\",\"children\":[[\"$\",\"a\",null,{\"className\":\"\\n                absolute\\n                px-3\\n                -left-[2rem]\\n                invisible\\n                [span:hover_\u0026]:visible\\n                font-mono\\n                font-normal\\n                text-gray-400\\n                hover:text-gray-600\\n                dark:text-gray-500\\n                dark:hover:text-gray-400\\n              \",\"href\":\"#problems-to-solutions\",\"children\":\"#\"}],[\"$\",\"a\",null,{\"id\":\"problems-to-solutions\",\"className\":\"\\n              absolute\\n              -top-[20px]\\n            \"}],\"From problems to solutions \"]}]]}]\n1e:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"To wrestle with the complexity of building and deploying software, we invented an enormous\\necosystem of tools, frameworks, and services.\"}]\n1f:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Frameworks have so far served two purposes. One, to abstract away the complexity of\\nthe underlying platform, codifying the best practices of expert developers and\\norganizations that have gone before us.\"}]\n20:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"On Vercel, frameworks also serve an additional, critical purpose. They automate\\ninfrastructure through what we call Framework-defined Infrastructure (FdI). CI/CD,\\ncompute clusters, CDNs, caching systems, and more are seamlessly provisioned. Like\\na \\\"cloud compiler\\\" that turns your code into optimal infrastructure.\"}]\n21:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The lifecycle of software is roughly \\\"build and run\\\". Build is the\\nphase where you write code, test it, and prepare it for production. FdI has given\\nus autonomy here.\"}]\n22:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Run is the phase where your code is executed, serving users, processing data,\\nand performing tasks. This is also where things can go wrong, slow down, or\\naltogether break.\"}]\n23:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The latter phase, run, is where we believe AI will allow us to attain the next\\nlevel of cloud autonomy. An AI Cloud will be able to monitor, optimize, secure,\\nand repair itself, without human intervention.\"}]\n24:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"Earlier this year, we introduced our \",[\"$\",\"a\",null,{\"href\":\"https://vercel.com/changelog/vercel-agent-now-in-limited-beta\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Firewall Agent\"}],\", capable of responding to\\nthreats and providing high-quality investigations and mitigation strategies\\nto human operators.\\nOur \",[\"$\",\"a\",null,{\"href\":\"https://vercel.com/agent\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"Code Review Agent\"}],\" now analyzes every pull request by executing it in a\\nsecure sandbox and emulating the work of a dedicated, expert colleague\\nwho looks at your code with a healthy amount of skepticism. A (thorough and extensive) \",[\"$\",\"em\",null,{\"children\":\"vibe check\"}],\" if\\nyou will.\"]}]\n25:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"We believe that an agentic cloud will repair and op"])</script>
258<script>self.__next_f.push([1,"timize, not merely inform.\\nEvery application at scale today incurs gigantic costs associated with\\ncollecting telemetry and observability data, surfacing it in dashboards...\\nhoping that humans will open them, prioritize issues, and fix them by hand.\"}]\n26:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Fundamentally, we believe an AI Cloud shouldn't give you problem after problem\\n(alerts, 5xx errors, latency spikes, traffic anomalies...). It should give you\\nsolutions: pull requests, recommendations, and automated actions.\"}]\n27:[\"$\",\"h2\",null,{\"className\":\"group font-bold text-xl my-8 relative\",\"children\":[[\"$\",\"span\",\".0\",{\"className\":\"relative\",\"children\":[[\"$\",\"a\",null,{\"className\":\"\\n                absolute\\n                px-3\\n                -left-[2rem]\\n                invisible\\n                [span:hover_\u0026]:visible\\n                font-mono\\n                font-normal\\n                text-gray-400\\n                hover:text-gray-600\\n                dark:text-gray-500\\n                dark:hover:text-gray-400\\n              \",\"href\":\"#closed-to-open\",\"children\":\"#\"}],[\"$\",\"a\",null,{\"id\":\"closed-to-open\",\"className\":\"\\n              absolute\\n              -top-[20px]\\n            \"}],\"From closed to open \"]}]]}]\n28:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The promise of rethinking all software with AI is thrilling. I believe all\\napplications and services will involve AI in some way, shape, or form. I\\nbelieve the cloud itself will become agentic.\"}]\n29:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"As we reimagine the web and web services, we must ensure they remain open\\nand decentralized. The beauty of the web is that anyone can own a domain, deploy\\nto it, and link to anyone else. There's no \\\"app review process\\\", no \\\"platform fee,\\\"\\nand every protocol and format is open and documented.\"}]\n2a:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The first wave of AI has been dominated by closed models, proprietary SDKs,\\nprotocols, and centralized interfaces.\"}]\n2b:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"Instead of a single agentic interface, we should have a web of agents. Instead\\nof a single model SDK, we should embrace model choice. Our contribution here\\nis the AI SDK, which not only abstracts over providers, it makes the developer\\nexperience even more delightful than the vendor-specific SDKs.\"}]\n2c:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"Developers seem to agree, with the AI SDK package (\",[\"$\",\"code\",null,{\"className\":\"\\n        [p_\u0026]:text-sm\\n        [p_\u0026]:px-1\\n        [p_\u0026]:py-0.5\\n        [p_\u0026]:rounded-sm\\n        [p_\u0026]:bg-neutral-200\\n        dark:[p_\u0026]:bg-[#333]\\n      \",\"children\":\"ai\"}],\") on npm now being\\nthe second-largest AI package by downloads, second only to \",[\"$\",\"code\",null,{\"className\":\"\\n        [p_\u0026]:text-sm\\n        [p_\u0026]:px-1\\n        [p_\u0026]:py-0.5\\n        [p_\u0026]:rounded-sm\\n        [p_\u0026]:bg-neutral-200\\n        dark:[p_\u0026]:bg-[#333]\\n      \",\"children\":\"openai\"}],\":\"]}]\n2d:[\"$\",\"$L41\",null,{}]\n2e:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"The early success of MCP as the protocol connecting agents is a promising\\nfoundation of this new web, which won't be made up solely of pages. And\\nmore examples of open AI protocols are emerging, such as for\\ncommerce (\",[\"$\",\"a\",null,{\"href\":\"https://www.agenticcommerce.dev/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Agentic Commerce Protocol\"}],\") and\\ncoding (\",[\"$\",\"a\",null,{\"href\":\"https://agentclientprotocol.com/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"Agent Client Protocol\"}],\").\"]}]\n2f:[\"$\",\"h2\",null,{\"className\":\"g"])</script>
258<script>self.__next_f.push([1,"roup font-bold text-xl my-8 relative\",\"children\":[[\"$\",\"span\",\".0\",{\"className\":\"relative\",\"children\":[[\"$\",\"a\",null,{\"className\":\"\\n                absolute\\n                px-3\\n                -left-[2rem]\\n                invisible\\n                [span:hover_\u0026]:visible\\n                font-mono\\n                font-normal\\n                text-gray-400\\n                hover:text-gray-600\\n                dark:text-gray-500\\n                dark:hover:text-gray-400\\n              \",\"href\":\"#conclusion\",\"children\":\"#\"}],[\"$\",\"a\",null,{\"id\":\"conclusion\",\"className\":\"\\n              absolute\\n              -top-[20px]\\n            \"}],\"Conclusion \"]}]]}]\n30:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"The internet of tomorrow will look very different. Users expect (and deserve!) more\\nintelligent experiences, while increasingly relying on agents to\\nsolve their problems.\"}]\n31:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":\"This is true for developers, who offload problem-solving to agents. For\\nframework and devtools builders, this means our job is no longer to\\nempower and delight developers, but also their agents.\"}]\n32:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"It's also true for the cloud. The \\\"hello world\\\" experience of yesterday\\nwas a page, today it's an agent. The interface was clicking through UIs,\\ntoday it's prompting, or just doing work behind the scenes. \",[\"$\",\"a\",null,{\"href\":\"https://x.com/rauchg/status/1978585286130221336\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Surfacing\\ninsights and solutions\"}],\", not endless UI or problems.\"]}]\n33:[\"$\",\"p\",null,{\"className\":\"my-5 [blockquote_\u0026]:my-2\",\"children\":[\"For all of us, \",[\"$\",\"a\",null,{\"href\":\"https://v0.app\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"developers or not\"}],\", this is an opportunity to reinvent and reimagine the web\\nand continue building it on open foundations.\"]}]\n34:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/1d064decab531487.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n35:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d1bd3319f186a5e9.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n36:[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3512fd29dfc0cda1.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n37:[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2aff4a6db8a957a2.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n38:[\"$\",\"$L42\",null,{\"children\":[\"$\",\"$3c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@43\"}]}]\n"])</script>
258<script>self.__next_f.push([1,"3e:[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Compute for Agent-written Code\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://vercel.com/docs/vercel-sandbox\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dark:hover:border-white \",\"children\":\"Sandbox\"}]}]]}]\n3f:[\"$\",\"tr\",null,{\"className\":\"hover:bg-neutral-100 dark:hover:bg-neutral-800 transition-colors\",\"children\":[[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Foreground Compute\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"Quick / CPU-bound (Lambda)\"}]]}],[\"$\",\"td\",null,{\"className\":\"border border-neutral-300 dark:border-neutral-700 px-3 sm:px-6 py-3 text-sm sm:text-base\",\"children\":[\"Background Compute\",[\"$\",\"br\",null,{}],[\"$\",\"span\",null,{\"className\":\"text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":[\"Long running / IO-bound (\",[\"$\",\"a\",null,{\"href\":\"https://vercel.com/fluid\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"border-b text-gray-600 border-gray-300 transition-[border-color] hover:border-gray-600 dark:text-white dark:border-stone-600 dar
258k:hover:border-white \",\"children\":\"Fluid\"}],\")\"]}]]}]]}]\n40:[\"$\",\"p\",null,{\"className\":\"text-center mt-4 px-4 font-mono text-xs sm:text-sm text-gray-600 dark:text-gray-400\",\"children\":\"Traditional cloud services and frameworks are foundational — they're not going away\"}]\n"])</script>
258<script>self.__next_f.push([1,"3a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"transparent\"}]]\n"])</script>
258<script>self.__next_f.push([1,"44:I[5855,[\"/_next/static/chunks/df33d3f4ad2d6c04.js\",\"/_next/static/chunks/68e7b984035c4776.js\"],\"IconMark\"]\n3d:[[\"$\",\"title\",\"0\",{\"children\":\"The AI Cloud\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"The AI Cloud\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://rauchg.com/og/the-ai-cloud\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:site\",\"content\":\"@rauchg\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:creator\",\"content\":\"@rauchg\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:title\",\"content\":\"The AI Cloud\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:description\",\"content\":\"The evolution of the cloud, from pages to agents, from problems to solutions, from closed AI to open AI\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:image\",\"content\":\"https://rauchg.com/og/the-ai-cloud\"}],[\"$\",\"link\",\"11\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.7e34900e.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"$L44\",\"12\",{}]]\n43:null\n"])</script>
258<script>self.__next_f.push([1,"45:I[99358,[\"/_next/static/chunks/e89db027249216a8.js\",\"/_next/static/chunks/0a9f293e99116f13.js\"],\"Header\"]\n"])</script>
258<script>self.__next_f.push([1,"f:[\"$\",\"article\",null,{\"className\":\"text-gray-800 dark:text-gray-300 mb-10\",\"children\":[[\"$\",\"$L45\",null,{\"posts\":[{\"id\":\"the-ai-cloud\",\"date\":\"Oct 17, 2025\",\"title\":\"The AI Cloud\",\"views\":51961,\"viewsFormatted\":\"51,961\"},{\"id\":\"making-the-web-faster\",\"date\":\"June 23, 2021\",\"title\":\"Making the web. Faster.\",\"views\":107336,\"viewsFormatted\":\"107,336\"},{\"id\":\"next-for-vercel\",\"date\":\"December 16, 2020\",\"title\":\"Next for Vercel\",\"views\":63049,\"viewsFormatted\":\"63,049\"},{\"id\":\"books-people-reread\",\"date\":\"August 2, 2020\",\"title\":\"Books people re-read\",\"views\":42686,\"viewsFormatted\":\"42,686\"},{\"id\":\"develop-preview-test\",\"date\":\"June 11, 2020\",\"title\":\"Develop, preview, test\",\"views\":35461,\"viewsFormatted\":\"35,461\"},{\"id\":\"static-hoisting\",\"date\":\"May 2, 2020\",\"title\":\"Static hoisting\",\"views\":41446,\"viewsFormatted\":\"41,446\"},{\"id\":\"an-ode-to-code-golf\",\"date\":\"April 26, 2020\",\"title\":\"An ode to code golf\",\"views\":20370,\"viewsFormatted\":\"20,370\"},{\"id\":\"vercel\",\"date\":\"April 21, 2020\",\"title\":\"Vercel\",\"views\":58870,\"viewsFormatted\":\"58,870\"},{\"id\":\"2019-in-review\",\"date\":\"January 2, 2020\",\"title\":\"2019 in review\",\"views\":68886,\"viewsFormatted\":\"68,886\"},{\"id\":\"its-hard-to-forego-efficiency\",\"date\":\"March 28, 2017\",\"title\":\"It's hard to forego efficiency\",\"views\":48615,\"viewsFormatted\":\"48,615\"},{\"id\":\"2016-in-review\",\"date\":\"January 6, 2017\",\"title\":\"2016 in review\",\"views\":47255,\"viewsFormatted\":\"47,255\"},{\"id\":\"addressable-errors\",\"date\":\"February 4, 2016\",\"title\":\"Addressable errors\",\"views\":23590,\"viewsFormatted\":\"23,590\"},{\"id\":\"pure-ui\",\"date\":\"July 13, 2015\",\"title\":\"Pure UI\",\"views\":707099,\"viewsFormatted\":\"707,099\"},{\"id\":\"ecmascript-6\",\"date\":\"February 22, 2015\",\"title\":\"ECMAScript 6\",\"views\":129132,\"viewsFormatted\":\"129,132\"},{\"id\":\"7-principles-of-rich-web-applications\",\"date\":\"November 4, 2014\",\"title\":\"7 principles of rich web applications\",\"views\":740679,\"viewsFormatted\":\"740,679\"}]}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
258</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.