Każdy kilobajt JavaScript, który wysyłasz do przeglądarki, musi być: pobrany transfer , sparsowany CPU , wykonany CPU i utrzymany w pamięci RAM . Na wolnej sieci i budżetowym telefonie setki kilobajtów JavaScriptu mogą opóźnić interakcję o kilka sekund.
Maciej Sala
Founder StriveLab
Samodzielnie hostowany Next.js na VPS daje kontrolę nad kosztami i konfiguracją, ale też zrzuca na nas odpowiedzialność za DNS, TLS, cache, ochronę przed atakami i prawdziwe IP klienta w logach. Cloudflare może stanąć przed Twoim serwerem jako bezpłatna warstwa CDN, SSL i podstawowej ochrony DDoS, o ile nie zaczniesz mechanicznie cachować całej aplikacji.
Maciej Sala
Founder StriveLab
Bez monitoringu nie wiesz, co faktycznie dzieje się u użytkowników. Nie masz pojęcia, czy na telefonach sypią się błędy JavaScript, czy Server Actions padają po cichu, jak długo realnie ładują się strony i czy API radzi sobie z obciążeniem. Dopóki ktoś nie zgłosi awarii, żyjesz w złudnym przekonaniu, że wszystko działa poprawnie.
Maciej Sala
Founder StriveLab
Mamy tu typową stronę usługową zbudowaną w Next.js, wyposażoną w Google Analytics, Google Tag Manager , prosty formularz kontaktowy, galerię zdjęć i animacje. Na początku testy PageSpeed Insights pokazały wyniki: 67/100 na urządzeniach mobilnych i 89/100 na komputerach stacjonarnych.
Maciej Sala
Founder StriveLab
Animacje bez wątpienia poprawiają doświadczenia użytkownika, ponieważ dostarczają natychmiastowego feedbacku, kierują wzrok i sprawiają, że interfejs wydaje się bardziej responsywny. Z drugiej strony, nieprawidłowo zaimplementowane animacje potrafią mocno zaszkodzić wskaźnikom Core Web Vitals. Nadmiarowy kod JavaScript obciąża LCP, animowanie właściwości layoutowych takich jak top , left , width czy height wywołuje kosztowne operacje układu powodujące przesunięcia, a skomplikowane kalkulacje wykonywane w każdej klatce drastycznie obniżają płynność i pogarszają INP.
Maciej Sala
Founder StriveLab
Przez lata rendering w Next.js stawiał nas przed skrajnym wyborem: cała strona była albo w pełni statyczna, albo w pełni dynamiczna. Partial Prerendering PPR przełamuje ten podział, sprawiając, że wstępnie wyrenderowana powłoka pojawia się natychmiast, podczas gdy dynamiczne fragmenty są strumieniowane w tle. W Next.js 16 mechanizm ten ewoluował w stronę Cache Components. Zobacz, w jakich sytuacjach rozwiązanie realnie przyspiesza aplikację, a kiedy staje się głównie niepotrzebną komplikacją.
Maciej Sala
Founder StriveLab
Obrazy są najcięższym bagażem większości stron internetowych. W skrajnych przypadkach, jedno niezoptymalizowane zdjęcie potrafi dorzucić kilka sekund do LCP, a brak zarezerwowanego miejsca rozjeżdża layout. Next.js daje gotowe narzędzie, next/image , ale to nie zawsze będzie to najlepszy wybór, dlatego porównuję trzy podejścia: komponent next/image , natywny srcset i dedykowane CDN do obrazów.
Maciej Sala
Founder StriveLab
Jedno wolne zapytanie do bazy potrafi zatrzymać całą stronę, jeśli nie wydzielisz go odpowiednią granicą. Bez streamingu serwer czeka na dane potrzebne do pełnego HTML-u i dopiero wtedy kończy odpowiedź. Streaming pozwala wcześniej pokazać gotową część oraz fallbacki, a wolniejsze fragmenty dosłać później. Nie przyspiesza samego zapytania, ale poprawia sposób dostarczania i odczuwania strony.
Maciej Sala
Founder StriveLab
Edge Runtime obiecuje błyskawiczne działanie kodu tuż przy użytkowniku. To ultralekkie środowisko, oparte na V8 Isolates i rozproszone globalnie, eliminuje cold start , bo nie wymaga rozgrzewania ciężkich maszyn wirtualnych. Przez lata wydawało się to jedynym słusznym kierunkiem, ale dzisiaj jednak, w Next.js 16, automatyczny wybór Edge może okazać się strategicznym błędem.