Notatki

Blog

Notatki o frontendzie, SEO, AI, analityce i budowaniu prawdziwych produktów.

37 wpisy

17 sierpnia 202610 min czytania

DeepSeek podniósł ceny — ten sam V4 Flash znalazłem taniej niż w starym cenniku

17 sierpnia zauważyłem, że wydatki na DeepSeek API wzrosły do około pięciokrotności zwykłego poziomu. Następnie znalazłem i przetestowałem innego dostawcę tego samego checkpointu DeepSeek-V4-Flash-0731, którego obecne ceny są około 45% niższe nawet od dawnych stawek DeepSeek.

DeepSeekRunwareLLM APIInfrastruktura AIModele open-weight
13 sierpnia 202612 min czytania

Jak konwertuję animowane WebP, GIF i APNG do H.264 MP4 bez psucia klatek ani czasu animacji

Mój potok produkcyjny odtwarza pełne obrazy faktycznie widoczne dla użytkownika, zachowuje czas źródłowy, wybiera jeden CFR dla każdego końcowego MP4, wylicza najmniejsze wspólne płótno bez powiększania, koduje zgodne segmenty H.264, łączy je bez drugiego stratnego kodowania i sprawdza zarówno plik, jak i jego dostarczanie przez HTTP. W jednym zmierzonym przebiegu 217 animowanych plików WebP o łącznym rozmiarze 1,49 GB stało się jednym plikiem MP4 H.264 o rozmiarze 78,49 MB.

H.264FFmpegMP4Animowany WebPGIFAPNGKompresja wideoPrzetwarzanie multimediów
13 sierpnia 202613 min czytania

Alarmowałem o wszystkim: jak zmieniłem szum błędów przeglądarki w użyteczny monitoring produkcyjny

Mój moduł raportujący frontend traktował tak samo AdBlock, awarie GTM, AbortError, nieczytelne Script error i prawdziwe błędy chunków Next.js. Przebudowałem monitoring wokół własności zasobu, wpływu na użytkownika, jakości dowodów, korelacji zdarzeń i odzyskiwania.

Monitoring błędów przeglądarkiObserwowalność frontenduBłędy JavaScriptMonitoring produkcyjnyNext.jsWydajność webowa
13 sierpnia 202619 min czytania

Dlaczego stare karty Next.js przestają działać po wdrożeniu: nieaktualny HTML, brakujące chunki i rozjazd wersji

Po jednym wdrożeniu monitoring produkcyjny zarejestrował nieudane wczytanie chunka należącego do mojej aplikacji Next.js. Log potwierdzał sam błąd, ale nie jego przyczynę. Na tym przykładzie omawiam długo otwarte karty, nieaktualny HTML, brakujące zasoby /_next/static, rozjazd wersji, przechowywanie starszych plików, deploymentId, kolejność publikacji, monitoring i kontrolowane odzyskiwanie.

Next.jsWdrożenieRozjazd wersjiPamięć podręczna WWWNiezawodność frontenduZasoby statyczne
13 sierpnia 20268 min czytania

Jeden tick, który złamał mój CFR: dlaczego 5580 nie było 5625, a 3751 nie było 3750

Mój walidator wielokrotnie odrzucał MP4 16 fps z powodu pakietu trwającego 5580 ticków zamiast 5625, a później znalazł 3751 tam, gdzie 24 fps wymagało dokładnie 3750. Te dwa przypadki zmusiły mnie do rozdzielenia czasowania źródła, kwantyzacji CFR, podstawy czasu MP4, PTS/DTS, multipleksowania i walidacji na poziomie pakietów.

FFmpegH.264CFRZnaczniki czasu wideoMP4Potok multimedialny
13 sierpnia 202612 min czytania

Jak zmniejszyłem produkcyjne wideo z ~280 MB do ~50 MB, pozostając przy H.264

Jeden konkretny film z systemu produkcyjnego po przebudowie konfiguracji H.264 zmniejszył się z około 280 MB do około 50 MB. Nowe podejście łączy CRF 28, x264 veryslow, limit rozdzielczości klasy 720p, użyteczną liczbę klatek na sekundę i umiarkowane wymagania wobec dekodera. Na wcześniejszym etapie ten sam przykład zmniejszył się już z około 350 do 238 MB, a przegląd starej biblioteki pokazał, że pliki H.264 o przepływności kilku megabitów na sekundę były częste.

H.264FFmpegx264Kompresja wideoWydajność WWWOptymalizacja multimediów
16 kwietnia 20266 min czytania

Zbudowałem Gitae, żeby diagnozować awarie stron głębiej niż tylko „działa / nie działa”

Zbudowałem Gitae, aby odpowiadać na praktyczne pytanie: czy strona naprawdę jest niedostępna, czy problem jest lokalny? Narzędzie łączy zewnętrzne testy z VDS w Moskwie i Helsinkach z DNS, HTTPS/TLS, portami, routingiem, IP, hostingiem i sygnałami CMS, traktując każdy wynik jako wskazówkę, a nie ostateczny dowód.

GitaeDiagnostyka stronMonitoring stronDNSSSLPingTraceroutePortyHostingSEO
14 kwietnia 20265 min czytania

Dlaczego TypeScript tak dobrze współpracuje z Codex przy oprogramowaniu produkcyjnym

W pracy produkcyjnej TypeScript daje Codexowi coś, czego nie zastąpi dobry prompt: kontrakty sprawdzalne przez maszynę, szybki feedback kompilatora i bezpieczniejszą ścieżkę przez duże refaktoryzacje.

TypeScriptCodexProgramowanie z AIDostarczanie oprogramowaniaJavaScriptWorkflow dewelopera
6 kwietnia 20264 min czytania

Zbudowałem Jurfi.com: przeglądarkowe studio uporządkowanych szkiców prawnych

Zbudowałem Jurfi.com, aby z formularzy i szablonów tworzyć w przeglądarce uporządkowane robocze szkice dokumentów prawnych, przechowywać szkice lokalnie i pozostawić weryfikację jako jawną część procesu — bez twierdzenia, że oprogramowanie zastępuje prawnika.

JurfiJurfi.comDokumenty prawneLegalTechSaaSSzkice dokumentówNarzędzia przeglądarkowe
5 kwietnia 20263 min czytania

Mój pierwszy przychód z SaaS: co naprawdę udowodniła jedna płatność

Pierwsza płatność za produkt SaaS, który zbudowałem sam, była niewielka, ale zmieniła jakość dowodów, którymi dysponowałem. Oto co jedna transakcja może potwierdzić, czego nie dowodzi i dlaczego powtarzalność jest ważniejsza niż sam kamień milowy.

SaaSPierwszy przychódNiezależny twórcaWalidacja produktuRozwój produktuDroga startupuDoświadczenie developera
3 kwietnia 20268 min czytania

Jak używam Codexa do review 15 projektów bez oddawania końcowej kontroli

Review 15 projektów software’owych kiedyś oznaczał tonę powtarzalnych kontroli. Codex pomaga mi dużo szybciej analizować bugi, testy, SEO, tłumaczenia, lokalizację i spójność, ale każde znalezisko AI traktuję jako trop, nie wyrok, a każdą zmianę jako coś, co sam muszę zweryfikować.

CodexAI codingCode reviewTestowanie oprogramowaniaDeveloper workflowLokalizacjaTechniczne SEOProduktywność developera
2 kwietnia 20266 min czytania

Dlaczego ostatnie 3–5% limitu Codex w ChatGPT Plus wykorzystuję na duże zadania inżynieryjne — Aktualizacja: latem 2026 przestało to działać

Aktualizacja: do lata 2026 ten workflow przestał być dla mnie niezawodny. Z mojego konta zniknął licznik 5-godzinny, widoczny pozostał limit tygodniowy, a długie zadanie mogło zatrzymać się po jego wyczerpaniu.

CodexChatGPT PlusNarzędzia AI do kodowaniaWorkflow programistyInżynieria oprogramowaniaMigracja do TypeScriptCzyszczenie ESLintRefaktoryzacjalimity użycia Codexaktualizacja 2026
1 kwietnia 20269 min czytania

Opublikowałem 10 000 artykułów SEO wygenerowanych przez AI. W końcu mój serwis miał zero stron w indeksie Google

Masowe publikowanie z AI początkowo wyglądało jak skrót: Google zeskanował wszystkie 10 000 URL-i wygenerowanych artykułów, ale tylko około 1 000 stron faktycznie trafiło do indeksu, pojawiło się w Search i przyniosło realny ruch. Później także one zaczęły znikać, aż cały serwis spadł do zera zaindeksowanych stron. Ten eksperyment zmienił moje podejście do AI, SEO, tłumaczeń i odpowiedzialności redakcyjnej.

AI SEOGeneratywna AIGoogle SearchTreści na dużą skalęIndeksowaniePisanie z pomocą AIWielojęzyczne SEO
31 marca 20265 min czytania

Pięć lat z MacBookiem M1 8/256 GB: dlaczego nadal go nie wymieniłem

Kupiłem bazowego MacBooka M1 z 8 GB pamięci i SSD 256 GB za około 1000 dolarów i używałem go mniej więcej 15 godzin dziennie do programowania, pracy z mediami, pisania, nauki i projektów pobocznych. Po pięciu latach widzę jego ograniczenia, ale myślę o zmianie dlatego, że mój workload urósł, a nie dlatego, że komputer przestał być użyteczny.

MacBookAppleM1Apple SiliconTworzenie oprogramowaniaTest długoterminowyTrwałość sprzętu
30 marca 20264 min czytania

Przetłumaczyłem blog na 20 języków z ChatGPT — i zacząłem dostawać ruch z wyszukiwania z całego świata

AI zmieniło dla mnie ekonomię wielojęzycznego publikowania. Z bloga w jednym języku przeszedłem do nawet 20 wersji każdego artykułu, tworząc nowe organiczne wejścia z wyszukiwarek.

Lokalizacja AIWielojęzyczne SEOChatGPTNext.jsMiędzynarodowe SEOBlog
27 marca 20264 min czytania

Uruchomiłem QRViz jako darmowy generator statycznych kodów QR — a dystrybucję oparłem na SEO

QRViz jest przeglądarkowym generatorem statycznych kodów QR, a nie platformą kampanii. Uruchomiłem qrviz.com jako darmowy generator kodów QR bez budżetu reklamowego, płatnego pozyskiwania użytkowników ani lejka monetyzacji. Polegam wyłącznie na SEO, dlatego dystrybucja pozostaje największą niewiadomą.

Generator kodów QRQrvizUruchomienie produktuSEOProjekt pobocznyTworzenie stronRozwój produktu
18 lutego 20264 min czytania

Dlaczego zdobywanie klientów okazało się dla mnie trudniejsze niż zbudowanie SaaS

Lekcja z mojego własnego budowania SaaS: engineering dawał mi jasny, sprawdzalny feedback, a dystrybucja, pozycjonowanie, komunikacja i retencja działały w zupełnie innej, znacznie mniej przewidywalnej pętli.

Wzrost SaaSPozyskiwanie klientówMarketing produktuBootstrappingBudowanie publicznieDystrybucja
17 lutego 20264 min czytania

Zbudowałem solo produkt SaaS. Uruchomienie płatności zmieniło tę pracę

Zbudowałem ten produkt sam, wieczorami, w weekendy i święta. Kiedy uruchomiłem płatności, bugi, onboarding, moderacja, retencja i zaufanie przestały być tematami „na później” i stały się częścią realnej obsługi produktu.

SaaSRozwój soloPremiera produktuPaymentsReliabilityOperowanie produktem
22 stycznia 20264 min czytania

I Got 550 Views from One Image, Voiceover, and Subtitles: What Three Shorts Tests Actually Taught Me

A simple YouTube Short built from one static image, a voiceover, and subtitles reached 550 views. After three early tests, the useful lesson was not a proven formula, but a repeatable way to experiment without confusing a promising signal with proof.

YouTube ShortsContent ExperimentsShort-form VideoVideo EditingCapCutCreator Workflow
20 stycznia 20265 min czytania

Zobaczyłem prawie 6 000 aplikacji na stanowisko frontendowe w Moskwie. Co to mówi — a czego nie mówi — o rosyjskim rynku IT

Pod koniec 2023 roku rekruterzy mówili mi, że 300–500 aplikacji na jedno ogłoszenie to już bardzo dużo. 20 stycznia 2026 zobaczyłem stanowisko frontendowe na poziomie mid w Moskwie, którego licznik w kilka godzin zbliżył się do 6 000 aplikacji. Wyjaśniam, co ta liczba naprawdę sygnalizuje, czego nie dowodzi i jak dziś interpretowałbym ją jako kandydat.

KarieraRynek pracy ITFrontendRosjaMoskwaRekrutacjaSzukanie pracy
1 stycznia 20264 min czytania

Jak DeepSeek zmienił mój workflow w Node.js: ponad 4000 commitów w pół roku

W 2025 mój wykres GitHub zmienił się z prawie pustego w ponad 4000 commitów w drugiej połowie roku. Ten artykuł opisuje, jak AI coding zmienił mój workflow w pobocznych projektach Node.js, gdzie oszczędzał czas, gdzie się mylił i dlaczego weryfikacja pozostała ważniejsza od szybkości generowania.

Node.jsDeepSeekAI CodingDeveloper ProductivitySide ProjectsSoftware Engineering
30 grudnia 20256 min czytania

My First TikTok at 28: What a Vertical Product Demo Taught Me About Traffic

At 28, I posted my first TikTok and cross-posted the same product demo to Reels and Shorts. The useful lesson was not the view count: it was how much a 9:16 frame changes a desktop interface, and how to measure short-form traffic without confusing reach with acquisition.

TikTokProduct MarketingProduct DemosAnalyticsIndie Dev
16 listopada 20255 min czytania

Kupiłem 25-letnią domenę — 1.000+ żądań dziennie trafiało w martwe URL-e

Po uruchomieniu strony na domenie zarejestrowanej po raz pierwszy w 2000 roku zobaczyłem ponad 1.000 żądań dziennie do starych URL-i i ponad 900 błędów w Yandex Webmaster w ciągu jednej nocy. Pokazuję, co dało się naprawdę potwierdzić, dlaczego użyłem celowanych 410 i jak dziś audytowałbym starą domenę.

SEOHTTPDevOpsDomenyWeb crawling
14 listopada 20255 min czytania

Yandex zaindeksował 12 500 stron, ale ruch z Rosji był prawie zerowy: problem z Cloudflare, którego nie zauważyłem

Yandex zaindeksował 12 500 stron, a mimo to ruch z Rosji był prawie zerowy. Zawęziłem problem do ścieżki sieciowej, wyłączyłem proxy Cloudflare, przeniosłem cache, kompresję i podstawową ochronę do Nginx na własnym VDS i przywróciłem dostępność.

DevOpsSEONginxCloudflareSieciInfrastruktura
27 października 20255 min czytania

Mój statyczny serwis Next.js dostaje tysiące skanów podatności dziennie. Nginx prawie tego nie odczuwa

Logi są pełne prób szukających WordPressa, backdoorów PHP, plików .env i .git/config. W mojej statycznej konfiguracji Next.js + Nginx większość kończy się tanim miss i 404, a obciążenie CPU pozostało bez zmian. To doświadczenie dobrze pokazuje zarówno zaletę statycznej architektury, jak i granice tego wniosku.

BezpieczeństwoNext.jsNginxDevOpsHosting statycznyPowierzchnia ataku
27 października 20253 min czytania

Yandex zaczął wysyłać ruch na moją nową stronę, gdy Google prawie stał w miejscu

W tym samym nowym projekcie Google zebrał tylko około 300 kliknięć w długim okresie, podczas gdy Yandex Webmaster pokazywał wyraźny wzrost, w tym +500% kliknięć. Najważniejsze jest oddzielenie tego, co dane potwierdzają, od tego, co pozostaje hipotezą.

SEOGoogle SearchYandexGoogle Search ConsoleYandex WebmasterSEO techniczne
17 października 20254 min czytania

Yandex zaindeksował 4 278 moich stron Next.js w jedną noc. Co to naprawdę udowodniło

Yandex niemal jednocześnie dodał do indeksu 4 278 moich stron generowanych statycznie w Next.js. To był realny kamień milowy techniczny, ale nie dowód na pozycje ani ruch. Oto, co ten wynik faktycznie mówił o SSG i programmatic SEO — i czego z niego wywnioskować nie można.

SEONext.jsSSGYandexProgrammatic SEOIndeksowanie
16 października 20255 min czytania

Mój pierwszy miesiąc SEO: 632 użytkowników organicznych i lekcja o ruchu botów

Użyłem własnego projektu pobocznego jako przygotowania do większej inicjatywy SEO w pracy. Po miesiącu miał 632 użytkowników organicznych, ale dzień z 83 odwiedzającymi pokazał, jak łatwo podejrzany ruch i artefakty analityczne mogą zniekształcić obraz wyników.

SEOAnalityka webowaRuch botówYandex MetricaEksperymenty SEO
6 października 20253 min czytania

Prawie zignorowałem Yandex Webmaster. Dwa tygodnie później dawał mi więcej ruchu niż Google

Zbudowałem side project w Next.js, żeby zdobyć praktykę przed projektem w pracy, gdzie SEO miało być kluczowe. W pierwszych dwóch tygodniach zobaczyłem 58 odwiedzających z Google i 200 z Yandex i nauczyłem się oddzielać ruch, indeksowanie i diagnostykę.

SEONext.jsGoogle SearchYandexSearch ConsoleIndeksowanie
5 października 20255 min czytania

Yandex Metrica vs Google Analytics: dlaczego po tygodniu wolałem Metricę

Przez tydzień równolegle używałem Google Analytics i Yandex Metrica w nowym projekcie. Metrica wygrała u mnie głównie dzięki Webvisorowi i nagraniom sesji, ale to wniosek o moim sposobie pracy, a nie dowód, że jedno narzędzie jest lepsze dla wszystkich.

Analityka internetowaUXNagrania sesjiYandex MetricaGoogle AnalyticsGA4
3 października 20254 min czytania

Yandex crawlował mój blog bez /en. Przekierowania 308 uchroniły URL-e przed 404

Po dodaniu około 3 000 stron /en/blog/... do sitemapy zobaczyłem, że Yandex próbuje odpowiadających im ścieżek /blog/.... Istniejące przekierowania 308 sprawiły, że żądania nie kończyły się 404. Najważniejsza lekcja nie brzmi „Yandex zepsuł sitemapę”, tylko: dobrze zaprojektowana warstwa przekierowań potrafi znacząco zwiększyć odporność URL-i.

SEOYandexSitemapPrzekierowanie 308Techniczne SEOCrawling
2 października 20254 min czytania

Dwie nowe strony wystrzeliły w Google, a kilka dni później ruch spadł około 10×

Przy dwóch uruchomieniach z rzędu zobaczyłem gwałtowny wzrost wyświetleń w Google, po czym ruch w kilka dni spadł mniej więcej dziesięciokrotnie. Sam wzorzec jest realny; nie mogę jednak udowodnić, że to „miesiąc miodowy Google”.

SEOGoogle SearchSearch ConsoleRuch organicznySEO techniczne
1 października 20254 min czytania

2 000 stron zniknęło z wyszukiwarki Yandex w jedną noc. Co naprawdę mogłem z tego wywnioskować

W Yandex Webmaster zobaczyłem, że 2 000 z około 8 000 stron przestało uczestniczyć w wyszukiwaniu. Spadek o 25% wyglądał dramatycznie, ale ważniejszą lekcją było nie mylić zaobserwowanej zmiany statusu w wyszukiwarce z udowodnioną przyczyną.

SEOYandex WebmasterIndeksowanieWidoczność w wyszukiwarceTechniczne SEO
11 lipca 20252 min czytania

Zadałem ponad 10 pytań na MoscowJS 66 i wygrałem dwie nagrody

Na MoscowJS 66 zadałem ponad 10 pytań podczas wystąpień o botach Telegrama, LangChain.js, architekturze kreatora stron i testowaniu typów TypeScript. Dwa wybrano jako najlepsze pytania, a ja wróciłem z dwiema nagrodami.

WydarzeniaJavaScriptTypeScriptAILangChain.jsSpołecznośćMoscowJS
23 czerwca 20254 min czytania

Co wyniosłem z PiterJS #79: legacy monolity, FrontOps, wydajność webowa i lepsze pytania

PiterJS #79 w Petersburgu dotyczył utrzymywania tego, co już działa: legacy monolitu, FrontOps i metryk wydajności webowej. Wyszedłem z praktycznymi notatkami, dwiema nagrodami za Q&A i kolejnym przypomnieniem, że warto aktywnie uczestniczyć w meetupach offline.

PiterJSJavaScriptFrontOpsDockerWydajność webowaSpołeczność
17 czerwca 20256 min czytania

I Launched a Next.js Blog in 21 Languages. Here’s What 439 Google Impressions Actually Told Me

In its first week, my 21-language Next.js blog recorded 439 Google impressions and 5 clicks. Later, 436 of 471 pages were indexed. The useful lesson was learning to separate visibility, indexing, and actual search performance.

Next.jsSEOI18nMultilingual SEOGoogle SearchWeb Development
7 czerwca 20253 min czytania

MoscowJS 65 po sześciu latach z JavaScriptem: dlaczego nadal chodzę na lokalne meetupy

5 czerwca 2025 roku byłem na MoscowJS 65 w T Banku. Cztery prezentacje pokazywały AI z różnych perspektyw, ale mój najważniejszy wniosek był prostszy: lokalne meetupy nadal dają mi coś, czego dokumentacja i nagrania nie potrafią w pełni zastąpić.

JavaScriptMoscowJSMeetupySpołeczność programistówAI