Piszę oprogramowanie dla stron i sklepów, które już zarabiają albo mają zacząć: kod po stronie serwera, integracje między systemami i front-endy, które na tym stoją. Jestem Mariusz Szatkowski, pracuję z WordPressem od 2006 roku, w Gdyni, i robię to sam.
Kto pisze kod
WPPoland to nazwa, pod którą od 2007 roku prowadzę działalność. Zaczynałem od WordPressa, potem doszły WooCommerce, TypeScript i Node.js, front-endy headless w Astro i Next.js oraz kod uruchamiany na Cloudflare Workers.
To węższe znaczenie słowa “software developer” niż w ogłoszeniach o pracę i tak ma być. Nie mam zespołu mobilnego, grafików ani juniorów, którym przekazuję zlecenia. Kod, który dostajesz, piszę ja, twój istniejący kod czytam ja i ja za niego odpowiadam.
Co piszę
- Integracje. Sklep WooCommerce, który musi zgadzać się z ERP, cennikiem hurtowni, programem księgowym albo magazynem. W Polsce dochodzi KSeF: faktura po zamówieniu ma trafić do krajowego systemu, a sklep powinien wiedzieć, czy trafiła. Samo wywołanie API jest proste. Trudniej ustalić, który system jest źródłem prawdy dla stanów, cen i statusów i co zrobić, gdy dwa z nich się nie zgadzają.
- Sklep od środka. Logika koszyka i zamówienia, płatności (w polskim sklepie zwykle Przelewy24, PayU, BLIK), wysyłka przez InPost czy kurierów i wydajność mierzona na danych od prawdziwych klientów.
- Wtyczki WordPress z prawdziwym modelem danych: zadania w tle, REST, WP-CLI i ekrany w panelu, które redaktor obsłuży bez instrukcji.
- Front-endy headless. Astro albo Next.js na WordPressie, wdrażane na Cloudflare. Ma to sens przy stabilnym modelu treści. Przy wizytówce zmienianej dwa razy w roku nie ma.
- Integracje AI i MCP, domyślnie tylko do odczytu, z logowaniem i możliwością wycofania.
Na czym piszę i kiedy czego nie używam
| Warstwa | Narzędzie | Biorę, gdy | Nie biorę, gdy |
|---|---|---|---|
| Serwer | PHP 8 i WordPress | Potrzebni są redaktorzy, konta użytkowników, wtyczki i tani hosting | To długo działająca usługa bez treści |
| Sklep | WooCommerce | Katalog i zamówienia mają zostać w twojej bazie | Ograniczenia platformy SaaS ci nie przeszkadzają |
| Usługi i skrypty | TypeScript na Node.js | Procesy integracyjne, narzędzia CLI, serwery MCP | To samo robi już jedna komenda WP-CLI |
| Masowe dane | Kotlin i Spring Boot | Długie importy z kolejką i ponawianiem | Twój zespół utrzymuje tylko PHP |
| Front-end | Astro | Strony z dużą ilością treści, w większości statyczne | Interfejs to aplikacja z dużą ilością stanu |
| Front-end | Next.js | Front-end przypominający aplikację | Strona to głównie teksty |
| Brzeg sieci | Cloudflare Workers i Pages | Cache, przekierowania, małe API blisko odwiedzającego | Zadanie trzyma połączenie z bazą przez minuty |
| Narzędzia | Python | Kontrole danych, analiza dokumentów, jednorazowe migracje | Kod, który twój zespół ma dalej utrzymywać w PHP |
Język ma mniejsze znaczenie niż granice. Dobrze napisany system to taki, w którym wiadomo, który element jest właścicielem jakich danych, co działa gdzie i jak cofnąć wdrożenie z zeszłego wtorku.
Kod, który możesz sprawdzić sam
- wppoland/woocommerce-mcp: serwer Model Context Protocol dla WordPressa i WooCommerce w TypeScript, licencja MIT. Ma pięć narzędzi (lista produktów, pojedynczy produkt, zamówienia, raport sprzedaży, wyszukiwanie wpisów) i żadnego, które cokolwiek w sklepie zmienia. Warto spojrzeć właśnie na tę decyzję.
- wppoland/hidden-text-detector: narzędzie w Pythonie, które w plikach PDF i DOCX szuka białego tekstu na białym tle, czcionek za małych do przeczytania, tekstu poza stroną i niewidocznych znaków Unicode. Napisałem je, bo umowy i zapytania ofertowe zaczęły przychodzić z poleceniami dla czytnika AI.
- Profil motylanogha na wordpress.org: 30 darmowych wtyczek w oficjalnym katalogu (stan na 29 października 2026), w tym Polski, który dostosowuje sklep do polskich przepisów (GPSR, Omnibus, RODO), Shoplex, Quotlet i Plogins Customs. To moje produkty z rodziny plogins.com, pisane na PHP 8.1 z PHPStan i PHPCS.
- Ta strona. wppoland.com to build Astro 7 na Cloudflare Pages w sześciu językach. Przed każdym wdrożeniem przechodzi automatyczne kontrole: linki, schema, sitemapy, nagłówki. Po przeniesieniu minifikacji HTML na wątki robocze we wrześniu 2026 build skrócił się w tym kroku z 910 do 199 sekund, przy wyniku identycznym co do bajtu.
Doświadczenie
Dwadzieścia lat pracy przy stronach i systemach, w większości w cudzym kodzie. Role są publiczne na LinkedInie, nazw klientów w ramach tych kontraktów nie podaję.
| Okres | Rola | Co robiłem |
|---|---|---|
| Od października 2025 | Full-stack engineer (kontrakt), agencja cyfrowa z Wiednia | Platforma subskrypcyjna dla mediów i sprzedaży: monorepo Composera z całą aplikacją WordPress, CI z dwiema bramkami wydań, subskrypcje w Stripe i usługa w Kotlinie i Spring Boot, która zbiera dane z ERP, CleverReach i adresów w Mauticu. Moja część: import pozycji faktur subskrypcyjnych i wysyłka do Mautica paczkami, nadzorowany backfill, ponawianie przy chwilowych błędach Mautica, runbooki |
| Od stycznia 2021 | Programista WordPress, WooCommerce i PHP (kontrakt), Equiqo, Berlin | WordPress, WooCommerce, HubSpot i Shopify na stacku Roots (Bedrock, Sage), wydajność i dane strukturalne |
| 2020 | Programista WordPress, Itineris, Ipswich (Wielka Brytania) | WordPress na Sage i Bedrock, CircleCI, wydajność i SEO |
| 2019 do 2020 | Programista WordPress (freelance), what., Zurych | WordPress pod konkretne potrzeby, wydajność, dane strukturalne |
| 2016 do 2019 | Programista WordPress, AirHelp | Wielojęzyczność, AMP i wydajność w serwisie z dużym ruchem, łącznik między działami |
| Do 2015 | Web developer i specjalista ds. marketingu internetowego, Vector Group, Gdynia | Strony, serwisy handlowe B2B, marketing w wyszukiwarkach |
| Od 2007 | WPPoland | Moja działalność |
Poza pracą dla klientów organizuję WordCamp Gdynia, od 2024 roku jestem w zespole organizacyjnym WordCamp Europe, a w Gdyni współorganizuję CMSConf.
Zanonimizowane studia przypadków, każde z opisem tego, co dało się zmierzyć, a czego nie: wydajność WooCommerce, migracja z TYPO3, serwer MCP dla redakcji, headless WooCommerce na Cloudflare, plan migracji do headless i AI w pracy z treścią. Szczegóły technologii: WordPress developer, programista WooCommerce, programista PHP, programista Astro, Next.js, Cloudflare edge, serwery MCP.
Freelancer, agencja czy software house
Jeden programista nie zawsze jest dobrym wyborem.
| Sytuacja | Ja | Agencja | Software house |
|---|---|---|---|
| Integracja albo ratowanie systemu, po twojej stronie jest jedna osoba decyzyjna | Pasuje: jedna osoba ogarnia cały problem | Zwykle wolniejszy start | Za ciężko |
| Nowy produkt, który naraz potrzebuje grafiki, front-endu i back-endu | Tylko z twoim grafikiem | Pasuje | Pasuje |
| Sześciu programistów w ciągu miesiąca | Nie | Możliwe | Pasuje |
| Wieloletnie utrzymanie WordPressa lub WooCommerce | Pasuje, z pisemnym planem ciągłości | Pasuje | Rzadko ich specjalność |
| Aplikacja mobilna | Nie | Zależy od agencji | Pasuje |
Prawdziwe ryzyko przy jednej osobie to ciągłość: choroba, urlop, dzień, w którym ktoś przestaje odpisywać. U mnie zabezpiecza to kod w twoim repozytorium od pierwszego commita, dokumentacja obok kodu, dostępy po twojej stronie i opis przekazania, z którego inny programista przejmie pracę bez dzwonienia do mnie. Umowę B2B zawieram według prawa polskiego, a warunki ciągłości wpisuję do niej wprost. Agencje, które szukają stałego wsparcia technicznego, znajdą modele współpracy na stronie partnerstwa.
Sześć pytań do każdego programisty
- Gdzie leży kod? W twoim repozytorium, od pierwszego dnia. Kto trzyma kod do zapłaty faktury, trzyma go jako zakładnika.
- Jak zmiana jest testowana przed produkcją? Staging, automatyczne kontrole i osoba, która zatwierdza wdrożenie. “Testuję na produkcji” to sygnał ostrzegawczy.
- Jak cofnąć wdrożenie? Wdrożyć umie każdy. Przećwiczony powrót ma niewielu.
- Co zmierzono przed startem? Obietnice szybkości i konwersji bez punktu odniesienia nic nie znaczą.
- Czego nie zrobisz? Kto nie ma granic, odkryje je na twój koszt.
- Mogę przeczytać coś, co napisałeś? Kod, artykuł albo dokument projektowy szybko pokazują, czy autor mówi o kompromisach.
Jak przejmuję kod po kimś innym
Większość zleceń zaczyna się w istniejącym systemie. Pierwsze dni czytam, zamiast przepisywać. Spisuję, które wtyczki i usługi trzymają logikę biznesową, jakie crony i webhooki działają i jakie dane leżą poza bazą, na przykład w panelu operatora płatności albo firmy kurierskiej. Ta mapa trafia do repozytorium. Problem odtwarzam na kopii na stagingu z zanonimizowanymi danymi klientów, żeby poprawkę udowodnić przed wdrożeniem. Brzydki, ale poprawny kod zostaje. Błędny wymieniam małymi krokami, które da się przejrzeć.
RODO i dostęp do twoich danych
Zanim dostanę dostęp do systemu z danymi osobowymi, podpisuję umowę powierzenia przetwarzania danych z art. 28 RODO. Podwykonawców nie mam, więc nikt poza mną tych danych nie dotyka.
- Konta zakładasz mi imiennie w swoich systemach i odbierasz po zakończeniu pracy. Żadnych wspólnych haseł admina w mailu.
- Dane produkcyjne kopiuję tylko wtedy, gdy to konieczne, trzymam je zaszyfrowane, na staging anonimizuję i usuwam po zakończeniu prac.
- Każde wdrożenie odpowiada commitowi, a każdy commit ma opisany powód.
- Umowy i zapytania ofertowe, które przychodzą do mnie, przepuszczam przez hidden-text-detector, zanim zacznę na ich podstawie cokolwiek robić.
Jak przebiega projekt
- Brief na piśmie: system, problem, termin, repozytoria, hosting i kto po twojej stronie podejmuje decyzje.
- Zakres z założeniami: co wchodzi, co nie i co musi być prawdą, żeby wycena się utrzymała. Projekt graficzny, makiety i treści dostarczasz ty, co zapisuję wprost.
- Punkt odniesienia: dostępy, kopia na stagingu i pomiary przed pierwszą zmianą.
- Praca w repozytorium: commity do przejrzenia, każda zmiana na stagingu z opisem, decyzje zapisane w repozytorium, a nie w czacie.
- Wdrożenie i przekazanie: przećwiczone wycofanie i dokumentacja, z której skorzysta następna osoba.
Warunki płatności są w zakresie, z datami zamiast “po zakończeniu”. Zaczynam po zaksięgowaniu zaliczki, od 30 do 50% zależnie od projektu. Fakturę B2B wystawiam z NIP 7393037445.
Czego nie robię
- Grafiki, makiet ani UX. Układ dostarczasz ty, często jako prosty arkusz, w którym zaznaczasz, co ma się znaleźć na danym widoku. Ja wdrażam go jako działający, responsywny interfejs.
- Natywnych aplikacji na iOS i Androida. To osobna specjalizacja.
- Dyżurów 24/7 ani gwarantowanego czasu reakcji. Pracuję sam i nie obiecuję, że odbiorę o trzeciej w nocy.
- Udawania zespołu. Jedna osoba to jeden kalendarz. Duże równoległe prace to zadanie dla agencji.
Jeśli masz system web albo e-commerce, który ma działać i być zrozumiały dla następnej osoby, która go otworzy, opisz go na piśmie. Więcej o mnie znajdziesz na stronie o mnie.







