AI i Automatyzacje

Chcesz zbudować własną aplikację webową, sam albo z pomocą AI, i nie wiesz, czy brać React, Vue, Angular, Svelte, czy może zostać przy czystym JavaScripcie. Porównujemy je pod kątem rzeczy, które boli się odkryć po roku: ludzi do znalezienia, utrzymania, telefonu, jakości kodu od AI i gotowych komponentów. Na końcu opisujemy własny przypadek: aplikację, która urosła do 8000 linii w jednym pliku bez frameworka.
Pytanie „jaki framework” wraca do nas co kilka tygodni, od founderów, od klientów i od nas samych. Odpowiedź zwykle zaczyna się od „React”, a potem następuje wykład, który nie zawsze mówi, kiedy tak nie jest. Ten tekst ma być uczciwszy.
Dane są z 11 listopada 2026. Wersje i liczby sprawdziliśmy w rejestrze npm, w API GitHuba i u źródeł ankiet, a tam, gdzie się nie dało, piszemy to wprost.
Jeśli nie masz powodu, żeby wybrać inaczej, bierz React z TypeScriptem, Vite i biblioteką komponentów shadcn/ui. Nie dlatego, że jest najlepszy w każdej kategorii. Dlatego, że ma najwięcej ludzi, najwięcej gotowych klocków, a modele AI piszą w nim najpewniej.
Są cztery sytuacje, w których warto wybrać coś innego:
Resztę tekstu poświęcamy uzasadnieniu i temu, co po drodze zwykle się pomija.
Zrobić to razem?
Wdrażam takie rzeczy w firmach na co dzień. Umów 30 minut, pogadamy konkretnie o Twoim przypadku. Bez prezentacji sprzedażowej.
Umów bezpłatną rozmowę →
Trzy rzeczy ludzie wrzucają do jednego worka.
Framework (albo biblioteka) do interfejsu to React, Vue, Svelte, Solid. Odpowiada za to, jak budujesz ekrany z komponentów i jak odświeżają się po zmianie danych. Angular jest większy, bo ma też routing, formularze i wstrzykiwanie zależności w komplecie.
Meta-framework dokłada serwer, routing i budowanie: Next.js i React Router dla Reacta, Nuxt dla Vue, SvelteKit dla Svelte, Astro dla stron z treścią. Wybierasz go dopiero, gdy potrzebujesz renderowania po stronie serwera albo SEO.
Biblioteka UI to przyciski, okna, listy rozwijane, kalendarze. O niej jest druga część tekstu i ma ona często większy wpływ na tempo pracy niż sam framework.
Wiele aplikacji firmowych, takich jak panel, narzędzie wewnętrzne czy CRM, nie potrzebuje meta-frameworka. Zwykły Vite z Reactem wystarcza. Stary Create React App oficjalnie wycofano 14 lutego 2025, więc nie szukaj go w tutorialach z 2022 roku.
Nie dlatego, że jest najszybszy ani najprostszy. Ma trzy przewagi i wszystkie wynikają ze skali.
Najwięcej ludzi. W ankiecie Stack Overflow 2025 React wskazało 44,7% wszystkich respondentów i 46,9% zawodowców. Dalej idą Angular (18,2%), Vue (17,6%) i Svelte (7,2%). W State of JS 2025 React używało 83,6% ankietowanych. To ankiety samoselekcjonowane, więc nie są mapą całego rynku, ale kierunek jest czytelny. W Polsce Just Join IT opisuje dostępność ofert i kandydatów do Reacta jako bardzo wysoką, do Angulara jako średnią i rosnącą w korporacjach, do Vue jako niską do średniej. Dokładnych liczb ofert na framework nie znaleźliśmy, to jest opis, nie pomiar.

Najwięcej klocków. Prawie każda biblioteka komponentów, edytor tekstu, wykres czy kalendarz ma wersję pod React, często tylko pod React. Nawet autorzy htmx przyznają w eseju o tym, kiedy użyć hypermedia, że biblioteki w stylu shadcn są budowane pod React. Konkurencyjne frameworki robią to samo na swój sposób: Preact kopiuje API Reacta, a Remix w wersji 3 odchodzi od Reacta, ale zaczyna od forka Preacta.
Mniejsze ryzyko jednego właściciela. React długo należał do Mety. Od 24 lutego 2026 działa pod fundacją w Linux Foundation, a wśród ośmiu członków Platinum są m.in. Amazon, Microsoft, Meta, Vercel i Huawei. Zapowiedź padła w październiku 2025, ale wtedy Linux Foundation jeszcze się nie pojawiał. To nie gwarancja, ale jeden firmowy kaprys przestał być jedynym ryzykiem.
Czwartej przewagi, jakości kodu pisanego przez AI, nie nazywamy tu przewagą bez dowodów. Jej poświęcamy osobny rozdział.
Oceny poniżej to nasza synteza źródeł z tego tekstu, nie pomiar. Tam, gdzie mamy liczby, są w rozdziałach niżej.
| React | Vue | Angular | Svelte | Solid | Czysty JS + htmx | |
|---|---|---|---|---|---|---|
| Wersja (npm, 11.11.2026) | 19.3.1 | 3.5.45 | 22.2.5 | 5.57.3 | 1.9.19 | htmx 2.0.11 (4.0 pod next) |
| Ekosystem i biblioteki UI | największy | duży | duży, zamknięty | średni | mały | brak komponentów |
| Znalezienie ludzi (PL) | bardzo łatwo | trudniej | średnio, korporacje | trudno | bardzo trudno | zależy od backendu |
| Krzywa nauki | średnia | łagodna | stroma | łagodna | średnia | najniższa na start |
| Wydajność (benchmark) | dobra | dobra | dobra | bardzo dobra | najlepsza z frameworków | czysty JS: najlepsza; htmx: brak porównywalnego pomiaru |
| Kod od AI | najpewniejszy | dobry | gorszy w testach | dobry z uwagami | brak danych | brak danych |
| Utrzymanie po latach | stabilne, zmiany co kilka lat | 3.x spokojne, historia Vue 2 | przewidywalny cykl LTS | duża zmiana 4 do 5 | 2.0 w RC | najmniej zależności |
| Aplikacja na telefon | React Native, Expo | Capacitor, Ionic | Capacitor, Ionic | Capacitor | Capacitor | Capacitor, PWA |
Dwie rzeczy w tej tabeli warto zapamiętać. Po pierwsze, żaden framework nie jest najlepszy w każdej kolumnie. Po drugie, kolumny, w których React wygrywa (ludzie, klocki, AI), to kolumny o zespole i czasie, a nie o samej technologii.
Najczęściej cytowany pomiar to js-framework-benchmark Krausesta. Przeliczyliśmy jego surowe wyniki dla Chrome 156 (implementacje keyed) na „ile razy wolniej niż czysty JavaScript”, średnia z testów CPU. To nasze przeliczenie, a nie oficjalna tabela ważona ze strony, więc przed cytowaniem sprawdź ją tam.
| Czas CPU względem czystego JS | Pamięć względem czystego JS | |
|---|---|---|
| Vue 3.6 Vapor (wersja RC) | 1,09 | n/d |
| Solid | 1,13 | 1,21 |
| Svelte | 1,22 | 1,40 |
| Vue 3.5 | 1,28 | 1,81 |
| Angular | 1,63 | 2,17 do 2,89 |
| Preact | 1,78 | n/d |
| React | 1,82 (z React Compiler 1,90) | 2,48 |
Rozmiar całej implementacji benchmarku po kompresji brotli: React około 50 KB, Angular 33 do 45, Vue 19 do 23, Svelte 10, Preact 6, Solid 4,5, czysty JS 2,5. To całość małej aplikacji testowej, nie „hello world”, więc nie porównuj z deklaracjami producentów typu „Preact ma 3 kB”.
Jak to czytać? Solid i Svelte są szybsze od Reacta w tym teście, co do tego nie ma sporu. Ale test robi tysiące operacji na tabeli, a w typowej aplikacji biznesowej klik trwa kilkadziesiąt milisekund, i to z powodu sieci. W praktyce wydajność Reacta bywa problemem w dwóch sytuacjach: gdy ekran ma bardzo duże listy lub tabele oraz gdy dużo komponentów odświeża się niepotrzebnie. Na niepotrzebne odświeżenia pomaga React Compiler 1.0, stabilny od października 2025 (Meta deklaruje do 12% szybsze ładowanie w jednym ze swoich produktów). Na bardzo duże listy pomaga wirtualizacja, nie kompilator, a w naszej tabeli wynik z Compilerem wychodzi nieznacznie gorszy. Benchmark nie mierzy też czasu startu, kosztu ekosystemu ani czasu, który spędzisz na szukaniu błędów.
Angular od wersji 21 jest domyślnie zoneless, czyli odświeża się precyzyjniej niż dawniej. Liczby w tabeli dotyczą aktualnego Angulara.
Wniosek: jeśli budujesz zwykły panel, wybór frameworka nie rozstrzygnie szybkości. Wąskim gardłem częściej bywają baza, API i rozmiar paczki, ale to trzeba sprawdzić profilowaniem na własnej aplikacji.
Ten rozdział dotyczy każdego, kto buduje „na vibe codingu”, czyli prosi asystenta, takiego jak Claude Code czy Cursor, o napisanie większości kodu. To pytanie, na które prawie nie ma dobrych danych, więc piszemy tylko to, co jest.
Model ma swoje ulubione klocki. Badanie amplifying.ai z lutego 2026 zebrało 2430 odpowiedzi samego Claude Code i sprawdziło, co wybiera, gdy sam decyduje. Tailwind wybrał w 68,4% przypadków, shadcn/ui w 90,1% tam, gdzie sięgał po bibliotekę komponentów, a Zustand w 64,8% przy zarządzaniu stanem. Redux dostał zero wyborów. Po zmianie sformułowania promptu ten sam wybór padał w około 76% przypadków. To jedno narzędzie i jedno badanie, ale tak wygląda domyślny stos, który dostaniesz, jeśli nic nie powiesz.
Popularność wzmacnia popularność. Praca na konferencji ICLR 2026 opisuje efekt Mateusza w kodzie: modele faworyzują technologie, których jest dużo w danych treningowych, więc użytkownicy częściej je wybierają. Czytaliśmy tylko abstrakt.
Różnice między frameworkami są, ale dane są stare. Benchmark Web-Bench z maja 2025 mierzył modele, które dziś nie są aktualne. Claude 3.7 miał tam React 65, Vue 30, Angular 40, Svelte 25, a w trybie rozumowania 60, 40, 50 i 55. GPT-4o dostał 35, 30, 5 i 20. Widać stąd dwie rzeczy: wyniki skaczą między modelami i React nie wygrywa zawsze. Dlatego nie traktujemy tego jako rankingu na 2026 rok.
Frameworki dokładają narzędzia dla agentów. Svelte ma oficjalny serwer MCP i llms.txt, w których ostrzega, żeby nie mieszać składni z wersji 4 i 5. Angular ma serwer MCP w CLI. Nuxt ma nuxt.com/mcp, a shadcn własny serwer MCP. Przy Vue oficjalnie znaleźliśmy tylko llms-full.txt, bez serwera MCP. To oznacza, że przewaga Reacta w kodzie od AI maleje, bo konkurenci robią lukę mniejszą.
Zaufanie do AI nie rośnie tak szybko jak użycie. W Stack Overflow 2025 47,1% programistów używa AI codziennie, ale tylko 3,1% ufa jego wynikom w wysokim stopniu (a 29,6% raczej ufa). Najczęstsza frustracja (66%) to rozwiązania „prawie dobre, ale nie do końca”. Dla ciebie z tego wynika jedno: wybierz framework, w którym potrafisz przeczytać i ocenić kod, który wyprodukuje model.
Czego nie znaleźliśmy: kontrolowanego porównania Claude, GPT i Gemini w jednym frameworku na aktualnych modelach, ani żadnych danych o tym, jak AI radzi sobie z Solid, htmx lub czystym JS. Ostatni punkt zostawiamy do własnej obserwacji w rozdziale o naszej aplikacji.
Jeśli chcesz zobaczyć, jak wygląda praca z agentem kodującym w terminalu, opisaliśmy to w tekście Pi: agent kodujący bez smyczy, testowany obok Claude Code.
Aplikację piszesz raz, a utrzymujesz latami. Cztery rzeczy, które się liczą.
Cykl wydań. Angular wydaje duże wersje co 12 miesięcy (od wersji 22, wcześniej co 6) i wspiera każdą około 24 miesięcy: 12 aktywnie i 12 jako LTS z poprawkami bezpieczeństwa. Dziś v22 jest aktywna, v21 i v20 w LTS, a v20 kończy się 28 listopada 2026. To najbardziej przewidywalny harmonogram z całej listy. AngularJS (stary Angular 1) stracił wsparcie w styczniu 2022.
Migracje. Vue 2 skończył życie 31 grudnia 2023. GitLab zaplanował przejście na Vue 3 do końca 2025, grupę roboczą rozwiązał w październiku 2024 z niedokończoną pracą, a w zadaniach z 2026 roku część stron nadal działa na Vue 2 (to źródło częściowo z wyników wyszukiwania, nie z własnego retrospektywnego tekstu). To przykład kosztu długiej migracji dużej aplikacji, nie wada Vue 3. W Svelte przejście z 4 na 5 to zmiana modelu reaktywności (runes, snippety zamiast slotów), choć stara składnia nadal działa i jest skrypt migracyjny. W Reakcie 19 usunięto m.in. propTypes dla komponentów funkcyjnych i ReactDOM.render, a instrukcja ma codemody.
Bezpieczeństwo. W grudniu 2025 wyszła krytyczna luka React2Shell (CVE-2025-55182, ocena 10,0): zdalne wykonanie kodu bez logowania. Dotyczyła tylko React Server Components po stronie serwera, a Next.js dostał własny numer. Aplikacja klienta (zwykłe SPA bez serwerowych komponentów) nie była podatna. Wniosek jest dwojaki. Im więcej logiki serwerowej wsadzisz do frameworka, tym większa powierzchnia ataku. A łańcuch dostaw npm dotyczy każdego frameworka: robak Shai-Hulud z września 2025 zmusił GitHuba do usunięcia ponad 500 pakietów.
Kto za tym stoi. Astro dołączyło do Cloudflare w styczniu 2026, NuxtLabs do Vercela w lipcu 2025, a według źródła wtórnego Cloudflare przejęło w czerwcu 2026 także VoidZero, firmę Evana You (Vite). Wszystkie są na licencji MIT, ale wiesz już, że popularne frameworki mają za plecami firmy i fundacje, nie tylko hobbystów. Dla utrzymania po latach to dobra wiadomość, o ile nie zależysz od jednego usługodawcy.
Ogólnie: im mniej zależności, tym mniej tego wszystkiego. Dlatego czysty JS i htmx wypadają dobrze w tym jednym wymiarze.
Pierwsza rzecz: PWA nie zależy od frameworka. To manifest i service worker, a każdy framework ma do tego wtyczkę (vite-plugin-pwa, Angular, Next.js, SvelteKit), a bez wtyczki napiszesz to ręcznie.
Druga: na iPhonie PWA ma ograniczenia. Powiadomienia push działają od iOS 16.4, ale tylko dla aplikacji dodanej do ekranu głównego, a Apple ma własne zasady dotyczące miejsca na dane lokalne. Zanim obiecasz klientowi „aplikację offline na iPhonie”, sprawdź to na własnym telefonie.
Trzecia: jeśli potrzebujesz sklepu z aplikacjami, masz trzy ścieżki.
Offline z lokalnymi danymi to osobny temat, i znów niezależny od frameworka: Dexie, RxDB 17, SQLite w WebAssembly albo OPFS. Replicache jest w trybie utrzymania, jego następcą jest Zero, a PouchDB od połowy 2024 nie miał wydań. Jeśli offline jest sednem aplikacji, wybierz bazę lokalną przed frameworkiem.
Kilka sytuacji, z przykładami, których źródła da się otworzyć.
Aplikacja, która jest głównie serwerowa. Contexte, serwis z treścią, przeszedł z Reacta na Django i htmx: kod z 21 500 do 7 200 linii, zależności JS z 255 do 9, build z 40 do 5 sekund. To własne dane projektu z 2022 roku i autorzy sami piszą, że nie każda aplikacja da taki wynik. Pasuje do UI z tekstem, formularzami i odświeżaniem kawałków strony. Nie pasuje do dużych arkuszy z zależnościami między polami, pełnego offline ani gier. htmx 4.0 wyszedł 28 sierpnia 2026, ale na npm tag latest nadal wskazuje wersję 2.x, a czwórka siedzi pod tagiem next.
Zespół, który nie chce budować. DHH w 37signals buduje nową aplikację bez bundlera: JavaScript ES6, import maps i Hotwire. Basecamp nadal używa esbuilda. Platforma jest dziś mocniejsza niż kilka lat temu: <dialog> jest szeroko dostępny od września 2024, import maps od marca 2023, Popover API i Navigation API są nowe, a CSS anchor positioning nie jest jeszcze w pełni gotowy (nie piszemy, że jest).
Duża organizacja, która potrzebuje jednego sposobu pisania. Angular narzuca strukturę, ma wbudowane formularze, routing i testy i trzyma przewidywalny cykl LTS. Nie znaleźliśmy otwartego studium przypadku dużej firmy, więc argumentujemy z dokumentacji, nie z historii.
Małe, szybkie, samodzielnie utrzymywane produkty. Svelte i Solid dają mniejszy kod i lepsze wyniki w benchmarku. Solid ma w State of JS 2025 najwyższy wskaźnik satysfakcji pięć lat z rzędu przy użyciu około 10%. Svelte ma 86% satysfakcji wobec 72% Reacta, a SvelteKit 88%. Cena to mniejszy wybór bibliotek komponentów i trudniejsza rekrutacja.
Jedna uwaga o ankiecie: satysfakcja nie jest popularnością. React ma 72%, ale używa go ponad 80% respondentów. Ludzie, którzy pracują w czymś na co dzień, mają więcej powodów do narzekania niż ci, którzy testują nowość. Next.js spadł z 68% do 55% w ciągu roku, Angular ma 48%, a mimo to oba są wszędzie.
Jeśli to, co budujesz, jest w gruncie rzeczy stroną z treścią, porównaj to jeszcze z architekturą headless: WordPress vs headless CMS: co wybrać w 2025.
Strona z treścią, a nie aplikacja. Blog, dokumentacja albo strona marketingowa z kilkoma interaktywnymi fragmentami to przypadek dla Astro. Astro domyślnie wysyła do przeglądarki sam HTML, a komponenty Reacta, Vue czy Svelte osadza tylko tam, gdzie są potrzebne, więc wybór nie jest rozłączny. Wysokie zadowolenie z Astro (94% w State of JS) dotyczy takich stron i nie przekłada się wprost na wybór dla aplikacji z dużą ilością stanu.

Sherpa to nasza wewnętrzna aplikacja do poczty. Nie zawiera danych klientów i dlatego możemy o niej pisać. Zaczęła się jako jeden plik HTML z czystym JavaScriptem. Bez frameworka, bez buildu, bez npm.
Co mierzymy dziś (11 listopada 2026):
index.html ma dokładnie 8000 linii i 566 721 bajtów, z jednym blokiem stylów i pięcioma tagami <script>. Żadnych bibliotek z CDN. Stan trzymamy w jednym obiekcie.def test_: 1441 w 92 plikach, z czego Playwright ma 62 pliki. To liczba funkcji, nie przebiegów.Co nam to dało. Start w jednym pliku to zero konfiguracji: otwierasz w przeglądarce, widzisz zmianę. Nie ma czekania na build, nie ma aktualizacji zależności, nie ma incydentów npm. Dla jednej osoby i agenta AI to idealne warunki na pierwszy miesiąc. Kod jest w jednym miejscu i nic nie ukrywa się w node_modules.
Co to kosztuje. Tu są dwie różne rzeczy i warto je rozdzielić.
Po pierwsze, brak zestawu komponentów. Mamy 13 okien dialogowych z ręcznym role="dialog", 295 atrybutów aria-* wpisanych ręcznie i 7 ręcznych obsług klawiatury. Każde okno, menu i lista rozwijana to kod, który ktoś napisał od zera i który trzeba utrzymać w poprawnej dostępności. Biblioteka UI robi to raz.
Po drugie, ręczne tokeny. Mamy pięć tokenów odstępów (--sp-2/4/6/8/12). A jednocześnie 380 deklaracji padding, margin i gap ma surowe piksele, a tylko 68 używa tych tokenów. To nie jest wada braku frameworka. Tokeny w czystym CSS działają tak samo i można je wymusić prostym lintem. Zabrakło dyscypliny, nie frameworka. Framework by nam jej nie dał, najwyżej biblioteka z gotowym systemem odstępów.

Czego nie zmierzyliśmy: czy z frameworkiem byłoby szybciej. Nie mamy wersji porównawczej, więc tego nie wiemy.
Lepsze niż 8000 linii w jednym pliku? Prawdopodobnie, ale część zysku dałby już sam podział na moduły, bez frameworka. Vue ma komponenty jednoplikowe z własnymi stylami, szablony bliskie HTML (więc przeniesienie naszego kodu byłoby łatwiejsze niż do JSX), łagodną krzywą nauki i dobre zestawy komponentów: Vuetify 4 (MIT), PrimeVue (licencja własna, o niej w drugiej części), Nuxt UI i shadcn-vue na prymitywach Reka UI. Dostalibyśmy podział na pliki, komponenty i gotowe okna z dostępnością.
Lepsze niż React dla nas? To już nie jest pewne. Vue ma mniej ludzi na rynku, mniej bibliotek i według Just Join IT trudniej w Polsce znaleźć programistę. Jeśli kod pisze lub współpisze AI, to React, Tailwind i shadcn są domyślnym wyborem modelu. Vue ma mocny llms-full.txt, ale nie znaleźliśmy oficjalnego serwera MCP. Różnica jest dziś mniejsza niż w 2025, ale nie zniknęła.
Wart przepisania teraz? Nie. Przepisanie 566 KB kodu, który ma 1441 funkcji testowych, w tym 62 plików testów w przeglądarce (Playwright), które z natury zależą od tego, co jest na stronie, to nie jest wymiana biblioteki. To nowy projekt, który najpierw musi dogonić stare funkcje. Wygrana to czystszy kod, przegrana to czas bez nowych funkcji, którego długości nie umiemy dziś oszacować.
Co robilibyśmy zamiast tego, w tej kolejności (to nasza propozycja, nie wyniki testów):
index.html na moduły ES z import maps, bez buildu i bez frameworka.<dialog> i menu na Popover API. Mamy je w przeglądarkach, więc część ręcznych ról i obsługi klawiatury odpadnie, ale menu nadal wymaga właściwej semantyki i testu z klawiaturą.Odpowiedź na pytanie z początku brzmi więc: prawdopodobnie tak, ale nie mamy pomiaru, który to rozstrzyga, a część zysku da sam podział na moduły. To jest odpowiedź na pytanie „co lepsze od jednego pliku”, nie „co zrobić z Sherpą jutro”.
MVP jednej osoby. React, TypeScript, Vite, shadcn/ui i Tailwind. Wybierasz to, w czym AI jest najpewniejsze, ekosystem jest największy i nikt nie musi ci tłumaczyć błędów. Jeśli aplikacja to głównie formularze, a backend piszesz w Django, Railsach czy Laravelu, sprawdź htmx lub Hotwire, bo możesz ograniczyć kod frontendu. Wynik zależy od interakcji i backendu. Czysty JS bez buildu jest dobry na prototyp, ale nie na produkt, który urośnie.

Panel firmowy. React z gotowym zestawem: Mantine (natywny CSS, wiele komponentów) albo MUI (znana tabela, MUI X ma komercyjne wersje Pro i Premium). Jeśli twój zespół ma już Angulara, zostań przy nim z Angular Material. Jeśli Vue, to Vuetify lub PrimeVue. Panele mają tabele, filtry i formularze, więc komponenty pracują za ciebie. Meta-framework nie jest potrzebny.
Aplikacja z offline i telefonem. Zacznij od pytania: czy potrzebujesz sklepu z aplikacjami, czy wystarczy PWA? Jeśli wystarczy PWA, dowolny framework plus lokalna baza (Dexie, RxDB, SQLite WASM). Sprawdź zachowanie na iPhonie. Jeśli musisz być w sklepie, a masz już gotowy interfejs webowy, najkrótsza droga to Capacitor. Jeśli budujesz osobny, natywny interfejs i część logiki ma być wspólna z webem, wybierz React Native z Expo, który nie współdzieli komponentów HTML.
Duży zespół. Angular, jeśli firma ceni narzuconą strukturę i przewidywalny cykl wersji. React z TypeScriptem i jasnymi zasadami (wybrany meta-framework, jedna biblioteka UI, lint), jeśli łatwiej ci rekrutować. W obu przypadkach potrzebujesz własnego systemu projektowego opartego na tokenach, a nie ręcznych odstępach.
Dla wszystkich: nie wybieraj frameworka, który jest nowy na rynku (Solid 2.0 i Vue Vapor to wersje RC), jeśli aplikacja ma żyć dłużej niż rok bez twojej uwagi.
Pierwsze nieporozumienie: „biblioteka UI” może znaczyć trzy zupełnie różne rzeczy.
Gotowe komponenty ze stylem. Dostajesz przycisk, tabelę i okno wyglądające po swojemu. Szybki start, ograniczona zmiana wyglądu. MUI, Mantine, Chakra, Vuetify, PrimeVue, Angular Material, PrimeNG.
Bezstylowe prymitywy. Dostajesz zachowanie (otwieranie, klawiatura, fokus, ARIA), a wygląd robisz sam. Radix, Base UI, React Aria, Headless UI, Ark UI, Reka UI, Bits UI. Dużo pracy przy stylach, pełna kontrola.
Kopiowany kod. Narzędzie wkłada do twojego repozytorium pliki komponentów zbudowane na prymitywach i ze stylami. shadcn/ui i jego odpowiedniki: shadcn-vue, shadcn-svelte, Spartan dla Angulara. Po skopiowaniu kod jest twój. Zmieniasz go bez ograniczeń, ale poprawki z nowszych wersji wprowadzasz ręcznie.
Do tej listy dochodzi warstwa klas, jak daisyUI: nie komponenty, a nazwy klas CSS na Tailwindzie.
Wersje i licencje sprawdziliśmy w rejestrze npm 11 listopada 2026. Pobrania tygodniowe pomijamy jako kryterium: liczby npm zawierają ruch botów i CI i w ciągu roku wzrosły 3 do 10 razy, więc nie mówią, ilu ludzi używa biblioteki.
| Biblioteka | Typ | Framework | Licencja | Wersja | Dla kogo |
|---|---|---|---|---|---|
| shadcn/ui | kopiowany kod | React | MIT | CLI | MVP, aplikacje własne, praca z AI |
| Radix | prymitywy | React | MIT | pakiet radix-ui | własny system projektowy |
| Base UI | prymitywy | React | MIT | 1.9.0 | jw., nowszy wybór |
| React Aria | prymitywy | React | Apache-2.0 | 1.22.1 | dostępność i międzynarodowość |
| Headless UI | prymitywy | React, Vue | MIT | 2.2.10 | z Tailwindem |
| Ark UI | prymitywy | React, Solid, Vue, Svelte | MIT | 5.40.0 | wiele frameworków |
| MUI | gotowe | React | MIT (rdzeń) | 9.5.0 | panele, Material Design |
| Mantine | gotowe | React | MIT | 9.8.0 | panele i formularze |
| Chakra UI | gotowe | React | MIT | 3.38.0 | małe zespoły |
| Vuetify | gotowe | Vue | MIT | 4.3.3 | Vue, Material |
| PrimeVue | gotowe | Vue | własna (PrimeUI) | 5.0.4 | Vue, dużo komponentów |
| Angular Material | gotowe | Angular | MIT | 22.2.6 | Angular |
| PrimeNG | gotowe | Angular | własna (PrimeUI) | 22.1.4 | Angular, dużo komponentów |
| Reka UI, Bits UI | prymitywy | Vue, Svelte | MIT | 2.11.0, 2.21.0 | podstawa shadcn-vue i shadcn-svelte |
Kilka rzeczy z tej tabeli wymaga komentarza.
shadcn/ui zmieniło fundament. Od lipca 2026 npx shadcn init domyślnie wybiera Base UI, a Radix nadal jest wspierany (flaga -b radix). Base UI tworzą ludzie z MUI, Radixa i Floating UI. Radix jest nadal wydawany (wydania w 2026), ale ostatnie zmiany w repozytorium pochodzą z października 2026, a Headless UI z kwietnia. Nie znaleźliśmy oficjalnego oświadczenia o porzuceniu któregokolwiek z nich i takie plotki z blogów wtórnych pomijamy.
PrimeVue i PrimeNG nie są już zwykłym MIT. W pakietach npm (PrimeVue 5.0.4 i PrimeNG 22.1.4) leży plik licencji PrimeUI z dwiema ścieżkami. Community License jest darmowa dla organizacji, które mają poniżej 1 mln USD rocznych przychodów, poniżej 5 deweloperów, poniżej 10 pracowników i poniżej 3 mln USD finansowania, i wymaga corocznego potwierdzenia uprawnień. Reszta kupuje licencję komercyjną za dewelopera. Potrzebny jest klucz licencyjny (weryfikowany offline), a jego brak lub wygaśnięcie „może wyświetlać komunikat licencyjny”. PrimeVue 5.0.0 wyszedł 15 lipca 2026. Zanim wybierzesz je do firmowego projektu, przeczytaj licencję własnymi oczami i policz, czy mieścisz się w Community.
MUI X ma komercyjne wersje. Rdzeń MUI jest MIT, ale komponenty MUI X w wersjach Pro i Premium wymagają licencji za dewelopera.
Chakra v3 używa Emotiona w czasie działania, co oznacza dodatkowy kod CSS-in-JS w runtime. Mantine używa natywnego CSS i zmiennych --mantine-*.
Wszystkie wymienione biblioteki piszą o WAI-ARIA i obsłudze klawiatury. Jawnie opisaną weryfikację z czytnikami ekranu znaleźliśmy tylko u dwóch: React Aria (czytniki ekranu, obsługa 30+ języków i 13 kalendarzy) i Base UI. To deklaracje producentów, nie niezależny audyt, a takiego porównania bibliotek nie znaleźliśmy.
Co z tego wynika dla ciebie:
<dialog> jest od 2024 roku szeroko dostępny. Dla prostych okien może wystarczyć bez żadnej biblioteki.Token to nazwana wartość: kolor, odstęp, zaokrąglenie, które zmieniasz w jednym miejscu. Biblioteki robią to różnie.
--background, --primary) i w Tailwindzie v4 używa przestrzeni OKLCH. Opis w dokumentacji theming. Ponieważ kod jest twój, zmieniasz wszystko bez walki z biblioteką.--mantine-* w natywnym CSS.Format tokenów jest już ustandaryzowany: Design Tokens Community Group ogłosiła stabilną wersję 2025.10, co ułatwia wymianę między Figmą a kodem. W praktyce ważniejsze jest co innego: żeby ktoś wymuszał używanie tokenów. Nasze 380 surowych deklaracji odstępów przy pięciu tokenach pokazuje, że sam system nie wystarczy.
Więcej o samym systemie projektowym w firmie: Przewodnik po design system dla firm, a o pracy z AI w Figmie: AI + Figma w 2026, od zera do design systemu.
<dialog> i Popover, ewentualnie komponenty Lit lub Web Components. Pamiętaj, że biblioteki w stylu shadcn są pod React.Zasada ogólna: wybierz framework, potem zestaw komponentów do niego, nie odwrotnie. Gdy zestaw wymusza framework, którego nie lubisz, to też informacja.
Uczciwa lista luk:
Budujemy aplikacje i strony dla firm w important.is, a Sherpa jest naszym własnym eksperymentem. Jeśli wahasz się między dwiema opcjami, napisz, pomożemy ci zdecydować.
Jeśli kodujesz z asystentem AI i liczysz koszty: Który model AI do czego i ile to kosztuje oraz Ten sam model AI, połowa tokenów.
Zostań w pętli
Nowe artykuły, narzędzia i case study prosto na maila. Bez spamu, bez sprzedaży.