Zrychlení o vteřinu: Proč jsem opustil Next.js a přešel na Astro

Zrychlení o vteřinu: Proč jsem opustil Next.js a přešel na Astro


Nová práce si vyžádala i změnu webových stránek. A jelikož jsem stejně měnil i design, přešel jsem na Astro.

Zrychlení o vteřinu: Proč jsem opustil Next.js a přešel na Astro (a jak mi v tom pomohl Svelte)

Vždy jsem byl fanouškem optimalizace a rychlosti webu. Proto jsem nedávno udělal poměrně zásadní krok: přepsal jsem svůj osobní web z Next.js na Astro. A musím říct, že výsledek předčil má očekávání – můj web se v PageSpeed Insights zlepšil o celou vteřinu v načítání klíčových metrik!

Co je Framework a co řeší Next.js a Astro?

Pro začátek, framework je sada nástrojů, knihoven a konvencí, která nám webovým vývojářům usnadňuje a zrychluje práci při stavění komplexních aplikací. Nejde jen o psaní kódu, ale i o routing, správu stavu nebo generování stránek. Next.js je zavedený framework postavený nad Reactem, který je ideální pro plnohodnotné, serverem renderované aplikace (Full-stack), kde potřebujete dynamiku a API. Naproti tomu Astro je novější, moderní framework zaměřený primárně na rychlost a statické generování (SSG), který vám umožňuje použít komponenty z různých knihoven (React, Svelte, Vue) a posílá do prohlížeče jen nezbytně nutný JavaScript.

Proč ta změna? Next.js vs. Astro

Next.js je fantastický framework, o tom žádná. Je to robustní, plnohodnotné řešení se skvělým routingem a silným ekosystémem, ideální pro velké, dynamické aplikace a e-shopy. Ale pro můj jednoduchý, obsahově zaměřený blog, který nepotřebuje serverové funkce pro každou stránku, mi Next.js začal připadat jako těžká váha.

A tady přichází na scénu Astro. Astro je “framework pro obsahově bohaté weby”, jehož filozofie je jednoduchá: Odesílat co nejméně JavaScriptu do prohlížeče.

VlastnostNext.js (výchozí)Astro
PřístupFull-stack (SSR/SSG/ISR/CSR)Zaměření na obsah (Statický/Hybridní)
Základní filozofiePoslat JS pro interaktivitu a hydrataciVytvořit statické HTML, JS jen pro interaktivitu
Výkon (JS)Posílá se více JS pro hydrataci celé stránkyAstro Islands: Posílá JS jen pro interaktivní části
KompatibilitaPrimárně ReactNativně podporuje React, Svelte, Vue, Lit, atd.

Pro můj statický blog bylo klíčové to, že Astro generuje čisté, rychlé HTML, a JavaScript používá jen tam, kde je to nezbytně nutné. To je ta kouzelná technika Astro Islands, díky které se načítání razantně zrychlilo.

Svelte, nová práce a Astro

Nedávno jsem začal pracovat u společnosti Fastest a tam se primárně zaměřujeme na Svelte. Tato zkušenost mi celou migraci do Astra nesmírně usnadnila.

Astro komponenty mi syntakticky přišly okamžitě povědomé. Jsou psané ve formátu *.astro a jejich struktura je velmi intuitivní. Ale to hlavní: Svelte komponenty jsou plně kompatibilní s Astrem! Mohl jsem vzít existující Svelte komponenty z jiných projektů a vložit je přímo do svého Astro webu. Žádné zbytečné React wrapperování.

Tato interoperabilita mi potvrdila, že Astro je skutečně framework pro všechny – umožňuje mi používat to nejlepší z různých světů, a to bez zbytečné režie.

Závěr: Rychlost mluví za vše

Když jsem porovnal skóre PageSpeed Insights před a po migraci, rozdíl byl ohromující. Ta jedna vteřina, kterou jsem ušetřil na klíčových metrikách, je hmatatelná. Znamená to lepší UX pro uživatele, lepší SEO a prostě čistou radost z rychlého webu.

Pokud stavíte blog, dokumentaci nebo marketingovou stránku, kde je obsah král a rychlost je prioritou, moje doporučení je jasné: Dejte šanci Astru. Ulehčí vám život a vaši uživatelé vám poděkují za bleskové načítání.