
Náš komunitní web engineeringleaders.io běžel roky na Wixu a většinu té doby to byla správná volba: kdo staví komunitu, nemá volné večery na CSS. Špatná volba se z toho stala v okamžiku, kdy nám začalo záležet na rychlosti, vyhledávání a na tom, abychom vlastnili svůj markup.
Tak jsem na to nasadil coding agenta. Osm aktivních dní, 118 commitů, a 4. srpna 2026 se doména přepnula z Wixu na Astro na Cloudflare Workers. Výsledek si můžeš prohlédnout sám; je to ten web, který právě teď běží, v angličtině i češtině.
Titulková čísla přišla až potom: mobilní PageSpeed 78 → 96, LCP 3,8 s → 2,4 s, CLS 0, a nové měření v PageSpeed Insights 8. listopadu 2026 ukázalo stejných 96, 2,4 s a 0. Největší výhru přinesl nudný průchod přes média. První audit po cutoveru naměřil na homepage 39,7 MB, protože šest dekorativních gradientních PNG obcházelo obrazovou pipeline Astra; jedno z nich kleslo ze 7,66 MB na 460 KB. Hero video bylo LCP prvkem, takže se teď načítá až po stránce a jeho místo zabírá poster o 24 KB.
Ale psát stojí za to hlavně o tom, co agent udělal špatně, protože přesně tenhle seznam budeš potřebovat, jestli to zkusíš taky.
Měření poráží koukání
Naivní způsob, jak naklonovat web, jsou screenshoty: vyrenderuj obojí, porovnej, opakuj. Selhává pomalu, protože screenshot ti řekne, že něco nesedí, ale už ne, která ze čtyřiceti zúčastněných CSS vlastností je ta vinná.

Fungoval postup code-first. Agent čte vyrenderovaný DOM a computed styles živé stránky po
sekcích a staví z těch čísel. Fonty to dokázaly hned první den. Sken surového HTML tvrdil,
že web používá Helvetica Neue a Poppins, a já už měl skousnuté licenční riziko nákupu
Helvetiky. Pak getComputedStyle přes všechny vyrenderované elementy našel nula
elementů, které by kterýkoli z těch fontů používaly. Wix posílá na každý web 56 nepoužitých
@font-face pravidel; fonty, které se opravdu kreslily, byly Inter a Lora, zdarma k
self-hostování, vytažené z Wixového CDN. Markup lhal a měření ušetřilo reálné peníze.

Animace, stejný příběh. Plán z markupu odhadl „350+ motion direktiv”.
document.getAnimations() našel 152 skutečných animačních objektů a 49 z nich byl identický
1200 ms opacity fade. Samostatná kontrola scroll delty přes 55 elementů vyloučila parallax
úplně. Přestavěli jsme to, co běží, ne to, co tvrdily atributy.
9 bugů, které moje review stejně našlo
Než jsem se podíval já, proběhly tři automatické verifikační průchody: side-by-side proscrollování, audit typografie přes šest computed vlastností na každou textovou roli a extrakce animací. Můj vlastní průchod stejně našel 9 reálných nedodělků. Ty opakující se:

- Karusel zploštělý do statické mřížky, protože jeho šipky existují jen na hover a statický sken DOMu hlásil „žádné ovládací prvky”.
- Fotky speakerů oříznuté do kruhů tam, kde originál používal landscape pilulky.
- Přeškrtnutá cena bez
line-through, stejná barva, jiný význam. - Nadpis stažený na 760 px, který měl mít 960 px, protože agent recykloval naměřenou šířku sousedního elementu.
- Pozadí, které bylo skutečný
<img>se zlatým gradientem, ne CSS, takže se nikdy nepřestavělo.
Každý z nich se stal pojmenovanou kontrolou v playbooku. A to je část, kterou bych hájil nejtvrději: migrační metoda má přesně takovou hodnotu, jak dlouhý je její zdokumentovaný seznam předchozích selhání.
Část, kterou za tebe agent nerozhodne
Agent umí web přestavět. Neumí rozhodnout, kdy se přepne tvoje živá doména, a ani by neměl. Běh držel všech 8 dní tři tvrdé hranice:
- Produkční canonicals v markupu od prvního dne, takže cutover nepotřeboval jedinou úpravu.
- Staging doména s noindexem, takže přestavba nemohla konkurovat živému webu ve vyhledávání.
- Etapovitý, vratný cutover: redirect mapa o 76 pravidlech pokrývající všech 32 starých Wix slugů eventů, a předplatné Wixu zaplacené dál jako rollback plán.
Jeden dovětek mě překvapil nejvíc: pár týdnů po cutoveru ukázal audit AI viditelnosti, že doména vracela chybu na 54 % requestů od AI crawlerů (ChatGPT, Perplexity a spol.), zatímco robots.txt je všechny zdvořile pouštěl dovnitř. Soubor je politika; edge je zákon. Opravili jsme edge, přejeli crawler matici znovu na samé dvoustovky a i tahle kontrola je teď součástí metody.
Druhá migrace, elc-conference.io, měla v Lighthouse 100/100/100, a přesto jsme v říjnu při srovnání s originálem našli deset rozdílů po sekcích: chybějící galerii se 40 fotkami, chybějící mapu místa konání a stěnu log se čtyřmi sloupci místo pěti. Playbook teď obsahuje motion probe, který vypíše každý prvek, jenž se hýbe při scrollu, a kontrolu parity sekci po sekci.
Celý playbook je veřejný pod MIT licencí, včetně verifikačních průchodů a cutover checklistu: github.com/marian-kamenistak/wix-to-astro. Leží spolu se zbytkem mých agentích nástrojů na stránce AI coaching tools.
Jestli firemní web vězí na page builderu a bloker zní „nemáme frontend kapacitu”, tak je ten bloker dnes menší než před rokem.


