Jak Cloudflare během jednoho týdne s pomocí AI přepsal Next.js

Cloudflare přišel s experimentálním projektem vinext – alternativní implementací API frameworku Next.js postavenou na Vite. Nejde o adaptér ani překladač build výstupu. Jde o samostatnou reimplementaci, která zachovává veřejné rozhraní Next.js, ale běží nad jiným nástrojem a jiným runtime. Projekt navíc vznikl během jediného týdne a zásadní roli v jeho vývoji hrála umělá inteligence. Výsledek ukazuje nejen možné zrychlení buildů a menší výsledné balíčky, ale i proměnu samotného způsobu, jakým mohou frameworky vznikat.
Problém, který dlouho visel ve vzduchu
Next.js se během posledních let stal dominantním řešením pro produkční React aplikace. Nabízí server-side rendering, statickou generaci, hybridní přístup ke generování obsahu, API routy i moderní App Router s React Server Components. Pro mnoho týmů dnes představuje výchozí volbu, pokud chtějí stavět komplexní web nebo SaaS aplikaci.
Jenže Next.js je zároveň silně svázán se svým vlastním build systémem a očekávaným runtime prostředím. Primárně cílí na Node.js a infrastrukturu blízkou tomu, co nabízí Vercel. Jakmile se aplikace pokusíte dostat do jiného prostředí – například na edge runtime – začíná být situace komplikovanější.
Právě zde dlouhodobě narážela i Cloudflare. Jejich platforma Cloudflare Workers funguje na odlišném modelu. Nejde o klasický Node server, ale o izolované běhové prostředí postavené na V8. Má jiný přístup k síťovým požadavkům, jiný model práce s prostředky a jiné limity. Nasadit sem Next.js znamená přeložit jeho výstup do kompatibilní podoby.
Existují nástroje, které se o to snaží. Fungují tak, že vezmou build artefakty Next.js a transformují je tak, aby běžely jinde. Jenže to znamená neustálou závislost na interní struktuře frameworku. Každá větší změna v Next.js může takový adaptér rozbít. Výsledkem je vrstva navíc, která zvyšuje komplexitu a riziko nekompatibility.
Cloudflare se proto rozhodl přemýšlet jinak. Co kdyby se Next.js nepřekládal, ale znovu implementoval?
Vinext namísto Next.js
Vinext je alternativní implementace veřejného API Next.js postavená na Vite. Důležité je slovo „implementace“. Nejde o wrapper ani o nástroj, který analyzuje výstup originálního frameworku. Vinext se snaží poskytovat stejné rozhraní – stejné složky, stejné konvence, stejné chování – ale jeho interní engine je jiný.
Z pohledu vývojáře by měl být přechod minimální. Projekt může dál používat adresáře jako app/ nebo pages/, může definovat middleware, server actions i API routy. Místo příkazu next build však spustí vinext build. Místo klasického deploy procesu použije vinext deploy, který aplikaci rovnou připraví pro běh pro Cloudflare pracovníky.
Tím se mění pod kapotou prakticky všechno, ale navenek zůstává API stejné. To je klíčová myšlenka celého projektu – oddělit veřejné rozhraní frameworku od jeho konkrétní implementace.
Proč padla volba právě na Vite
Vite se během několika let usadil jako moderní a velmi rychlý nástroj pro vývoj frontendu. Je postaven na nativním ESM přístupu a klade důraz na rychlý vývojový server i efektivní produkční bundlování. Jeho plugin systém umožňuje zasahovat do procesu kompilace relativně hluboko, aniž by bylo nutné budovat vlastní toolchain od nuly.
Pro Cloudflare to znamenalo ideální základ. Místo toho, aby se snažili přizpůsobit Next.js jinému runtime, mohli vystavět vlastní implementaci jeho API nad flexibilnějším nástrojem. Vinext tak funguje jako sada Vite pluginů a nadstavbových mechanismů, které řeší routing, server-side rendering, práci s React Server Components i middleware.
Tím, že je vše budováno přímo pomocí Vite, odpadá potřeba dodatečných transformačních kroků. Build proces je přehlednější a více pod kontrolou. Navíc otevírá cestu k využití modernějších bundlerů a experimentálních optimalizací, které Vite postupně integruje.
Reimplementace jako signál změny
Nejdůležitější na vinextu ale možná není samotná technická architektura. Zásadní je fakt, že nejde o fork Next.js ani o komunitní alternativu vznikající roky. Jde o experiment, který vznikl extrémně rychle a s výraznou pomocí AI.
Cloudflare tím nepřímo ukazuje, že veřejné API frameworku může být odděleno od jeho konkrétní implementace a že tato implementace může být relativně rychle nahrazena jinou. To má důsledky nejen pro Next.js, ale pro celý ekosystém moderních webových nástrojů.
Výkon: rychlejší buildy a menší balíčky
Jedním z hlavních argumentů pro vinext je rychlost. Tím, že je postavený s Vite a moderním bundlovacím stackem, dosahuje v interních testech výrazně lepších výsledků než klasický Next.js.
Cloudflare porovnával produkční buildy mezi aktuální verzí Next.js a vinextem běžícím nad Vite (s různými bundlery). Výsledky ukázaly výrazné zkrácení build času, v některých konfiguracích až na zlomek původní doby. Tam, kde Next.js potřeboval několik sekund, dokázal vinext dokončit build násobně rychleji, zejména při využití novějších optimalizovaných bundlerů.
| Framework | Mean | vs Next.js |
|---|---|---|
| Next.js 16.1.6 (Turbopack) | 7.38s | baseline |
| vinext (Vite 7 / Rollup) | 4.64s | 1.6x rychlejší |
| vinext (Vite 8 / Rolldown) | 1.67s | 4.4x rychlejší |
Zajímavý je i rozdíl ve velikosti výsledného klientského balíčku. Vinext v testech generoval výrazně menší gzip balíčky než Next.js. To má přímý dopad na rychlost načítání stránky, zejména na mobilních sítích. Menší bundle znamená méně přenesených dat a rychlejší interaktivitu.
| Framework | Gzipped | vs Next.js |
|---|---|---|
| Next.js 16.1.6 | 168.9 KB | baseline |
| vinext (Rollup) | 74.0 KB | 56% menší |
| vinext (Rolldown) | 72.9 KB | 57% menší |
Je ale fér dodat, že tato čísla se týkají primárně kompilace a bundlování. Nejde o kompletní benchmark produkční aplikace pod vysokou zátěží. Projekt je stále experimentální a zatím neprošel rozsáhlým provozem ve velkých produkčních scénářích. Přesto je trend jasný: modernější build pipeline může mít výrazný dopad na rychlost vývoje i výsledný výstup.
Traffic-aware Pre-Rendering: nový přístup ke statickému obsahu
Jednou z nejzajímavějších myšlenek, které vinext přináší, je koncept takzvaného Traffic-aware Pre-renderingu. Tradiční přístup u statického generování spočívá v tom, že při buildu definujete, které stránky se mají předem vygenerovat. U rozsáhlých webů to může znamenat tisíce až miliony variant, což build výrazně zpomaluje.
Vinext zkouší jiný přístup. Místo toho, aby předem generoval všechno, dokáže při nasazení využít data o skutečném provozu, například analytiky z infrastruktury Cloudflare, a předrenderovat jen ty stránky, které jsou skutečně nejnavštěvovanější. Zbytek se generuje dynamicky podle potřeby a může být následně uložen do cache.
Tento model lépe odpovídá realitě většiny webů, kde malá část obsahu generuje většinu návštěvnosti. Předrenderovat pouze „horké“ stránky znamená kratší build čas, rychlejší deploy a zároveň zachování výhod statického obsahu tam, kde na tom záleží nejvíc.
Pro ukládání a obnovování stránek vinext využívá například KV úložiště v rámci infrastruktury Cloudflare, což umožňuje implementovat něco podobného jako ISR (Incremental Static Regeneration) známé z Next.js, ale optimalizované pro edge prostředí.
Projekt vznikl během týdne. S pomocí AI.
Technologická stránka je jedna věc. Skutečný šok ale přišel ve chvíli, kdy Cloudflare zveřejnil, jak vinext vznikl.
Na vývoji nepracoval velký tým několik měsíců. Projekt byl vytvořen během jediného týdne, a to převážně s pomocí generativní AI. Jeden inženýr vedl vývoj prostřednictvím stovek interakcí s jazykovým modelem, který generoval většinu kódu.
Celkově šlo o více než osm set sessions. Model generoval implementaci jednotlivých částí, testy, úpravy architektury i refaktoring. Vývojář fungoval jako architekt, zadavatel a kontrolor. AI nebyla autonomním tvůrcem, ale nástrojem, který zrychlil realizaci návrhu.
Cloudflare zároveň zdůrazňuje, že projekt prošel poměrně rozsáhlým testováním. Obsahuje tisíce jednotkových testů i stovky end-to-end scénářů. To je důležitý detail – samotné generování kódu AI by nestačilo, pokud by neexistovala robustní testovací síť, která odhalí chyby a regresní problémy.
Zveřejněna byla i přibližná cena za využití modelu během vývoje. Ta se pohybovala okolo $1,100. Z pohledu firmy jde o zanedbatelnou částku vzhledem k tomu, že vznikla funkční alternativní implementace komplexního frameworku.
Slabiny a rizika
Vinext je experiment. To je potřeba opakovat. Není to oficiální náhrada Next.js ani plně vyzrálý produkční framework.
Kompatibilita s každým rohem API Next.js nemusí být stoprocentní. Projekt zatím nemá za sebou roky provozu a ostrého nasazení ve velkých aplikacích. Některé pokročilé scénáře mohou narazit na omezení nebo neimplementované detaily.
Dalším faktorem je budoucnost samotného Next.js. Pokud by se jeho veřejné API výrazně změnilo, vinext by musel reagovat a držet krok. To znamená trvalou údržbu a vývoj, nikoliv jednorázový experiment.
Experiment, který může přerůst ve strategii
Cloudflare zatím prezentuje vinext jako experimentální projekt. I kdyby ale zůstal jen experimentem, už teď splnil důležitou roli. Ukázal, že:
- veřejné API a interní implementace lze oddělit
- moderní build nástroje jako Vite mohou výrazně změnit výkonové charakteristiky frameworku
- AI může dramaticky zrychlit vývoj komplexních systémů
Z širší perspektivy je ale vinext hlavně signálem změny. Nejde jen o rychlejší build nebo menší bundle. Jde o ukázku toho, že způsob, jakým frameworky vznikají a jak se přizpůsobují infrastruktuře, se může zásadně proměnit.
A pokud byl tento projekt skutečně otázkou jednoho týdne, pak je dost možné, že podobných experimentů v blízké budoucnosti uvidíme mnohem víc.