Przejdź do treści

18 artykułów o tematyce DevOpsStrona 2

18 artykułów to nie koniec. Ich ilość ciągle rośnie.

Jak monitorować aplikację Next.js na produkcji

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

Maciej Sala

Founder StriveLab

Wybór hostingu dla Next.js między Vercel, Coolify i VPS

Next.js można wdrożyć na wiele sposobów, takich jak statyczny eksport, tradycyjny serwer Node.js, kontener Docker czy aplikacja na platformie zarządzanej. Prawdziwy dylemat przy wyborze hostingu nie polega na tym, czy sam framework poprawnie zadziała, lecz na tym, kto przejmie odpowiedzialność za wdrożenia, zarządzanie pamięcią podręczną, skalowanie, bezpieczeństwo, koszty oraz przetwarzanie danych.

Maciej Sala

Maciej Sala

Founder StriveLab

Jak automatycznie generować grafiki Open Graph w Next.js?

Gdy udostępniasz link do artykułu na LinkedIn, zamiast generycznego szarego pola lub logo strony, obok może pojawić się estetyczna grafika z tytułem, autorem i brandingiem. Ta różnica znacząco wpływa na klikalność, a ręczne przygotowywanie takich obrazów jest przesadnie czasochłoenne. Funkcja ImageResponse z biblioteki next/og rozwiązuje ten problem, generując dynamiczne obrazy programowo na podstawie danych z Twojej strony.

Maciej Sala

Maciej Sala

Founder StriveLab

Rate limiting na Edge w Next.js z Upstash

Jeden bot, jedna pętla z błędem albo jeden zdeterminowany atakujący — i Twoje API dostaje tysiące żądań na minutę. Serwer się dławi, rachunek za infrastrukturę rośnie, a normalni użytkownicy widzą błędy. Rate limiting ogranicza liczbę żądań z jednego źródła w oknie czasu. Pokazuję, jak wdrożyć go w Next.js z Upstash Redis — w Proxy, Route Handlerach i Server Actions, z trzema algorytmami i limitami per endpoint. W Next.js 16 proxy.ts działa jednak w Node.js, więc „na Edge” dotyczy Route Handlera z Edge Runtime albo infrastruktury dostawcy, nie samej konwencji Proxy.

Maciej Sala

Maciej Sala

Founder StriveLab

Edge Runtime w Next.js — kiedy Edge, a kiedy Node?

Edge Runtime obiecuje błyskawiczne działanie kodu tuż przy użytkowniku. To ultralekkie środowisko, oparte na V8 Isolates i na Vercel rozproszone globalnie. Startuje szybko, bo nie wymaga uruchamiania typowego kontenera funkcji, lecz sama bliskość użytkownika nie gwarantuje krótszej odpowiedzi. Jeśli baza stoi po drugiej stronie oceanu, Edge jedynie przenosi opóźnienie na kolejne połączenie. W Next.js 16 automatyczny wybór Edge może więc okazać się strategicznym błędem.

Maciej Sala

Maciej Sala

Founder StriveLab

Middleware w Next.js — 7 zastosowań i typowych pułapek

Większość deweloperów może kojarzyć middleware w Next.js ze sprawdzaniem, czy użytkownik jest zalogowany, podczas gdy dla żądań objętych matcherem może ono podjąć decyzję jeszcze przed routingiem: przypisać wariant eksperymentu, zastosować limit, wykonać rewrite albo dodać zależny od requestu nagłówek. W artykule chciałem omówić siedem optymalnych i bezpiecznych zastosowań Proxy.

Maciej Sala

Maciej Sala

Founder StriveLab

CI/CD dla Next.js z użyciem GitHub Actions

Wypychasz kod, który u Ciebie działał, a produkcja i tak się sypie, bo pominięto testy lub build wykonano lokalnie. CI/CD sprawnie eliminuje ten problem, uruchamiając automatyczny pipeline przy każdym pushu. Continuous Integration dba przy tym o kompilację i testy, a Continuous Deployment dostarcza gotową aplikację na serwer bez ręcznego klikania.

Maciej Sala

Maciej Sala

Founder StriveLab

Testy E2E Cypress w Next.js App Router i GitHub Actions

Stabilność zestawu testów E2E nie zależy od ich liczby, lecz od świadomego wyznaczenia granic. W architekturze Next.js App Router zadania rozdzielają się między przeglądarkę, proces serwera Next.js oraz bazę danych. W związku z tym, że Cypress inaczej interpretuje każdą z tych warstw, nieprzemyślane użycie cy.intercept może zamienić kompleksowy test systemu w płytki test samego interfejsu.

Maciej Sala

Maciej Sala

Founder StriveLab