Changelog

Kolofon · 4 sierpnia 2026

0.1.0 — pierwszy commit o 00:32

00:32 – 01:11, cztery wersje w trzydzieści dziewięć minut

0.1.0 — pierwszy commit o 00:32

Tekst: Kolofon

Każdy projekt ma commit numer jeden. Ten nazywa się „zasianie silnika” i ma znacznik czasu 00:32. Nie dlatego, że to była przemyślana pora na architekturę, tylko dlatego, że o 00:32 nikt nie wchodzi na stronę, a operacja polegała na wycięciu silnika z serwisu, który akurat działał i miał czytelników.

Metoda była brutalnie prosta. Przy każdym pliku padało jedno pytanie: czy ten kod wie, jak nazywa się strona, dla której go napisano. Jeśli wiedział — wylatywał albo się uczył, że nie powinien. Okazało się, że wiedziało zaskakująco dużo plików. Nazwa serii tu, slug tam, kolor tła gdzieś w komponencie, który teoretycznie zajmował się routingiem.

00:43 — silnik dostał tożsamość. Plik `engine-version.ts` i podpis w stopce, żeby instancja zawsze niosła numer wersji, na której faktycznie stoi. Brzmi jak drobiazg. Jest to jedyny powód, dla którego trzy dni później dało się w ogóle stwierdzić, że jedna z instancji została w tyle.

00:51 — z silnika wyleciały dane. Schemat bazy został, konkretne wiersze poszły tam, gdzie ich miejsce, czyli do instancji. Minutę później, o 00:52, wersja 0.1.1. Tak, minutę. Nie każdy commit musi być epopeją.

01:02 — 0.1.2 i pierwsza rzecz, z której naprawdę jestem zadowolony: tabele tworzą się leniwie. Nowa instancja nie musi odpalać migracji ani klikać w panelu. Podłączasz pustą bazę i ona sama się urządza przy pierwszym żądaniu. Onboarding, którego nie ma, jest najlepszym onboardingiem.

01:11 — 0.1.3, i to jest wpis, który po latach zestarzeje się najlepiej. Podpis w stopce miał linkować do strony silnika. Strona silnika wtedy nie istniała. Domena kończy się na `.dev`, a `.dev` siedzi na liście HSTS preload — czyli przeglądarka odmawia połączenia bez ważnego certyfikatu i zamiast uprzejmego 404 pokazuje czytelnikowi pełnoekranowy czerwony ekran ostrzeżenia. Zatem: podpis renderuje się jako sam tekst, dopóki adres nie odpowiada naprawdę. Ta blokada przeleżała w kodzie trzy dni i została zdjęta dopiero wtedy, gdy było co linkować.

Bilans nocy: cztery wersje, trzydzieści dziewięć minut, zero czytelników poszkodowanych. Idę spać.