· Szymon Berski · Portfolio  · 7 min czytania

Katalog czesci i akcesoriow

Katalog oryginalnych czesci OEM do Volkswagena Polo 6R oparty na headless CMS. Frontend Astro SSG z interaktywnymi narzędziami Vue 3, backend Laravel REST API, panel Filament, automatyczne tlumaczenia DeepL, opisy generowane przez AI oraz pipeline obrazow na Cloudflare R2.

Katalog oryginalnych czesci OEM do Volkswagena Polo 6R oparty na headless CMS. Frontend Astro SSG z interaktywnymi narzędziami Vue 3, backend Laravel REST API, panel Filament, automatyczne tlumaczenia DeepL, opisy generowane przez AI oraz pipeline obrazow na Cloudflare R2.

Katalog czesci i akcesoriow VW Polo 6R

Kompleksowy, wielojezyczny katalog oryginalnych czesci OEM i akcesoriow do Volkswagena Polo 6R/6C, zbudowany w pelni oddzielonej architekturze headless. Statyczny frontend Astro pobiera dane z Laravel REST API w czasie budowania, generujac czyste strony HTML bez zapytan do bazy danych w czasie dzialania. Choc nie jest to sklep internetowy, posiada wiele funkcji typowych dla e-commerce — listy produktow, filtrowanie, wyszukiwanie, szczegolowe specyfikacje — z wyjatkiem obslugi platnosci.

Projekt przeszedl kilka iteracji: od wczesnego SPA w Vue 2, przez Vue 3, do obecnej konfiguracji Astro 6 SSG z wyspami Vue 3 dla interaktywnych komponentow.

Architektura: Headless CMS + Statyczny Frontend

System jest podzielony na dwa niezalezne repozytoria:

Frontend (catalog.polo.blue) — statyczny generator Astro 6 z komponentami Vue 3, stylowaniem UnoCSS i wlasnym systemem designu. Wszystkie dane sa pobierane z API wylacznie podczas kroku budowania. Przegladarka nigdy nie kontaktuje sie bezposrednio z backendem (z wyjatkiem narzedzi po stronie klienta, jak dekoder kodow PR).

Backend — aplikacja Laravel 13 serwujaca REST API i panel administracyjny Filament 5. Zarzadza produktami, kategoriami, tlumaczeniami, mediami, danymi SEO i wdrozeniami strony. Oparty na MySQL, Redis (kolejki przez Laravel Horizon do zadan w tle jak konwersja obrazow, tlumaczenia i buildy strony) i Cloudflare R2 jako storage CDN. Wdrozenia strony mozna uruchamiac bezposrednio z panelu administracyjnego.

Ta separacja oznacza, ze frontend jest czysto statyczna strona — szybka, bezpieczna i globalnie cachowalana przez Cloudflare CDN.

Pipeline obrazow i CDN

Kluczowym wyzwaniem byla optymalizacja obrazow przy rozbudowanym katalogu produktow i przewadze ruchu mobilnego. Rozwiazanie ewoluowalo od kompresji w czasie budowania przez Sharp/Astro do pipeline’u po stronie backendu:

  1. Upload — Obrazy sa przechowywane na Cloudflare R2 (kompatybilnym z S3) przez Spatie Media Library
  2. Konwersja — Kolejki Laravel Horizon generuja miniaturki w wielu rozmiarach w formatach AVIF i WebP
  3. Dostarczanie — Serwowane z dedykowanej subdomeny CDN z zdenormalizowanymi URL-ami zapisanymi bezposrednio na modelach Product/Category, eliminujac zapytania JOIN w widokach list
  4. Monitoring — Widget CDN Stats w panelu administracyjnym sledzi calkowity storage, rozklad per model i procent produktow z kompletem konwersji

WebP sluzy jako fallback dla AVIF ze wzgledu na jego wciaz ograniczone indeksowanie w Google Image Search.

Katalog VW Polo 6R

Wielojezycznosc i automatyczne tlumaczenia

Katalog obsluguje trzy jezyki — angielski, polski i niemiecki. Cala tlumaczalna tresc (produkty, kategorie, kolory, materialy, kody PR, wpisy FAQ i wiecej) wspoldzieli jeden zunifikowany system tlumaczen, wiec dodanie nowego jezyka nie wymaga zmian w schemacie bazy.

  • DeepL API automatycznie tlumaczy tresc z angielskiego na polski i niemiecki przez zadania kolejkowane w tle
  • Opisy generowane przez AI uzywaja lancucha fallbackow na wielu dostawcach LLM do generowania angielskiej tresci, ktora jest nastepnie tlumaczona przez DeepL
  • Struktury URL per jezyk (/ dla EN, /pl/ dla polskiego, /de/ dla niemieckiego) z prawidlowo skonfigurowanymi tagami hreflang
  • Statyczne napisy UI ladowane z plikow JSON, tlumaczenia tresci serwowane juz zlokalizowane przez API

Optymalizacja wydajnosci

System podzielonego budowania

Budowanie wszystkich trzech lokalizacji w jednym przebiegu Astro powodowalo wyczerpanie pamieci (10-20 GB RAM). Rozwiazanie: wlasny skrypt split build przetwarzajacy jedna lokalizacje na raz, uruchamiajacy indeksowanie Pagefind per lokalizacja, a nastepnie laczacy wszystko w koncowy katalog dist/. Calkowity czas budowania: ~5-6 minut dla wszystkich lokalizacji.

Redukcja zapytan API

Cache prefetch kategorii pobiera wszystkie produkty per glowna kategoria w pojedynczym zapytaniu API, nastepnie filtruje lokalnie. Zredukowalo to ~60 indywidualnych zapytan API do kilku wywolan wsadowych podczas budowania.

Wydajnosc frontendu

  • content-visibility: auto na elementach produktow poza ekranem, redukujac koszt renderowania
  • Stan zwiniecia sidebara przywracany z localStorage przed pierwszym renderowaniem, zapobiegajac CLS
  • Preloading czcionek (czcionki marki VW), preconnect do CDN i domen analitycznych
  • Reczne chunki Vite oddzielajace kod vendora (Vue, design system) od kodu stron
  • Pierwsze 3 obrazy produktow ladowane natychmiast, z fetchpriority="high" na pierwszym obrazie; reszta leniwie
Katalog VW Polo 6R - nawigacjaKatalog VW Polo 6R - wyszukiwarka

SEO i odkrywalnosc

Silne SEO jest glownym zrodlem ruchu, szczegolnie z wyszukiwarek grafiki. Kluczowe strategie:

  • Dane strukturalne (JSON-LD) — Rozbudowany markup @graph z IndividualProduct (nie Product, aby sygnalizowac katalog nie-handlowy), BreadcrumbList, ItemList dla stron kategorii i encje Organization
  • Mapy witryny XML — Generowane po stronie serwera per lokalizacja i typ (produkty, kategorie, strony), pobierane w czasie budowania z arkuszami stylów XSL do wyswietlania w przegladarce
  • llms.txt — Pliki odkrywalnosci AI/LLM zgodne ze specyfikacja llmstxt.org
  • Linkowanie wewnetrzne — Powiazane produkty, podobne produkty i przyciski nawigacji w kategorii (zwalidowane testami A/B) poprawiaja przeplyw linkow i uzytkownikow
  • Pagefind — Offline’owe wyszukiwanie pelnotekstowe indeksowane per lokalizacja, bez zewnetrznych zaleznosci
  • Dashboard SEO — Widgety panelu administracyjnego audytuja krotkie/dlugie tytuly, brakujace opisy i kompletnosc danych we wszystkich trzech jezykach

Interaktywne narzedzia

Trzy narzedzia Vue 3 po stronie klienta wzbogacaja uzytowalnosc katalogu:

  • Kalkulator opon i felg — Porownuje dwie konfiguracje opon/felg, oblicza roznice srednicy i odchylenie predkosciomierza, z wizualizacja SVG
  • Przelicznik mocy — Konwertuje miedzy KM, kW i PS z wizualnym wykresem slupkowym
  • Dekoder kodow PR — Dekoduje fabryczne kody opcji VW (3-znakowe) odpytujac API, z cachowaniem po stronie klienta

Narzedzia te sa wyizolowane w osobnej trasie Astro, aby ich CSS (~25 KB) nie wplywal na glowne strony katalogu.

Backend i panel administracyjny

Backend oparty na Laravel 13 i Filament 5 dostarcza REST API i zapewnia kompleksowy panel administracyjny zorganizowany w funkcjonalne klastry:

Zarzadzanie trescia

  • Zarzadzanie produktami ze szczegolowymi specyfikacjami, kodami PR, kompatybilnoscia silnikow i obsluga wielu jezykow
  • Hierarchiczna organizacja kategorii z zarzadzaniem ikonami i obrazami OG
  • Kreator stron CMS z 13 typami blokow (hero, jumbotron, karuzela, CTA, FAQ, statystyki itp.)
  • Zarzadzanie tlumaczeniami z automatyzacja wsadowa DeepL i flagami ochrony dla krytycznych tlumaczen

REST API

API uzywa konfigurowalnych presetow odpowiedzi kontrolujacych glebokosc dolaczanych danych per endpoint — utrzymujac lekkie odpowiedzi dla list i bogate dla widokow szczegolowych. Naglowki cache HTTP sa dostrajane per trasa, aby zmaksymalizowac trafienia CDN.

Dashboardy analityki i monitoringu

  • Google Analytics 4 — Odslony, odwiedzajacy, sesje, urzadzenia, top referrerzy, dane geograficzne (14 widgetow)
  • Google Search Console — Klikniecia, wyswietlenia, CTR, srednia pozycja, top strony i zapytania
  • Core Web Vitals — Sledzenie szeregu czasowego CLS, LCP, INP
  • Google AdSense — Sledzenie przychodow z wielu stron z alertami o spadkach

Operacje i utrzymanie

  • Wdrazanie strony jednym kliknieciem uruchamiajace buildy Astro przez zadania kolejkowane (osobna kolejka site-build, aby nie blokowac zadan tlumaczen/mediow)
  • Czyszczenie cache Cloudflare wedlug URL, prefiksu lub typu modelu
  • Narzedzia backup/przywracania bazy danych
  • Logowanie aktywnosci i pelna sciezka audytu
  • Dashboard kompletnosci danych audytujacy brakujace media, tlumaczenia, opisy i jakosc linkow

Baza wiedzy FAQ

Katalog zawiera zintegrowany system FAQ dostarczajacy specyfikacje techniczne i poradniki dla VW Polo 6R. Tresc jest zorganizowana wedlug kategorii produktow (opony, felgi, olej silnikowy, klimatyzacja, hamulce, zawieszenie, czesci karoserii) i obsluguje wielojezyczne wyswietlanie z linkami do szczegolowych wpisow na blogu.

Wdrazanie

Frontend uzywa strategii wdrazania atomowego:

  • Push do main uruchamia GitHub Actions
  • Split build Astro wykonywany na serwerze hostingowym
  • Kazde wydanie trafia do katalogu ze znacznikiem czasu; public_html to symlink
  • Rollback trwa ponizej 1 sekundy przez przepiecie symlinka na poprzednie wydanie

Wykorzystane technologie

Astro

Statyczny generator z czesciowa hydratacja — laduje JavaScript tylko dla interaktywnych wysp Vue. System podzielonego budowania obsluguje 3 lokalizacje bez wyczerpania pamieci.

Vue.js

Napedza interaktywne komponenty: galerie produktow ze Swiperem, kalkulator opon, przelicznik mocy, dekoder kodow PR i pasek detekcji jezyka.

Laravel

Backend REST API z konfigurowalnymi presetami odpowiedzi, zadaniami kolejkowanymi przez Horizon i storage Cloudflare R2. Serwuje dane w czasie budowania i obsluguje zapytania w runtime.

FilamentPHP

Panel administracyjny z 19+ zasobami i 36+ widgetami zorganizowanymi w klastry: tresc, lokalizacja, analityka (GA4, GSC, Web Vitals, AdSense) i utrzymanie (deploy, cache, backupy).

UnoCSS

Atomowy silnik CSS ze wspoldzielona konfiguracja eksportowana z wlasnego systemu designu, zapewniajac spojne stylowanie we wszystkich projektach.

Progressive Web App (PWA)

Instalowalna aplikacja z service workerem Workbox, strategia NetworkFirst dla stron (3s timeout), manifestami per lokalizacja i automatycznymi aktualizacjami w tle.

Cloudflare

Globalne CDN dla zasobow statycznych, storage R2 dla obrazow produktow (AVIF/WebP), ochrona DDoS i czyszczenie cache kontrolowane z panelu administracyjnego.

Pagefind

Offline'owe wyszukiwanie pelnotekstowe budowane per lokalizacja w czasie kompilacji. Bez zewnetrznego serwisu wyszukiwania — caly indeks zyje w statycznych plikach obok HTML.

DeepL i AI

Zautomatyzowany pipeline tlumaczen (EN → PL, DE) przez DeepL API. Opisy producentow generowane przez AI z lancuchem fallbackow na wielu dostawcach LLM.

Google Tag Manager

Zarzadza Analytics 4, AdSense i raportowaniem Web Vitals. Zdarzenia GTM dataLayer sledzą wyswietlenia produktow, nawigacje po kategoriach i Core Web Vitals z atrybucja.

Silne SEO, optymalizacja obrazow i dane strukturalne przyciagaja znaczacy ruch organiczny — szczegolnie z wyszukiwarek grafiki — podczas gdy architektura headless utrzymuje strone szybka, bezpieczna i latwa w utrzymaniu.

Powrót do portfolio

Powiązane wpisy

Czytaj więcej
VW Polo 6R user manual

VW Polo 6R user manual

Virtual owner's manual for Volkswagen Polo 6R, designed as a PWA with dark mode and search functionality for easy access to essential vehicle information.

Spoko Design System

Spoko Design System

An open-source Astro-based design system with Vue 3 components and UnoCSS styling. Published as npm package and serving as both documentation site and reusable component library.

Modern Car Blog

Modern Car Blog

Automotive blog built with Astro, Vue3, UnoCSS, REST API, and WordPress.

SEO agency website

SEO agency website

Showcase for a freelance SEO expert dedicated to improving online visibility and driving organic traffic for businesses.