Przejdź do treści

Case study

Portfolio dla współczesnej malarki

Pi Square tworzy malarstwo olejne i akrylowe w trzech cyklach twórczych. Strona miała przenieść siłę płótna do sieci — bez WordPressa, bez bloatu, z prawdziwą szybkością.

Wszystkie realizacje
Portfolio artystyczne2026Astro 6 · CSS · TypeScript

Wyzwanie

Z czym przyszedł klient

Malarka Pi Square miała istniejącą stronę na WordPress z ciężkimi JPEG-ami i wynikiem PSI Mobile poniżej 50. Galeria na 30+ obrazów ładowała się po 8 sekundach — w segmencie sztuki, gdzie pierwsze wrażenie wizualne decyduje o tym, czy kolekcjoner wróci. Dodatkowo: dwie wersje językowe (PL/EN) dla rynku polskiego i zagranicznego, lightbox do oglądania detalów obrazów w pełnej rozdzielczości, czytelna biografia artystki bez korporacyjnego tonu. Migracja z WordPressa bez straty URL-i.

Podejście

Jak to rozwiązaliśmy

Astro 6 z pełnym static outputem — zero runtime JS po stronie serwera, HTML serwowany bezpośrednio z Cloudflare Pages CDN. Strategia obrazów: AVIF primary + WebP fallback przez picture element, dwa srcset (1240px desktop + 640px mobile), media query blokuje PSI DPR-trap. Self-hosted Inter via @fontsource (brak round-tripu do Google Fonts). CSS inlineowany — 0 render-blocking requestów. Dwujęzyczność: EN w src/pages/, PL w src/pages/pl/ — manual mirror bez i18n pluginu.

Rezultaty

Co udało się osiągnąć

95+

PSI Mobile (migracja z WP < 50)

AVIF

primary format — 60% lżejszy niż JPEG

0

render-blocking requestów

EN + PL

pełna dwujęzyczność bez i18n pluginu

Zakres prac

Co zbudowaliśmy

AVIF + WebP picture elements

Każdy obraz jako picture z AVIF primary i WebP fallback. Dwa srcset: 1240px desktop + 640px mobile. Oszczędność 50-70% vs JPEG.

DPR-trap fix via source media

source media='(max-width: 620px)' wymusza 640px na mobile niezależnie od DPR urządzenia. PSI nie wyświetla błędu 'oversized images'.

Self-hosted font, zero FOUT

@fontsource/inter — pliki woff2 w public/assets/fonts/. Preload w head, font-display: swap. Brak round-tripu do Google.

CSS inlineowany w head

Astro inlineStylesheets: 'always' — cały CSS wbudowany w HTML. 0 render-blocking stylesheet requestów, LCP widzi tekst natychmiast.

Lightbox vanilla JS

30+ obrazów z możliwością oglądania w pełnej rozdzielczości (do 1920px). Klawiatura (Esc, strzałki), swipe mobile, focus trap, reduced-motion.

Bilingual EN/PL bez pluginu i18n

EN w src/pages/, PL w src/pages/pl/ — ręczny mirror. Przewidywalne URL-e, pełna kontrola nad SEO per język, zero zależności od pluginu.

Migracja z WordPress

Przeniesienie treści, obrazów i struktury z WP. Nowe AVIF generowane z oryginałów 1920px z lokalnego WP.

PSI Mobile 95+, Desktop 99-100

All audit-doctor checks pass. Speed Index < 2s na Slow 4G dzięki inlined CSS, self-hosted font i Cloudflare Pages anycast.

Stack technologiczny

Z czego jest zbudowane

Astro 6.3TypeScriptCSS3 (inlined)Cloudflare PagesAVIF + WebP picture@fontsource/interVanilla JS lightbox

Czas realizacji

niecałe 3 tygodnie

Twój projekt może być następny. Wyślij brief — przygotujemy konkretną propozycję w jeden dzień roboczy.

Wyceń podobny projekt

Twój projekt może być następny

Masz pomysł? Zrealizujemy go.

Niezależnie czy potrzebujesz nowej strony, sklepu czy modernizacji — wyślij brief i porozmawiajmy.