Como a Vercel constrói a Vercel com as próprias ferramentas
A Vercel é uma plataforma de nuvem para publicar apps web e a empresa por trás do Next.js. O site e o painel rodam em Next.js e Turborepo, e a plataforma por baixo junta AWS Lambda, um núcleo em Rust, Go na borda e um fluxo de dados com Kafka e ClickHouse.
O vercel.com começou como um único app Next.js grande, servindo tanto as páginas de marketing quanto o painel logado. Com o crescimento, os builds ficaram lentos e qualquer mudança pequena disparava um build completo.
O time dividiu o site em microfrontends verticais com o Multi-Zones do Next.js, dentro de um monorepo Turborepo, e usou feature flags para migrar o tráfego aos poucos. Os builds de preview e a compilação local ficaram mais de 40% mais rápidos.
Em 2022 o time levou a nota do painel no Lighthouse de 51 para 94. Quase tudo veio de mandar menos JavaScript: importar só o necessário do Sentry, carregar os scripts do Stripe e do Google Tag Manager só quando precisa e guardar em cache funções chamadas centenas de vezes por render.
Também usaram recursos do próprio Next.js, como o next/image e o CSS das fontes embutido no build.
As Vercel Functions rodam no AWS Lambda, que no início não conseguia mandar respostas em streaming. Para resolver, a Vercel criou um protocolo próprio sobre TCP entre o Lambda e a sua infraestrutura, com um núcleo em Rust fazendo a ponte.
Esse trabalho virou o Fluid compute, que reaproveita instâncias já ligadas entre pedidos e reduz partidas a frio e custo em cargas que esperam muito por rede, como apps de IA.