Jaki framework wybrać do własnej aplikacji w 2026? React, Vue, Angular, Svelte i biblioteki UI

AI i Automatyzacje • Łukasz Ślusarski Łukasz Ślusarski • • 26 min czytania
Jaki framework wybrać do własnej aplikacji w 2026? React, Vue, Angular, Svelte i biblioteki UI

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.

1. Krótka odpowiedź

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:

  • Aplikacja to głównie formularze i listy, a wszystko ma się dziać na serwerze. Wtedy czasem wystarczy htmx.
  • Zespół zna już Vue albo Angulara i nie chce zmieniać. Zmiana frameworka kosztuje więcej niż różnica między nimi.
  • Duża firma potrzebuje jednego, narzuconego sposobu pisania i przewidywalnych wersji. To Angular.
  • Chcesz mieć mały, szybki produkt i sam go utrzymasz. To Svelte lub Solid, ale kupujesz mniejszy ekosystem.

Resztę tekstu poświęcamy uzasadnieniu i temu, co po drodze zwykle się pomija.

Pogadajmy

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ę →
Łukasz Ślusarski
Łukasz ŚlusarskiTwórca important.is

2. Co właściwie wybierasz?

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.

3. Dlaczego React jest często najlepszym wyborem

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.

Wykres słupkowy: React 44,7%, jQuery 23,4%, Next.js 20,8%, Angular 18,2%, Vue 17,6%, Svelte 7,2%, Astro 4,5%, Nuxt 4,0% w Stack Overflow Developer Survey 2025

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ł.

Wolisz to zlecić? 30 minut, bez zobowiązań. Sprawdzimy czy to ma sens.
Zarezerwuj termin →

4. Porównanie na jednej planszy

Oceny poniżej to nasza synteza źródeł z tego tekstu, nie pomiar. Tam, gdzie mamy liczby, są w rozdziałach niżej.

ReactVueAngularSvelteSolidCzysty JS + htmx
Wersja (npm, 11.11.2026)19.3.13.5.4522.2.55.57.31.9.19htmx 2.0.11 (4.0 pod next)
Ekosystem i biblioteki UInajwiększydużyduży, zamkniętyśrednimałybrak komponentów
Znalezienie ludzi (PL)bardzo łatwotrudniejśrednio, korporacjetrudnobardzo trudnozależy od backendu
Krzywa naukiśredniałagodnastromałagodnaśrednianajniższa na start
Wydajność (benchmark)dobradobradobrabardzo dobranajlepsza z frameworkówczysty JS: najlepsza; htmx: brak porównywalnego pomiaru
Kod od AInajpewniejszydobrygorszy w testachdobry z uwagamibrak danychbrak danych
Utrzymanie po latachstabilne, zmiany co kilka lat3.x spokojne, historia Vue 2przewidywalny cykl LTSduża zmiana 4 do 52.0 w RCnajmniej zależności
Aplikacja na telefonReact Native, ExpoCapacitor, IonicCapacitor, IonicCapacitorCapacitorCapacitor, 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.

5. Wydajność: ile to naprawdę znaczy

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 JSPamięć względem czystego JS
Vue 3.6 Vapor (wersja RC)1,09n/d
Solid1,131,21
Svelte1,221,40
Vue 3.51,281,81
Angular1,632,17 do 2,89
Preact1,78n/d
React1,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.

6. Vibe coding i Cursor: jak dobrze AI pisze kod w danym frameworku

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.

7. Utrzymanie po latach

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.

8. PWA (progressive web app) czy aplikacja na telefon

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.

  • Capacitor (wersja 8) opakowuje dowolną aplikację webową, więc działa z każdym frameworkiem. Ionic 9 dokłada gotowe komponenty mobilne dla Angulara, Reacta i Vue.
  • React Native (0.88) z Expo (SDK 58) pisze prawdziwie natywny interfejs. Dzieli z webem model komponentów i część kodu, ale nie komponenty HTML, więc to nie jest „ta sama aplikacja”. Z głównych frameworków webowych tylko React ma taką drogę.
  • Tauri 2 i NativeScript to opcje dla desktopu i dla zespołów, które wiedzą, czego chcą.

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.

9. Kiedy React nie jest dobrym wyborem

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.

Wykres satysfakcji w State of JS 2025: Astro 94%, SvelteKit 88%, Svelte 86%, Vue 84%, React 72%, Next.js 55%, Angular 48%

10. Studium przypadku: Sherpa, aplikacja z jednego pliku HTML

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.
  • Serwer w Pythonie ma 6310 linii. Jest PWA z manifestem, service workerem i powiadomieniami push.
  • Pierwszy commit jest z 11 października 2026. W miesiąc: 237 commitów.
  • Testów jest ponad tysiąc. Liczymy funkcje 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.

Wykres słupkowy: w aplikacji Sherpa 380 deklaracji odstępów w surowych pikselach wobec 68 użyć tokenów

Czego nie zmierzyliśmy: czy z frameworkiem byłoby szybciej. Nie mamy wersji porównawczej, więc tego nie wiemy.

11. Czy Vue byłoby lepsze?

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):

  1. Pociąć index.html na moduły ES z import maps, bez buildu i bez frameworka.
  2. Wymusić tokeny odstępów lintem CSS. 380 surowych deklaracji to największy zysk za najmniejszy koszt.
  3. Przenieść okna dialogowe na natywny <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ą.
  4. Jeśli UI nadal będzie rosło, migrować ekran po ekranie. Wtedy wybierzemy między Reactem z shadcn (najlepiej obsługiwany przez AI) a Vue (najbliższy obecnemu kodowi). Dziś stawiamy na React, ale bez przekonania. Ta decyzja nie jest pilna.

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”.

12. Ściąga: co wybrać dla Twojej aplikacji

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.

Tabela doboru technologii do czterech typów aplikacji: MVP jednej osoby, panel firmowy, offline i telefon, duży zespół

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.

13. Część 2: biblioteki UI. Trzy różne rzeczy pod jedną nazwą

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.

14. Przegląd bibliotek: shadcn/ui, Mantine, MUI, Angular Material

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.

BibliotekaTypFrameworkLicencjaWersjaDla kogo
shadcn/uikopiowany kodReactMITCLIMVP, aplikacje własne, praca z AI
RadixprymitywyReactMITpakiet radix-uiwłasny system projektowy
Base UIprymitywyReactMIT1.9.0jw., nowszy wybór
React AriaprymitywyReactApache-2.01.22.1dostępność i międzynarodowość
Headless UIprymitywyReact, VueMIT2.2.10z Tailwindem
Ark UIprymitywyReact, Solid, Vue, SvelteMIT5.40.0wiele frameworków
MUIgotoweReactMIT (rdzeń)9.5.0panele, Material Design
MantinegotoweReactMIT9.8.0panele i formularze
Chakra UIgotoweReactMIT3.38.0małe zespoły
VuetifygotoweVueMIT4.3.3Vue, Material
PrimeVuegotoweVuewłasna (PrimeUI)5.0.4Vue, dużo komponentów
Angular MaterialgotoweAngularMIT22.2.6Angular
PrimeNGgotoweAngularwłasna (PrimeUI)22.1.4Angular, dużo komponentów
Reka UI, Bits UIprymitywyVue, SvelteMIT2.11.0, 2.21.0podstawa 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-*.

15. Dostępność: deklaracja a pomiar

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:

  • Okna dialogowe, menu rozwijane, listy wyboru i kalendarze są trudne. Tu dostępność najczęściej się psuje, więc nie pisz ich sam. W Sherpie dobrze to widać: 13 okien dialogowych i 295 ręcznych atrybutów ARIA to kod, który ktoś musiał sprawdzić.
  • Biblioteka nie robi z aplikacji dostępnej aplikacji. Etykiety, kontrast, kolejność fokusu i komunikaty błędów nadal są twoje.
  • Natywny <dialog> jest od 2024 roku szeroko dostępny. Dla prostych okien może wystarczyć bez żadnej biblioteki.

16. Tokeny i theming

Token to nazwana wartość: kolor, odstęp, zaokrąglenie, które zmieniasz w jednym miejscu. Biblioteki robią to różnie.

  • shadcn/ui trzyma kolory w zmiennych CSS (--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 ma zmienne --mantine-* w natywnym CSS.
  • PrimeVue ma presety (Aura, Lara, Nora, Material) i własny system tokenów.
  • MUI ma obiekt motywu w JS. To działa, ale zmiana wyglądu poza nim bywa uciążliwa.
  • Prymitywy (Radix, Base UI, React Aria, Headless UI) nie mają motywu. Tokeny robisz sam w CSS albo Tailwindzie.

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.

17. Który zestaw do jakiej aplikacji

  • MVP jednej osoby, praca z AI: shadcn/ui. Model go zna najlepiej (90,1% wyborów w badaniu amplifying.ai), a kod jest twój. Cena: aktualizacje komponentów robisz ręcznie.
  • Panel firmowy z tabelami i formularzami: Mantine albo MUI. Dostajesz dużo gotowego, a wygląd zmieniasz motywem. Przy MUI policz koszt MUI X, jeśli potrzebujesz zaawansowanej tabeli.
  • Własny system projektowy marki: prymitywy (Base UI, Radix lub React Aria) plus własne style. Najwięcej pracy, ale pełna kontrola. React Aria, jeśli dostępność i wielojęzyczność są wymogiem.
  • Zespół na Vue: Vuetify, jeśli podoba ci się Material, a PrimeVue po sprawdzeniu licencji. Nuxt UI, jeśli wolisz instalowaną bibliotekę, albo shadcn-vue, jeśli chcesz kopiowany kod.
  • Zespół na Angularze: Angular Material z CDK. PrimeNG wymaga takiej samej uwagi do licencji jak PrimeVue. Spartan, jeśli chcesz podejścia jak w shadcn.
  • Svelte: Bits UI z shadcn-svelte albo Skeleton. Wybór mniejszy, ale wystarczający.
  • Brak frameworka: natywne <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.

18. Czego ten tekst nie rozstrzyga

Uczciwa lista luk:

  • Nie mamy aktualnych, kontrolowanych testów jakości kodu AI w poszczególnych frameworkach. Dane z Web-Bench są z maja 2025.
  • Nie znaleźliśmy liczb ofert pracy per framework w Polsce, tylko opisy.
  • Procentowego użycia Vue, Angulara i Svelte w State of JS 2025 nie udało się odczytać z tekstu strony.
  • Przeliczenie benchmarku Krausesta jest nasze. Porównaj z oficjalną tabelą.
  • Dostępność bibliotek znamy z deklaracji, nie z audytu.
  • Wpływ przejęć (Cloudflare, Vercel) na kierunek frameworków to na razie deklaracje.

19. Co możesz zrobić dziś

  1. Napisz w jednym zdaniu, czym ma być aplikacja i kto będzie ją utrzymywał. Od tego zależy wybór.
  2. Jeśli nie masz powodu, żeby było inaczej: React, TypeScript, Vite, shadcn/ui. Postaw pusty projekt i zbuduj jeden prawdziwy ekran z formularzem i tabelą. Jeśli to ci się podoba, jedziesz dalej.
  3. Jeśli rozważasz PrimeVue lub PrimeNG, przeczytaj licencję PrimeUI przed pierwszą linijką kodu.
  4. Jeśli chcesz PWA na iPhone, sprawdź powiadomienia i przechowywanie danych na prawdziwym telefonie, zanim to obiecasz.
  5. Zapisz od początku tokeny odstępów i kolorów i dodaj lint, który pilnuje, żeby z nich korzystać.

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.

raz na jakiś czas

Zostań w pętli

Nowe artykuły, narzędzia i case study prosto na maila. Bez spamu, bez sprzedaży.

To pole jest używane do walidacji i powinno pozostać niezmienione.