Blog techniczny
Dzielimy się tym, co sprawdziliśmy w praktyce.
Artykuły z produkcyjnych projektów: Laravel, PHP, DevOps, integracje i architektura.
Chatterbox TTS — własny serwer syntezy mowy z API zgodnym z OpenAI
Serwer FastAPI stawiający modele Chatterbox od Resemble AI za jednym API zgodnym z OpenAI, z panelem webowym, przełączaniem silników bez restartu i dzieleniem tekstu na potrzeby audiobooków. Model wielojęzyczny obsługuje polski, a wagi są na MIT. Omawiamy też znakowanie wodne obecne w każdym wygenerowanym pliku oraz to, czego dokumentacja nie mówi o zgodzie na klonowanie głosu.
Czytaj →dehydrated — klient ACME w Bashu z obsługą certyfikatów wildcard
Jeden skrypt w Bashu, cztery narzędzia obecne na każdym systemie i żadnej instalacji Pythona. Omawiamy jedenaście haczyków, aliasy wymagane przy certyfikatach wildcard, pułapkę certyfikatu, który nie obejmuje domeny nadrzędnej, nowe wyzwanie dns-persist-01 z jednym trwałym rekordem TXT zamiast dynamicznych aktualizacji DNS, certyfikaty na adres IP o siedmiodniowej ważności oraz to, co znaczy przejęcie utrzymania repozytorium przez komercyjne centrum certyfikacji.
Czytaj →LogTape — logger bez zależności, gotowy dla bibliotek
Biblioteka, która loguje, zwykle narzuca swój logger albo nie loguje wcale. LogTape rozwiązuje to jednym rozgraniczeniem: biblioteka wywołuje logger, ale nigdy go nie konfiguruje. Zero zależności, sześć poziomów, hierarchiczne kategorie, redakcja danych wrażliwych w dwóch trybach, adaptery przekierowujące logi do winstona lub Pino oraz pakiet reguł lintera, który pilnuje, żeby nie zniszczyć logowania strukturalnego.
Czytaj →D3.js — wizualizacja danych sterowana dokumentem
Sto trzynaście tysięcy gwiazdek, siedemdziesiąt sześć milionów pobrań miesięcznie i dwadzieścia otwartych zgłoszeń. D3 nie jest biblioteką wykresów i nigdy nią nie było — to trzydzieści osobnych modułów, z których większość nie dotyka DOM-u, więc w Reakcie używa się ich deklaratywnie w JSX. Wyjaśniamy, czym jest złączenie danych, kiedy sięgnąć po D3, a kiedy autorzy sami odsyłają do Observable Plot.
Czytaj →Flux Operator — GitOps zarządzany na flocie klastrów
Procedura bootstrapu Fluksa działa na jednym klastrze i przestaje działać na dwudziestu. Flux Operator zamienia instalację Fluksa w jeden zasób CRD, dokłada okna wdrożeniowe z wyrażeniem cron i strefą czasową, efemeryczne środowiska z pull requestów dla dwudziestu trzech dostawców, panel webowy oraz serwer MCP z zakresami tylko do odczytu. Omawiamy też, co licencja AGPL-3.0 znaczy przy panelu udostępnianym zespołowi klienta.
Czytaj →CNI — jak działa wtykowa sieć kontenerów
Pod nie ma adresu, ruch nie przechodzi, a w logach nic. Pod Calico, Cilium i Flannelem stoi jedna specyfikacja, w której wtyczka sieciowa to zwykły program wykonywalny czytający JSON ze standardowego wejścia. Rozbieramy sześć operacji protokołu, łańcuchy wtyczek, delegowanie do IPAM oraz to, dlaczego operacja DEL jest zawsze najlepszym staraniem — i skąd wzięła się z tego potrzeba osobnego odśmiecania.
Czytaj →NextChat — lekki klient do Claude, GPT, Gemini i DeepSeek
Osiemdziesiąt osiem tysięcy gwiazdek, licencja MIT, wdrożenie na Vercela jednym kliknięciem i szesnaście obsługiwanych dostawców modeli — własny czat firmowy na własnych kluczach API zamiast abonamentu za stanowisko. Omawiamy język konfiguracji listy modeli, bez którego klient utknął na modelach z połowy 2025 roku, hasło dostępu, którego brak wystawia Twój klucz API całemu internetowi, oraz to, co dokładnie w tym projekcie jest darmowe, a co sprzedażą.
Czytaj →System design — zestaw materiałów o projektowaniu systemów
Czterdzieści jeden tysięcy gwiazdek przy zestawieniu linków do nauki projektowania systemów — i dwadzieścia dwie referencyjne implementacje algorytmów, o których mało kto wie, że tam są. Sprawdzamy, co w tym repozytorium jest realnie wartościowe, co jest lejem sprzedażowym do płatnej platformy autora, i które z dziewięćdziesięciu opisanych pojęć zwracają się w pracy agencyjnej, a które są teatrem rekrutacyjnym.
Czytaj →SQLAdmin — panel administracyjny dla SQLAlchemy i FastAPI
FastAPI nie ma panelu administracyjnego w pudełku, a Django i Laravel mają. SQLAdmin wypełnia tę lukę deklaratywnymi klasami ModelView nad istniejącymi modelami SQLAlchemy — z filtrami, importem CSV strumieniującym postęp, dziennikiem audytu i jednorazowym pokazywaniem sekretów. Omawiamy też haczyki na zapytania, bez których panel wielodostępny wycieknie danymi, oraz fakt, że domyślnie nie ma żadnego uwierzytelniania.
Czytaj →CodeBurn — lokalne CLI, które liczy wydatki na narzędzia AI
Faktura pokazuje sumę. CodeBurn czyta pliki sesji, które Twoje narzędzia AI i tak zapisują na dysku, i rozbija każdy token oraz każdego dolara na zadanie, model, narzędzie i projekt — bez proxy, bez kluczy API, bez wysyłania czegokolwiek. Omawiamy skaner marnotrawstwa, który po trzech dniach sam sprawdza, czy obiecane oszczędności się pojawiły, limity budżetu wpinane w hooki Claude Code oraz korelację wydatków z commitami w gicie.
Czytaj →Ui.Vision — otwarte RPA zgodne z Selenium IDE
Rozszerzenie do przeglądarki z rejestratorem makr, rozpoznawaniem obrazu i OCR — a od niedawna z mostem MCP, przez który Claude Code tworzy, edytuje i uruchamia makra w otwartej przeglądarce. Rozbieramy trzy warstwy wejścia (zdarzenia syntetyczne, zaufane wejście przez CDP, prawdziwe kliknięcia systemowe), cztery sposoby celowania w element, zabezpieczenia mostu przed cichym działaniem agenta oraz dwulicencyjność AGPLv3 lub komercyjną — z wyjątkowo klarownym FAQ, który rozstrzyga, kiedy trzeba płacić.
Czytaj →Zed — wydajny edytor kodu ze współpracą w czasie rzeczywistym
Edytor w Ruście od twórców Atoma i Tree-sittera, z 90 tysiącami gwiazdek i tygodniową kadencją wydań. Rozbieramy trzy drogi uruchamiania agentów — w tym Claude Code jako agenta zewnętrznego przez otwarty protokół ACP, bez dodatkowej opłaty — piaskownicę systemową dla narzędzi agenta wraz z jej jawnymi ograniczeniami, oraz współpracę w czasie rzeczywistym z ostrzeżeniem o dostępie do lokalnych plików. Plus uczciwa ocena: gdzie Zed ma sens w stacku PHP, a gdzie nie zastąpi PhpStorma.
Czytaj →