Punkt wyjścia
Pokazać markę i ułatwić wybór kosmetyków. Połączyć aktualny katalog i poradniki z zakupem w e-fontannie, a zespołowi dać wygodną edycję strony.
Strona marki / Katalog / Integracje
Od poznania marki do wyboru produktu.

Prezentacja rzeczywistej witryny.
Historia realizacji
INIKA to projekt, w którym wygląd strony jest tylko częścią pracy. Za prezentacją marki stoją katalog zasilany danymi sklepu, panel edycji, poradniki i narzędzia wyboru. Przeszedłem z nim drogę od przejęcia aplikacji z Replit, przez uruchomienie na Firebase, po własne rozwiązanie na WordPressie. Zakup odbywa się w e-fontannie – strona INIKA pomaga wcześniej poznać ofertę i wybrać produkt.
Pokazać markę i ułatwić wybór kosmetyków. Połączyć aktualny katalog i poradniki z zakupem w e-fontannie, a zespołowi dać wygodną edycję strony.
Odpowiadam za rozwój aplikacji, backend i integrację Shoper, migrację na WordPressa, własny motyw i wtyczki, panel edycji, SEO, analitykę oraz widoki na komputerze i telefonie.
Dane handlowe ze sklepu, z rozdzieleniem synchronizacji i treści redakcyjnych.
Panel edycji z krótkimi formularzami, biblioteką zdjęć i wyszukiwaniem produktów.
Poradniki i narzędzia pomagają wybrać kosmetyk, a link prowadzi do jego karty w e-fontannie.
Zakres mojej pracy
10 marca przejąłem kompletny projekt z Replit: React, TypeScript, backend Express i bazę PostgreSQL w Neon. Dostosowałem build, routing, sesje, przesyłanie zdjęć i konfigurację do Firebase Hosting oraz Functions. Uruchomiłem publiczną witrynę i panel administracyjny. Początkowo zachowałem istniejącą bazę; przeniesienie danych do Firestore było kolejnym etapem.
Po problemach z dostępnością Neon dopracowałem awaryjny odczyt katalogu, limity czasu i reakcję strony na błąd API. 8 kwietnia przeniosłem aktywne dane i sesje do Firestore, odcinając działającą aplikację od Neon. Naprawiłem też przypisania kategorii, filtry dostępności i linki do produktów, żeby poszczególne widoki pokazywały zgodną ofertę.
W aplikacji połączyłem katalog z API Shopera i zautomatyzowałem jego odświeżanie. Obsłużyłem cenę bieżącą, regularną, promocyjną oraz najniższą cenę z 30 dni przed obniżką. Dopracowałem dostępność, kategorie, zdjęcia i harmonogram synchronizacji. Dane handlowe oddzieliłem od treści redakcyjnych. Zakup pozostał w e-fontannie – przy właściwym produkcie, zamiast w drugim koszyku.
Usunąłem ciężkie obrazy base64 z odpowiedzi katalogu, wprowadziłem lżejsze adresy zdjęć i cache oraz podział kodu na części. Poprawiałem pierwszy ekran i moment wczytywania produktów. W czerwcu ograniczyłem stałą pracę funkcji chmurowych: skalowanie do zera i limit liczby instancji. Po migracji wróciłem do pomiarów. Test PageSpeed strony głównej z 20 października dał 97/100 na telefonie i 100/100 na komputerze. To zapis pojedynczego pomiaru laboratoryjnego, nie stała gwarancja.
Rozbudowałem produkty, kategorie, bestsellery, promocje, poradniki i kolekcje. Pracowałem nad galeriami, składnikami, certyfikatami oraz powiązaniami treści z produktami. W lipcowym etapie aplikacja miała 82 aktywne produkty i 18 poradników oraz kolekcji. To zakres tamtego wdrożenia; katalog później rozwijał się dalej.
Rozbudowałem pierwotny panel tak, aby rzeczywiste treści strony dawały się edytować: banery, menu, sekcje marki, produkty, kategorie, FAQ, newsletter, kontakt i odnośniki społecznościowe. Porządkowałem mapowanie pól na widoki, usuwałem puste wartości i teksty demonstracyjne. Testowałem zapis oraz odczyt po odświeżeniu. To zaplecze rozwijałem przed późniejszą decyzją o migracji na WordPressa.
Przygotowałem własny motyw i wtyczki, aby przenieść wygląd, katalog i funkcje aplikacji do WordPressa. Treści, zdjęcia, składniki, certyfikaty i quiz otrzymały edycję w panelu. Katalog otrzymał własną wtyczkę z obsługą integracji Shoper. Zachowałem wyszukiwanie, sortowanie całego katalogu, stronicowanie i ręczne ukrywanie produktów. Zapis newslettera połączyłem z listą e-fontanny. Sprawdziłem też niezależność nowej instalacji od starego zaplecza Firebase. Odwiedzający nadal wybiera na stronie marki, a kupuje w e-fontannie.
W październikowym etapie rozbudowałem galerie 64 produktów do 2–6 zdjęć z miniaturami i powiększaniem. Dla 45 produktów przygotowałem proste objaśnienia składników oparte na potwierdzonym INCI i słowniku marki. Dodałem dziewięć objaśnień certyfikatów z oficjalnymi źródłami. Zdjęcia i informacje pochodzą z materiałów marki; moją pracą są opracowanie, powiązania i edycja tych sekcji w panelu.
Po migracji sama możliwość edycji nie wystarczała – długa lista ustawień była niewygodna. Zastąpiłem ją sześcioma czytelnymi kafelkami, krótkimi formularzami i jednym przyciskiem zapisu. Dodałem wybór zdjęć z biblioteki, wyszukiwanie produktów i zwijane ustawienia dodatkowe. Sprawdziłem zapisy banera, produktu i quizu także w wąskim widoku, przywracając dane po próbach.
Najpierw uruchomiłem osobną kopię i sprawdziłem jej widoki. 19 października opublikowałem WordPressa pod inikaorganic.pl. Prace objęły HTTPS, wariant www, przekierowania, adresy produktów i poradników oraz mapę strony. Kontrolowałem publiczne odpowiedzi i canonicale, zachowując konfigurację poczty.
Dodałem i dopracowałem quiz doboru pielęgnacji, porównywarkę produktów oraz pomoc w wyborze odcienia. Narzędzia korzystają z rzeczywistego katalogu. Porównywarka pokazuje wybrane kosmetyki obok siebie; quiz kończy się rekomendacją z odnośnikami. Zadbałem też o wspólne menu, stopkę i wygląd tych podstron.
Po migracji połączyłem witrynę z GA4 i zachowałem usługę Search Console. Pomiar uruchamia się po zgodzie, którą można wycofać z ustawień w stopce. Oznaczyłem przejścia do e-fontanny, aby odróżniać miejsca, z których odwiedzający wychodzą do sklepu. Połączyłem pomiar obu domen i sprawdziłem sekwencję: wejście na INIKĘ, przejście do sklepu, produkt, koszyk i rozpoczęcie zamówienia. Końcowy zakup pozostaje do osobnego potwierdzenia – nie utożsamiam kliknięć ze sprzedażą.
Zbudowałem w WordPressie panel łączący GA4 i Search Console: bieżącą aktywność, źródła ruchu, oglądane strony, przejścia do sklepu i kolejne etapy ścieżki. Dodałem wybór okresu, zapytania Google oraz eksport CSV. Rozdzieliłem dane czasu rzeczywistego, opóźnione raporty i testowe wejścia, żeby panel nie przedstawiał braku danych jako potwierdzonego wyniku.
Uporządkowałem metadane, canonicale, linkowanie, mapę strony oraz dane strukturalne produktów i artykułów. Istotne treści są obecne w HTML serwera. Kontrola z 21 października objęła 116 adresów mapy: odpowiedzi 200, pojedyncze H1 i własne canonicale. To wynik kontroli technicznej, nie obietnica pozycji w wyszukiwarce.
Sprawdzałem nowe podstrony na szerokim i wąskim ekranie: nawigację, galerie, quiz, porównywanie i dobór odcienia. Poprawiłem proporcje nagłówków, menu mobilne, reakcje przycisków, stopkę i ikonę marki. Testowałem rzeczywiste przejścia i wyniki narzędzi. Kontrola zamówienia w sklepie pozostaje osobnym etapem.
Frontend, Express, istniejąca baza Neon, zdjęcia, sesje i panel administracyjny.
Migracja danych i sesji oraz poprawki odporności katalogu.
Edycja sekcji strony, mapowanie pól, porządkowanie treści i testy panelu.
Skalowanie funkcji do zera i ograniczenie liczby instancji.
Synchronizacja, produkty, poradniki, kolekcje i testy CMS.
Własny motyw i wtyczki, edycja treści oraz wersja testowa.
WordPress, HTTPS, przekierowania i GA4 ze zgodami.
Sześć kafelków edycji i test PageSpeed: 97 mobile, 100 desktop.
Porównywarka, dobór odcienia, spójność widoków oraz panel GA4/Search Console z CSV.
Przegląd 116 adresów mapy i dopracowanie favicony.
Rozwijam stronę marki i jej połączenie z e-fontanną. Kolejne decyzje opieram na zachowaniu odwiedzających i potrzebach zespołu. Marka, produkty i materiały INIKA należą do ich właścicieli; moją pracą są witryna, integracje, narzędzia i ich rozwój.