StriveLab
Strony internetowe
Usługi
RealizacjeO mnieBlogPorozmawiajmy
PL
EN

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

StriveLab
Strony internetowe
Usługi
RealizacjeO mnieBlogPorozmawiajmy
PL
EN

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

Astro

Ultraszybkie projekty, łączące lekkość ze skalowalnością.

Next.js

Elastyczne i wydajne narzędzia dla biznesu, które dotrzymają kroku Twojemu rozwojowi.

React

Połączenie intuicyjności z wydajnością, które zapewnia bezproblemową skalowalność kodu.

SEO & Performance

Audyt techniczny i optymalizacja pod kątem SEO i GEO.

Automatyzacja AI

Bezpieczne automatyzacje procesów i agenci AI w n8n, Make i Claude.

QA & Automation

Testy automatyczne komponentów i E2E w Cypress.

Doradztwo produktowe

Połączenie perspektywy produktu, developera i marketingu w jednym miejscu

RealizacjeO mnieBlog
Porozmawiajmy
PL
EN

Nowoczesne strony internetowe dla firm, które myślą odważnie.

Przewiń do góry

Nazwa

StriveLab Maciej Sala

NIP

6772218995

REGON

524008527

E-mail

contact@strivelab.pl

Usługi główne
  • Tworzenie stron internetowych
  • Strony internetowe Next.js
  • Strony internetowe Astro
  • Strony internetowe React
Inne usługi
  • Usługi
  • SEO & Performance Sprint
  • QA & Stabilizacja
  • Konsultacje Product / Delivery
  • Automatyzacja Procesów AI
  • Aplikacje webowe Next.js
  • Współpraca ciągła
Strony
  • O mnie
  • Usługi
  • Realizacje
  • Blog

© 2026 StriveLab.pl

Polityka prywatności
JavaScriptReact

Dlaczego doświadczeni programiści porzucają React na rzecz czystego JS i HTMX

Coraz więcej zespołów wraca do podejścia "web standards first". Zobacz, kiedy vanilla JS i HTMX realnie upraszczają projekt, a kiedy React nadal jest lepszym wyborem.

OpublikujLinkedInFacebookWyślij
Autor
Maciej Sala
Opublikowano
4 sierpnia 2025 13:47
Czytanie
8 min czytania
Aktualizacja
27 maja 2026 08:00

React nie jest zły. Problem w tym, że przestał być wyborem — stał się odruchem. Ten artykuł jest o tym, kiedy ten odruch kosztuje więcej, niż zaoszczędza.

Artykuł w skrócie

  • Framework to decyzja architektoniczna, nie domyślny wybór — React świetnie sprawdza się przy złożonych aplikacjach; dla formularzy i landing page'y to przerost formy nad treścią
  • HTMX przesuwa złożoność, nie usuwa — backend musi umieć renderować fragmenty HTML; proste interakcje zyskują, bogaty stan klienta traci
  • Web standards dojrzały — natywny fetch, moduły ES, querySelector, Web Components — modern vanilla JS to nie jQuery, tylko prostsze narzędzie do prostszych problemów
  • Hybryda często wygrywa — serwer renderuje HTML, HTMX obsługuje interakcje, React trafia tylko tam, gdzie faktycznie potrzeba bogatego stanu
  • Utrzymanie ma cenę — Virtual DOM, hooks, hydration, state management: każda abstrakcja to model mentalny, który zespół nosi ze sobą przez cały cykl życia projektu

Seniorzy nie uciekają z Reacta. Zaczęli zadawać pytanie, którego przez lata nie zadawali: czy ten konkretny problem rzeczywiście wymaga pełnego frameworka SPA (Single Page Application) to aplikacja webowa, w której cała strona renderuje się i działa po stronie przeglądarki w jednym dokumencie HTML — typowe podejście Reacta, Vue czy Angulara bez SSR.?

React nadal jest jednym z najważniejszych narzędzi frontendu. Zmiana polega na tym, że doświadczone zespoły przestały traktować go jako domyślną odpowiedź na każde pytanie.

Syndrom "wszystko w React"

Klasyczny problem to przyzwyczajenie. Developer uczy się jednej technologii, w tym wypadku Reacta, a potem używa go do wszystkiego - naginając jego zastosowania z powodu wygody. Landing page? React. Blog firmowy? React. Formularz kontaktowy? React + React Hook Form + Zod + Server Actions.

Efekt takiego postępowania:

  • 200 KB JavaScript dla strony z trzema sekcjami,
  • Hydration to etap, w którym React podłącza logikę JavaScript do już wygenerowanego HTML-a w przeglądarce. delay na wolniejszych urządzeniach,
  • Skomplikowany build pipeline dla prostego projektu,
  • Czas developmentu 3× dłuższy niż jest to potrzebne.

Framework stał się odruchem zamiast decyzją. Senior developerzy, którzy pamiętają czasy przed React, znają koszt tego odruchu z doświadczenia.

Co oferuje HTMX?

HTMX to lekka biblioteka, która pozwala tworzyć dynamiczne interfejsy za pomocą atrybutów HTML:

Code
<!-- Ładowanie treści bez pełnego przeładowania -->
<button hx-get="/api/users" hx-target="#user-list">Załaduj użytkowników</button>
 
<div id="user-list">
  <!-- Tu pojawi się odpowiedź -->
</div>
Code
<!-- Formularz z AJAX submit -->
<form hx-post="/api/contact" hx-swap="outerHTML">
  <input name="email" type="email" required />
  <textarea name="message" required></textarea>
  <button type="submit">Wyślij</button>
</form>
Code
<!-- Infinite scroll -->
<div hx-get="/api/posts?page=2" hx-trigger="revealed" hx-swap="afterend">
  Ładowanie...
</div>

W najprostszym wariancie nie musisz pisać własnego JavaScriptu do obsługi requestu, podmiany fragmentu DOM i podstawowych interakcji. Serwer zwraca HTML, a HTMX wstawia go w odpowiednie miejsce.

HTMX nie jest "Reactem, tylko prostszym". To podejście HTML-over-the-wire to architektura, w której serwer zwraca gotowy HTML zamiast JSON — przeglądarka podmienia fragmenty DOM bez warstwy renderowania po stronie klienta.: więcej logiki wraca na serwer, frontend staje się cieńszą warstwą interakcji. Dla jednych projektów — ogromna zaleta. Dla innych — twarde ograniczenie.

Czego HTMX nie robi za Ciebie

Ten fragment najczęściej ginie w entuzjastycznych dyskusjach. HTMX upraszcza wiele rzeczy po stronie klienta, ale złożoność z projektu nie znika — przesuwa się na serwer.

Realne koszty tego przesunięcia:

  • backend musi umieć renderować sensowne fragmenty HTML, nie tylko zwracać JSON
  • złożony stan klienta, optimistic UI i rozbudowane interakcje są trudniejsze niż w React
  • im więcej dynamicznych sekcji, tym ważniejsza dyscyplina w nazewnictwie endpointów i fragmentów
  • testy E2E i kontrakty frontend–backend nadal są potrzebne — mają tylko inną formę

HTMX wygrywa tam, gdzie interakcja jest głównie serwerowa: formularze, filtry, infinite scroll, paginacja, podmiana sekcji. Gdy interfejs zaczyna żyć własnym życiem po stronie klienta, przewaga szybko maleje.

Argumenty "pro-vanilla"

1. Przeglądarki się rozwinęły

W 2015 React rozwiązywał realne problemy:

  • Brak modułów ES — teraz mamy import/export natywnie
  • Brak fetch — teraz jest wbudowany
  • Brak template literals — teraz są standardem
  • Słabe DOM API, czyli Application Programming Interface, definiuje sposób komunikacji między aplikacjami lub modułami. Tu chodzi o konwencje plików Next.js, które zamieniają eksportowaną funkcję w gotowy plik sitemap.xml lub robots.txt. — teraz mamy querySelector, dataset, classList
  • Brak komponentów — teraz mamy Web Components
Code
// Nowoczesny vanilla JS — całkiem znośny
class UserCard extends HTMLElement {
  connectedCallback() {
    const name = this.getAttribute('name')
    this.innerHTML = `
      <div class="card">
        <h2>${name}</h2>
        <slot></slot>
      </div>
    `
  }
}
 
customElements.define('user-card', UserCard)
Code
<user-card name="Jan Kowalski">
  <p>Frontend Developer</p>
</user-card>

2. Mniejsza złożoność = mniej bugów

React wprowadza abstrakcje:

  • Virtual DOM
  • Hooks i ich reguły
  • State management (Context, Redux, Zustand...)
  • Hydration mismatch
  • useEffect cleanup hell

Każda abstrakcja to model mentalny, który zespół nosi przez cały cykl życia projektu. Przy prostych stronach i formularzach ten koszt łatwo przewyższa korzyści.

Code
// React: 15 linii, wymaga zrozumienia hooków
function Counter() {
  const [count, setCount] = useState(0)
 
  useEffect(() => {
    document.title = `Count: ${count}`
    return () => {
      document.title = 'App'
    }
  }, [count])
 
  return <button onClick={() => setCount((c) => c + 1)}>{count}</button>
}
Code
// Vanilla: 8 linii, zero dodatkowych abstrakcji
const button = document.querySelector('#counter')
let count = 0
 
button.addEventListener('click', () => {
  count++
  button.textContent = count
  document.title = `Count: ${count}`
})

To porównanie jest celowo uproszczone. W prawdziwej aplikacji React daje przewidywalny model komponentów, aktualizacji UI i współdzielonego stanu. Przy małej skali ten narzut potrafi być nieproporcjonalny do problemu — i to jest właśnie punkt.

3. Performance by default

React i aplikacje SPA często muszą wykonać pracę, której prosty serwer-renderowany interfejs nie potrzebuje:

  • Diffing Virtual DOM
  • Reconciliation
  • Hydration po SSR, czyli Server-Side Rendering, to generowanie HTML na serwerze przy żądaniu — komponent client:only je pomija i renderuje się wyłącznie w przeglądarce.
  • Re-renders (nawet z React Compiler)

React nie jest z definicji wolny, a HTMX z definicji szybki. Dobrze zbudowany Next.js osiąga świetne wyniki, a źle zaprojektowany HTMX może generować lawinę requestów i dusić serwer. Różnica tkwi w punkcie startowym: prosty HTML z minimalnym JS łatwiej uczynić szybkim niż bogatą aplikację klientową.

4. SEO bez gimnastyki

Jeśli budujesz SPA renderowane głównie po stronie klienta, faktycznie musisz bardziej pilnować renderowania pod SEO, czyli Search Engine Optimization, to optymalizacja strony pod widoczność w wynikach wyszukiwania.. Dlatego w ekosystemie React tak popularne są rozwiązania typu Next.js, SSR, SSG (Static Site Generation) to generowanie kompletnego HTML podczas budowania strony. Gotowe pliki serwujesz z CDN bez renderowania na żądanie — najszybszy i najtańszy model dla treści, która nie zmienia się przy każdej wizycie. i route-level rendering.

Przy HTMX i klasycznym renderowaniu po stronie serwera punkt startowy jest prostszy: Google od razu dostaje HTML z treścią. To nie zwalnia z dbania o Core Web Vitals ani strukturę dokumentu, ale zmniejsza liczbę warstw, które mogą przeszkodzić.

Argumenty "pro-React"

React ma swoje miejsce — i jest ono duże:

Złożone UI z dużą ilością stanu

Aplikacje typu Figma, Notion, Google Docs — gdzie interakcje są skomplikowane i stan jest rozproszony. Tu React błyszczy.

Duże zespoły

React wymusza strukturę. Komponenty, props, jednokierunkowy przepływ danych — to pomaga utrzymać porządek w dużych projektach.

Ekosystem

Potrzebujesz date pickera, drag & drop, rich text editora? W React znajdziesz 10 gotowych bibliotek. W vanilla JS musisz więcej robić sam.

Rekrutacja

Znajdziesz 100 React developerów na każdego, kto zna HTMX. To ma znaczenie dla firm.

Narzędzia full-stack i ekosystem React

W praktyce React to dziś nie tylko biblioteka do widoków. To też ogromny ekosystem wokół routingu, renderowania po stronie serwera, design systemów, testów, formularzy i komponentów UI. W wielu produktach to przewaga nie do pobicia.

Trzecia droga: podejście hybrydowe

Najlepsza odpowiedź rzadko brzmi "100% React" albo "100% HTMX". W większości realnych projektów wygrywa układ mieszany:

  • serwer renderuje większość HTML
  • HTMX albo zwykły JS obsługują proste interakcje
  • React trafia tylko tam, gdzie faktycznie potrzeba bogatego stanu i złożonego UI

Strona marketingowa może być statyczna, mieć formularz newslettera na HTMX i jeden interaktywny konfigurator w React. Taki układ daje lepszy kompromis niż wtłaczanie całego projektu w jeden paradygmat.

Dokładnie ten model formalizuje Astro — framework zbudowany wokół Islands Architecture to wzorzec, w którym większość strony pozostaje statycznym HTML-em, a tylko wybrane interaktywne fragmenty są hydratowane w przeglądarce.. Domyślnie generuje czysty HTML bez żadnego JavaScriptu po stronie klienta. React, Vue czy Svelte wchodzą tylko jako "wyspy" — tylko tam, gdzie interaktywność jest faktycznie potrzebna. To architektonicznie najbliższy sąsiad idei HTMX w świecie nowoczesnych frameworków.

Kiedy vanilla/HTMX ma sens?

ProjektReact?Vanilla/HTMX?
Landing page❌ Overkill✅ Idealny
Blog / CMS, czyli Content Management System, to system do zarządzania treścią bez ręcznej edycji kodu.❌ Overkill✅ Idealny
Formularz kontaktowy❌ Overkill✅ Idealny
Dashboard z wykresami⚠️ Zależy⚠️ Zależy
Aplikacja SaaS✅ Dobry wybór❌ Może być trudne
Real-time collaboration✅ Świetny wybór❌ Nie do tego
E-commerce (prosty)⚠️ Zależy✅ HTMX + Alpine
E-commerce (złożony)✅ Dobry wybór❌ Za mało
Blog / strona statyczna❌ Overkill✅ Astro + HTMX

Przed wyborem HTMX albo vanilla JS trzy pytania decyzyjne:

  • Czy backend może renderować fragmenty HTML, nie tylko JSON?
  • Czy interakcje to głównie formularze, filtry, taby i podmiana sekcji?
  • Czy zespół akceptuje prostszy frontend kosztem większej odpowiedzialności po stronie serwera?

Trzy razy "tak" — HTMX ma sens. Aplikacja żyje po stronie klienta z dużym lokalnym stanem — React pozostaje naturalnym wyborem.

Mój stack dla prostych projektów

Dla landing page'y, blogów i prostych stron często wystarcza mi:

Code
Astro + Tailwind CSS + HTMX + Alpine.js (opcjonalnie)
  • Astro — statyczny HTML z zerowym JS by default; React/Vue trafia tylko jako wyspa
  • Tailwind — style bez osobnych plików CSS dla każdego komponentu
  • HTMX — dynamiczne ładowanie, formularze
  • Alpine.js — drobne interakcje (dropdown, modal)

Astro rozwiązuje jeden z problemów czystego HTML+HTMX: daje normalny model komponentów, routing i wsparcie dla szablonów — bez pakowania całego SPA do przeglądarki. To naturalne środowisko dla podejścia "web standards first".

Przykład: prosty newsletter form

Code
<form hx-post="/api/subscribe" hx-swap="outerHTML" class="flex gap-2">
  <input
    type="email"
    name="email"
    required
    class="flex-1 rounded border px-4 py-2"
    placeholder="Twój email"
  />
  <button type="submit" class="rounded bg-blue-600 px-6 py-2 text-white">
    Zapisz się
  </button>
</form>

Serwer zwraca:

Code
<p class="text-green-600">✓ Zapisano! Sprawdź swoją skrzynkę.</p>
Uwaga

Prostszy frontend nie zwalnia z odpowiedzialności po stronie serwera: walidacja danych wejściowych, obsługa błędów, ochrona CSRF, czyli Cross-Site Request Forgery, to atak, w którym strona napastnika wysyła żądanie do aplikacji w imieniu zalogowanego użytkownika, wykorzystując jego ciasteczko sesji. i dostępność są wymagane niezależnie od stacku.

Jeśli jeden fragment produktu urośnie ponad ten model, wydziel tam osobny island z Reactem. To nie musi być decyzja zero-jedynkowa dla całego projektu.

React jest zły?

Nie. React jest świetny do tego, do czego powstał: złożonych, interaktywnych aplikacji z dużą ilością stanu.

Problem zaczyna się, gdy framework staje się odruchem zamiast decyzją. Blog firmowy nie potrzebuje Virtual DOM. Landing page nie potrzebuje hydration. Formularz kontaktowy nie potrzebuje klientowego state management.

Trend "web standards first"

Dane z 2025 roku pokazują powrót do pytania: "Czy mogę to zrobić bez frameworka?"

Nie z powodu puryzmu — z powodu kosztów:

  • Mniej zależności = mniej luk bezpieczeństwa
  • Mniej abstrakcji = łatwiejszy debugging
  • Mniejszy bundle = szybsza strona
  • Prostszy stack = niższy koszt utrzymania

Seniorzy, którzy spędzili lata walcząc z konfiguracją builda, hydration issues i nadmiarem abstrakcji, doceniają prostotę nie dlatego, że są antyframeworkowi. Dlatego, że znają koszt źle dobranego narzędzia — z pierwszej ręki.

Werdykt Labu

React nie umiera, ale stosowanie jednego frameworka do wszystkiego, przestaje być obowiązującym trendem.

Dla prostych stron Astro, vanilla JS, HTMX i Alpine.js wystarczają i dają mniejszy bundle, prostszy debugger i niższy koszt utrzymania. Dla złożonych aplikacji React, Vue i Svelte nadal mają mocny sens — strukturyzują pracę dużych zespołów i dają ekosystem gotowych rozwiązań. Dla większości realnych projektów wygrywa hybryda: Astro generuje statyczny HTML, HTMX obsługuje interakcje, React wchodzi jako wyspa tam gdzie faktycznie trzeba.

Wybór narzędzia powinien wynikać z charakteru produktu, zespołu i backendu — nie z przyzwyczajenia. Zadaj sobie przed startem projektu jedno pytanie: "Czy naprawdę potrzebuję SPA?" Jeśli nie masz przekonującej odpowiedzi — masz już odpowiedź.

ŹródłaZweryfikowano: 31 maja 2026

Dokumentacja HTMX, React i materiały o podejściu web-standards-first zweryfikowane podczas redakcji artykułu.

  • HTMX — Documentation
  • htmx — Essays (m.in. „Hypermedia-Driven Applications")
  • React — Start a New React Project
  • Astro — Islands architecture

Więcej o nowoczesnym JavaScript: praktyczne wzorce czytelniejszego kodu.

  • Syndrom "wszystko w React"1 min
  • Co oferuje HTMX?1 min
  • Czego HTMX nie robi za Ciebie1 min
  • Argumenty "pro-vanilla"2 min
  • Argumenty "pro-React"1 min
  • Trzecia droga: podejście hybrydowe1 min
  • Kiedy vanilla/HTMX ma sens?1 min
  • Mój stack dla prostych projektów1 min
  • React jest zły?1 min
  • Trend "web standards first"1 min
  • Werdykt Labu1 min

Często zadawane pytania

Maciej Sala

O autorze

Maciej Sala

Maciej Sala — Product Manager i Frontend Developer z bogatym doświadczeniem w marketingu internetowym oraz SEO. Na co dzień pracuje z Reactem, Next.js i TypeScriptem, a ostatnio także z Astro i narzędziami do automatyzacji procesów AI. Sprawnie łączy perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat był związany z branżą gier wideo jako project manager i game designer. Absolwent historii na Uniwersytecie Jagiellońskim oraz studiów podyplomowych z marketingu internetowego na AGH w Krakowie. Po godzinach trenuje na siłowni, maluje figurki i rozwija własne projekty side-projecty.

Moje artykułyWięcej o mnie

Pomagam przekładać takie tematy na konkretne wdrożenia w frontendzie, SEO, analityce i procesie produktowym.

Skontaktuj się ze mną

Biblioteka wiedzy

Czytaj dalej

Zobacz więcej wpisów
Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry
Architektura wysp w Astro — czym są wyspy i dlaczego zero JS domyślnie zmienia zasady gry

Architektura wysp to fundament Astro. Wyjaśniam, czym są wyspy, jak działa selektywna hydratacja, kiedy daje realną przewagę i gdzie jest jej granica — z przykładami kodu i benchmarkami.

Maciej Sala

Maciej Sala

Founder Strivelab

24 kwietnia 2026
Astro.js vs Next.js w 2026 — kompleksowe porównanie frameworków
Astro.js vs Next.js w 2026 — kompleksowe porównanie frameworków

Porównanie Astro 6 i Next.js 16 z perspektywy wdrożeń: architektura, JavaScript po stronie klienta, SEO, DX, hosting i konkretne przypadki użycia.

Maciej Sala

Maciej Sala

Founder Strivelab

15 kwietnia 2026
Wieloframeworkowa architektura wysp w Astro: React, Vue i Svelte w jednym projekcie
Wieloframeworkowa architektura wysp w Astro: React, Vue i Svelte w jednym projekcie

Jak Astro pozwala łączyć React, Vue i Svelte przez wyspy komponentów: dyrektywy client:load, client:idle, client:visible, koszty runtime, ograniczenia i scenariusze enterprise.

Maciej Sala

Maciej Sala

Founder Strivelab

18 maja 2026
Poprzedni wpisBackend dla frontendowca: cache, deployment i bezpieczeństwoTrzecia część serii Backend dla frontendowca: Redis, HTTP cache, kolejki, file storage, deployment, CI/CD, monitoring, OWASP, rate limiting i RODO.
Maciej Sala

Maciej Sala

Founder Strivelab

30 lipca 2025
Następny wpisClaude vs ChatGPT vs Gemini — porównanie dla deweloperówPraktyczne porównanie Claude, ChatGPT i Gemini z perspektywy dewelopera. Kodowanie, analiza, API, prywatność i workflow — kiedy które narzędzie ma sens.
Maciej Sala

Maciej Sala

Founder Strivelab

12 sierpnia 2025