Laravel 12: Starter-Kity z React, Vue i Tailwind 4 – wszystko, co musisz wiedzieć

Laravel 12: Starter-Kity z React, Vue i Tailwind 4 – wszystko, co musisz wiedzieć

Laravel 12 to coś więcej niż numer wersji – wprowadzenie

W lutym 2025 światło dzienne ujrzała kolejna wersja jednego z najpopularniejszych frameworków PHP – Laravel 12. Choć na pierwszy rzut oka może wydawać się jedynie kolejną numerowaną aktualizacją, to w rzeczywistości jest to kamień milowy w kierunku nowoczesnego developmentu frontendowo‑backendowego w środowisku Laravel.

Laravel 12 to nie tylko poprawki bezpieczeństwa i usprawnienia frameworka, ale przede wszystkim duży krok w stronę aplikacji typu SPA (Single Page Application), jeszcze głębsza integracja z JavaScriptem oraz uproszczenie startu projektów dzięki nowym starter‑kitom opartym o React, Vue i Livewire.

To wydanie łączy w sobie najnowsze technologie frontendowe (m.in. Tailwind CSS 4, Vite 6, shadcn/ui) z filozofią prostoty, z której Laravel słynie od lat. Użytkownicy otrzymali do dyspozycji odświeżone narzędzia startowe – Breeze 2.0 i Jetstream 3.0 – które pozwalają błyskawicznie rozpocząć pracę nad panelem użytkownika, systemem logowania, a nawet pełnoprawnym SPA.

W tym artykule krok po kroku przyjrzymy się najważniejszym zmianom w Laravel 12 – zarówno od strony technicznej, jak i praktycznej. Dowiesz się:

  • jakie nowe starter-kity są dostępne i jak z nich korzystać,
  • czym jest shadcn/ui i dlaczego Laravel porzucił Bootstrap,
  • co nowego oferuje Tailwind CSS 4,
  • jak wygląda domyślna integracja z React i Vue,
  • oraz w jaki sposób nowy Laravel wspiera szybki, nowoczesny development.

Zacznijmy od zmian w starter-kitach – czyli Breeze i Jetstream, które w wersji 12 przeszły gruntowną metamorfozę.

Nowe starter-kity w Laravel 12: Breeze 2.0 i Jetstream 3.0

Jedną z najbardziej zauważalnych nowości w Laravel 12 są odświeżone starter-kity – Breeze i Jetstream. Te dwa narzędzia pełnią kluczową rolę dla deweloperów rozpoczynających nowy projekt. Ich zadaniem jest zapewnienie kompletnego środowiska startowego z uwierzytelnianiem, routingiem, layoutem i stylami – bez konieczności ręcznej konfiguracji.

Laravel 12 wprowadza:

  • Breeze 2.0 – lekki, minimalistyczny starter, idealny dla małych projektów lub niestandardowych dashboardów,
  • Jetstream 3.0 – bardziej rozbudowany zestaw dla aplikacji wymagających pełnego zarządzania kontem użytkownika, sesjami, API i dwuetapową weryfikacją.

⚡ Laravel Breeze 2.0 – teraz z React, Vue i Livewire

Laravel Breeze w wersji 2.0 oferuje teraz aż trzy pełnoprawne warianty:

  1. React – zbudowany w oparciu o React 19, Vite 6 i Tailwind 4,
  2. Vue – minimalistyczna wersja SPA z Vue 3 i Pinia,
  3. Blade + Livewire – opcja dla backend developerów preferujących podejście full PHP.

W każdej wersji:

  • preinstalowany jest Tailwind CSS 4,
  • komponenty frontendowe korzystają z shadcn/ui (więcej o tym później),
  • routing oparty jest o domyślne RESTowe ścieżki Laravel (/login, /register, /dashboard).

Instalacja Breeze React:

laravel new my-app --kit=react

Instalacja Breeze Vue:

laravel new my-app --kit=vue

🧰 Laravel Jetstream 3.0 – kompletny system zarządzania kontem

Jetstream w Laravel 12 doczekał się znaczącego uproszczenia i przebudowy:

  • odchudzony interfejs,
  • uproszczone API tokens,
  • pełne wsparcie dla SSR (server-side rendering),
  • domyślna integracja z Inertia.js (zarówno Vue jak i React),
  • lepsze zarządzanie sesjami i profilem użytkownika,
  • gotowy szkielet do wdrożenia systemu teamów (Teams).

Instalacja Jetstream z React:

composer require laravel/jetstream
php artisan jetstream:install inertia --react
npm install && npm run dev

Instalacja Jetstream z Vue:

php artisan jetstream:install inertia --vue

Dzięki tym aktualizacjom Breeze i Jetstream stały się jeszcze bardziej elastyczne, lekkie i dostosowane do nowoczesnych wymagań frontendowych. Laravel 12 stawia na pełną integrację z nowoczesnym frontendem, jednocześnie pozostawiając miejsce dla developerów backendowych preferujących klasyczne podejście Blade + Livewire.

W kolejnym punkcie przyjrzymy się, czym dokładnie jest shadcn/ui i dlaczego Laravel zdecydował się uczynić go domyślną biblioteką komponentów UI.

Co to jest shadcn/ui i dlaczego Laravel na niego przeszedł?

W Laravel 12 domyślnym systemem komponentów UI – szczególnie w starter-kitach z React i Vue – stał się shadcn/ui. To istotna zmiana, ponieważ Laravel w naturalny sposób odchodzi od klasycznych frameworków CSS (jak Bootstrap) na rzecz modularnego, nowoczesnego, w pełni zgodnego z Tailwind CSS rozwiązania.

Ale czym właściwie jest shadcn/ui i dlaczego warto się nim zainteresować?


🧩 Czym jest shadcn/ui?

shadcn/ui to open-source’owy zestaw gotowych komponentów UI (przycisków, modali, dropdownów, kart, alertów itp.) zbudowanych w oparciu o:

  • Tailwind CSS – nie zawiera żadnych predefiniowanych klas CSS, wszystko stylowane jest utility-classes,
  • Radix UI – niskopoziomowa biblioteka headless dla React i Vue,
  • TypeScript i dostępność (a11y) – komponenty są pisane z dbałością o semantykę, UX i pełne wsparcie dla klawiatury i czytników ekranu.

🚀 Co wyróżnia shadcn/ui?

  1. Zero CSS w paczce – wszystkie style są generowane przy użyciu Tailwind i klas narzędziowych.
  2. Pełna kontrola – instalujesz komponenty pojedynczo do swojego projektu (nie jako globalną paczkę).
  3. Nowoczesny wygląd – design inspirowany przez Vercel, Stripe, Linear.
  4. Ekosystem open-source – łatwo dodać kolejne komponenty przez CLI lub ręcznie.

💻 Przykład – komponent przycisku

// components/ui/button.tsx
import { cn } from "@/lib/utils"

export function Button({ className, ...props }) {
  return (
    <button className={cn("px-4 py-2 text-sm font-medium rounded-md bg-primary text-white hover:bg-primary/90", className)} {...props} />
  )
}

Dzięki cn() możesz dynamicznie łączyć klasy Tailwind, a stylowanie jest w 100% zgodne z podejściem utility-first.


📦 Jak dodać shadcn/ui do projektu Laravel (React)?

Po zainstalowaniu starter-kitu React:

npx shadcn-ui@latest init

Następnie wybierasz domyślny folder komponentów (components/ui) i możesz dodawać np.:

npx shadcn-ui@latest add button

🧠 Dlaczego Laravel wybrał shadcn/ui?

  • Naturalna integracja z Tailwind CSS 4
  • Lepsze dopasowanie do nowoczesnego ekosystemu React/Vue
  • Brak zbędnego CSS i pełna konfigurowalność
  • Podejście „design as code” – komponenty są częścią kodu źródłowego

Dzięki shadcn/ui, Laravel 12 daje frontend developerom nowoczesne, lekkie i elastyczne narzędzie do budowania UI – bez potrzeby sięgania po gotowe frameworki jak Bootstrap, Material UI czy Ant Design.

W kolejnym punkcie przyjrzymy się bliżej Tailwind CSS 4, który jest teraz domyślnym silnikiem stylów we wszystkich starter-kitach Laravel 12.

Tailwind CSS 4 w Laravel 12 – nowy domyślny silnik stylów

Wraz z premierą Laravel 12, wszystkie oficjalne starter-kity (Breeze, Jetstream) domyślnie wykorzystują Tailwind CSS 4, najnowszą wersję popularnego frameworka utility-first. To oznacza, że Laravel całkowicie porzuca starsze systemy stylów, takie jak Bootstrap czy Bulma, i w pełni inwestuje w Tailwind jako standard dla nowoczesnych aplikacji frontendowych.


🆕 Co nowego w Tailwind CSS 4?

1. JIT 2.0 (Just-In-Time)

  • Nowy mechanizm budowania klas w locie
  • Znacznie szybsze kompilowanie stylów
  • Mniejszy rozmiar CSS (nawet <10KB przy budowie produkcyjnej)

2. Layered CSS output

  • Tailwind 4 wprowadza warstwy (@layer) jako pierwszoplanowy mechanizm strukturyzowania stylów
  • Ułatwia nadpisywanie i organizację dużych projektów

3. Lepsze wsparcie dla dark mode

  • Domyślna obsługa klas dark: i media w sposób uproszczony
  • Pełna zgodność z systemami operacyjnymi i preferencjami użytkownika

4. Uproszczony system pluginów

  • Instalacja dodatkowych rozszerzeń (np. forms, typography, aspect-ratio) odbywa się przez prostszy interfejs

🛠 Jak wygląda domyślna konfiguracja w Laravel 12?

Laravel po zainstalowaniu starter-kitu tworzy domyślnie:

  • tailwind.config.js
  • postcss.config.js
  • vite.config.js
  • strukturę plików w resources/css

Fragment tailwind.config.js:

module.exports = {
  content: [
    './resources/**/*.{js,ts,jsx,tsx,vue,blade.php}',
  ],
  theme: {
    extend: {},
  },
  plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/typography'),
  ],
};

⚡ Integracja z Vite 6

Laravel 12 wykorzystuje domyślnie Vite 6, który oferuje:

  • ultraszybkie HMR (hot-module reload),
  • pełne wsparcie dla JSX, Vue, TypeScript,
  • wbudowaną integrację z Tailwind.

Przykład importu CSS:

// resources/js/app.jsx
import '../css/app.css';

🎨 Przykład klas Tailwind 4

<button class="px-4 py-2 text-sm font-semibold bg-primary text-white rounded hover:bg-primary/90">
  Zaloguj się
</button>

Wszystkie style są natywne, lekkie i zgodne z design systemem shadcn/ui.


Tailwind CSS 4 jest nie tylko szybki i lekki, ale także doskonale wpisuje się w filozofię Laravela: prostota, rozszerzalność i kontrola. W kolejnym punkcie przejdziemy do praktyki i zobaczymy, jak wygląda gotowe SPA zbudowane na React lub Vue w Laravel 12.

Laravel + React/Vue + Inertia.js – gotowe SPA bez konfiguracji

Laravel 12 pozycjonuje się dziś nie tylko jako backendowy framework PHP, ale również jako solidna baza pod nowoczesne Single Page Applications (SPA). Dzięki starter-kitom Breeze i Jetstream, które oferują gotowe warianty dla React i Vue, można stworzyć pełnoprawne SPA w kilka minut – bez mozolnej konfiguracji Webpacka, Vite, routingu czy middleware’ów.

Co więcej, cały stack oparty jest o Inertia.js – bibliotekę, która łączy Laravel (PHP) i React/Vue (JS) w jedną spójną aplikację, eliminując potrzebę korzystania z klasycznego API REST.


⚛️ Laravel + React (Breeze lub Jetstream)

Po instalacji starter-kitu z React otrzymujesz:

  • Prekonfigurowany projekt z React 19 + Tailwind CSS 4 + shadcn/ui
  • Routing oparty na Inertia::render() (bez REST lub GraphQL)
  • Komponenty formularzy, layout, dashboard
  • Domyślny plik wejściowy: resources/js/app.jsx

Przykład renderowania komponentu:

// routes/web.php
Route::get('/dashboard', function () {
    return Inertia::render('Dashboard');
});

Przykład komponentu:

// resources/js/Pages/Dashboard.jsx
export default function Dashboard() {
  return <h1 className="text-2xl font-bold">Witaj w panelu</h1>;
}

🔁 Laravel + Vue

Działa analogicznie do Reacta – zamiast JSX używasz komponentów .vue:

  • Plik wejściowy: resources/js/app.js
  • Routing również przez Inertia::render()
  • Obsługa Pinia (opcjonalnie) i dynamicznych komponentów

📦 Co dostajesz out-of-the-box?

  • Routing bez konieczności budowy API (Inertia pośredniczy)
  • Gotowe widoki logowania, rejestracji, dashboardu
  • Integracja z Tailwind 4 i shadcn/ui (React)
  • Form validation przez Laravel + przekazywanie błędów do komponentów frontend

Przykład formularza rejestracji:

<form onSubmit={submit} className="space-y-4">
  <input name="email" className="input" />
  <input name="password" type="password" className="input" />
  <button type="submit" className="btn btn-primary">Zarejestruj</button>
</form>

🚀 Gotowe SPA w 5 minut

Laravel 12 pozwala rozpocząć projekt typu SPA błyskawicznie:

laravel new my-app --kit=react
cd my-app
php artisan migrate
npm install && npm run dev

Dzięki integracji z Inertia.js nie musisz budować osobnego API. Laravel odpowiada za routing, middleware, walidację, sesje – a frontend (React lub Vue) za interfejs użytkownika.

W kolejnym punkcie przyjrzymy się bliżej nowościom w Vite 6 – narzędziu, które napędza frontendowe środowisko developerskie Laravel 12.

Laravel Vite 6 – jeszcze lepsza integracja z JavaScript i TypeScript

W Laravel 12 domyślnym narzędziem do budowy frontendowych zasobów jest Vite 6 – superszybki bundler oparty na ESM (native JavaScript modules), który zastąpił Webpacka już w Laravel 9. Nowa wersja Vite to kolejny krok naprzód w ergonomii pracy z komponentami frontendowymi – szczególnie w połączeniu z React, Vue i Tailwind CSS.


🚀 Co nowego w Vite 6?

1. Jeszcze szybszy HMR (Hot Module Replacement)

  • Błyskawiczne odświeżanie komponentów w przeglądarce
  • Nawet przy większych projektach czas przebudowy to <50ms

2. Wsparcie dla JSX, TS, Vue 3 – bez dodatkowej konfiguracji

  • Automatyczne wykrywanie frameworka
  • Kompatybilność z React 19 i Vue 3
  • Obsługa TypeScript i plików .tsx, .vue, .ts z marszu

3. Integracja z Tailwind i PostCSS 8+

  • Vite i Tailwind tworzą perfekcyjny duet w Laravel 12

⚙️ Konfiguracja w Laravel 12

Domyślny plik vite.config.js wygląda następująco:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [
    laravel({ input: ['resources/css/app.css', 'resources/js/app.jsx'], refresh: true }),
    react(),
  ],
});

Dla Vue zamieniasz react() na vue() z pakietu @vitejs/plugin-vue.


📦 Import komponentów bez aliasów

Laravel 12 wspiera strukturę komponentów z aliasem @:

import Layout from '@/Layouts/MainLayout';
import Button from '@/components/ui/button';

Alias @ jest domyślnie zmapowany na resources/js/, co ułatwia nawigację w kodzie i eliminuje problem długich ścieżek względnych.


🔧 Uruchomienie środowiska developerskiego

npm run dev

Domyślnie otwiera serwer Vite na porcie 5173, który integruje się z backendem Laravel na localhost:8000. HMR działa natychmiast po zapisaniu pliku – bez konieczności odświeżania przeglądarki.


📁 Struktura domyślnego frontu

resources/
├── css/
│   └── app.css
├── js/
│   ├── app.jsx
│   ├── Pages/
│   ├── Layouts/
│   └── components/

Taki układ pozwala na szybkie skalowanie aplikacji z podziałem na layouty, strony i komponenty UI.


Vite 6 sprawia, że Laravel 12 staje się jeszcze bardziej developer-friendly, szczególnie dla osób pracujących z nowoczesnymi technologiami frontendowymi. W kolejnym punkcie pokażemy, jak w kilka minut uruchomić pełne środowisko startowe z Laravel 12, Reactem i Tailwindem.

Jak szybko uruchomić nowe środowisko Laravel 12?

Jedną z największych zalet Laravel 12 jest błyskawiczny start nowego projektu – niezależnie od tego, czy wybierasz React, Vue, czy Livewire. Dzięki gotowym starter-kitom, Tailwindowi 4, Vite 6 i shadcn/ui, masz do dyspozycji kompletne środowisko do pracy w mniej niż 5 minut.

Poniżej przedstawiamy prosty krok po kroku proces uruchomienia projektu z Laravel 12 i starter-kitem React.


⚙️ Krok 1: Instalacja nowej aplikacji Laravel

Jeśli masz zainstalowany Laravel Installer:

laravel new my-app --kit=react

Alternatywnie przez Composer:

composer create-project laravel/laravel my-app
cd my-app
php artisan breeze:install react

📦 Krok 2: Instalacja zależności JavaScript

npm install

🚀 Krok 3: Kompilacja assetów i uruchomienie środowiska developerskiego

npm run dev
php artisan migrate
php artisan serve

Teraz Twoja aplikacja będzie dostępna pod http://localhost:8000, a frontend z HMR działa przez Vite na localhost:5173.


📁 Co zawiera gotowy starter-kit React?

  • Zintegrowany React 19 + Vite 6 + Tailwind CSS 4
  • Komponenty shadcn/ui w folderze resources/js/components/ui/
  • Strony logowania, rejestracji, dashboard (resources/js/Pages/)
  • Layout bazowy (resources/js/Layouts/AuthenticatedLayout.jsx)

🧪 Gotowa aplikacja w kilka minut

Laravel 12 pozwala każdemu – od juniora po architekta – uruchomić nowoczesne SPA z backendem PHP i frontendem React/Vue bez potrzeby tworzenia API, konfiguracji Webpacka, proxy czy struktury katalogów. Wszystko jest na swoim miejscu – gotowe do rozwoju.

W kolejnym punkcie omówimy, dla kogo ta zmiana jest najbardziej korzystna, a kto może wciąż preferować bardziej klasyczne podejście do projektów Laravelowych.

Dla kogo jest Laravel 12 i jego nowe podejście do developmentu?

Laravel 12 wprowadza wiele nowoczesnych usprawnień, ale nie każdy projekt i nie każdy zespół musi (lub powinien) z nich korzystać. To wydanie jest wyraźnym ukłonem w stronę frontend developerów i zespołów tworzących aplikacje typu SPA, ale pozostawia też pole manewru dla tych, którzy preferują klasyczne podejście Blade + PHP.

Poniżej prezentujemy, dla kogo Laravel 12 będzie najlepszym wyborem – i dlaczego.


✅ Laravel 12 jest idealny dla:

🧑‍💻 Frontendowców i zespołów JS-first

  • Pracujesz z React lub Vue?
  • Znasz Tailwind CSS i nie chcesz korzystać z Bootstrap?
  • Lubisz Inertia.js i nie chcesz budować API?

Laravel 12 daje Ci kompletne SPA gotowe do działania z aktualnym stackiem JavaScript.

🧪 Twórców startupów i MVP

  • Breeze lub Jetstream pozwalają uruchomić aplikację z logowaniem, dashboardem i layoutem w kilka minut.
  • Dla MVP to ogromna oszczędność czasu – możesz skupić się na funkcjonalności, nie konfiguracji.

🧑‍🎓 Nowych programistów uczących się Laravel

  • Dzięki prostocie i aktualnym standardom Laravel 12 to idealna baza do nauki Reacta + PHP + Tailwind + Vite.

🏢 Firm i agencji tworzących panele admina i aplikacje B2B

  • Z Laravel 12 można szybko tworzyć nowoczesne systemy wewnętrzne i panele klientów
  • shadcn/ui eliminuje potrzebę tworzenia własnego systemu komponentów UI

⚠️ Kiedy warto się wstrzymać?

🔹 Jeśli tworzysz klasyczną stronę z treścią

  • Proste strony informacyjne, blogi, strony statyczne – Laravel 12 jest tu „przerostem formy nad treścią”

🔹 Jeśli Twój zespół nie zna JavaScript (TSX, JSX, Inertia, Vite)

  • Lepiej pozostać przy Blade + Livewire lub Laravel 10/11 z Bootstrapem

🔹 Gdy zależy Ci na pełnej kontroli nad warstwą API (np. z GraphQL)

  • Laravel 12 z Inertia to monolit – nie dla headless CMS czy rozdzielonych systemów frontend/backend

Laravel 12 to krok w stronę nowoczesnego developmentu – ale z zachowaniem elastyczności. Nie musisz porzucać Blade, by korzystać z dobrodziejstw frameworka. Jednak jeśli chcesz tworzyć dynamiczne, wydajne i dobrze wyglądające aplikacje – Laravel 12 z React/Vue + shadcn/ui to prawdopodobnie najlepszy punkt wyjścia.

W ostatnim punkcie podsumujemy wszystkie zmiany i przedstawimy rekomendacje wdrożeniowe.

Laravel 12 – podsumowanie i rekomendacje

Laravel 12 to wydanie, które nie tylko aktualizuje framework do nowych technologii, ale też zmienia sposób, w jaki zaczynamy budowę nowoczesnych aplikacji.
Dzięki starter-kitom z Reactem, Vue, Livewire, Tailwind CSS 4, shadcn/ui i Vite 6 – Laravel 12 staje się frameworkiem kompletnym zarówno dla backendowców, jak i frontendowców.


🔑 Najważniejsze zmiany w skrócie:

  • Breeze 2.0 i Jetstream 3.0 z obsługą React, Vue i Livewire
  • Tailwind CSS 4 jako domyślny silnik stylów
  • shadcn/ui jako nowy standard UI w Laravel (React/Vue)
  • Vite 6 jako superszybki bundler do TypeScript/JSX/SPA
  • Inertia.js jako most pomiędzy PHP i frontendem

✅ Co zyskał Laravel 12?

  • Dużo prostszy start nowych projektów
  • Kompletne SPA w kilka minut
  • Świetna integracja backendu i frontendu w jednym ekosystemie
  • Znaczne uproszczenie konfiguracji i infrastruktury

⚠️ Na co zwrócić uwagę przy wdrożeniu?

  • Unikaj mieszania podejść (SPA + klasyczne Blade) bez strategii
  • Zespół powinien znać podstawy Vite, Tailwind i React/Vue, by w pełni wykorzystać możliwości Laravel 12
  • Warto używać dedykowanego starter-kita zamiast własnej konfiguracji (bo to oszczędność czasu i mniej błędów)

🧠 Rekomendacje końcowe:

  • Chcesz budować nowoczesny panel admina, SaaS lub MVP? Laravel 12 + React + Tailwind + Inertia + shadcn/ui to idealna baza.
  • Pracujesz z zespołem JS/TS? Laravel 12 doskonale łączy światy PHP i frontendu.
  • Potrzebujesz szybko uruchomić logowanie i dashboard? Breeze/Jetstream dają gotowe rozwiązania w kilka minut.

Laravel 12 to logiczny i bardzo udany krok naprzód. Jest lekki, szybki, modularny i elastyczny. Daje wybór, nie narzuca stylu pracy – i właśnie dlatego warto się nim zainteresować.

Udostępnij ten post

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *