$ cat ./posty/devlogi/cutty-devlog-3-ostatni-kilometr-przed-premiera.md

cutty devlog #5 — miało być pół godziny

maj 22 21:33 | 2 min | autor: esej | #devlogi

Miała być pół godziny: „sprawdź czy favicon jest dobry, popraw og:image”. Skończyło się o trzeciej w nocy migracją skrzynki pocztowej, dwoma modalami i pełnym QA. Standardowa pętla „skoro już tu jestem”.

Co się zmieniło

  • Tło żyje — cząsteczki reagują na kursor i mają własny drift, więc ekran nie zastyga jak nikt nie ruszy myszką. Mobile pomija canvas, bo Lighthouse karze za każdy ms.
  • Cały szablon dorobił się do landingu — login wyglądał jak placeholder z 2018. Teraz wszędzie ten sam badge + reveal + gradient.
  • Branded 404„Nie ma tu nic. Jeszcze.” Status 404, ale człowiek nie wymięka.
  • Favicon — okazało się, że w karcie wisiał domyślny Astro Rocket. Od którejś migracji. Generuję od nowa.
  • og:image per locale — wcześniej każdy odbiorca dostawał polski preview z badżem „Beta”. Teraz przeglądarka wybiera język. PL+EN ready, reszta dziesięciu w v0.6.
  • Własna skrzynka pocztowa dla PIN-ów — primary path z domeny cutty.dev, zewnętrzny dostawca jako fallback. Logujesz się, kod przychodzi z mojej domeny, nie z czyjejś.
  • Natywne confirm() wyleciało — usuwanie linka wyglądało jak doklejone z 2005. Teraz branded modal: czerwony dla destrukcyjnych, fioletowy dla niedestrukcyjnych. ESC działa.
  • CSRF guard w Astro 5 cicho odrzucał POST/DELETE z UI. Wyglądało jakby strona losowo wyrzucała błędy. Fix: jedna linia, jeden header.

Co dalej

Lighthouse: desktop 100/100/100/100, mobile 99 — bo throttling 4× CPU + 3G, realnie wszystko śmiga. Zostały drobne (tłumaczenie błędu „Wrong PIN” w polskim UI nadal po angielsku — gratuluję sam sobie) i Manual QA reszty flow. Potem v0.6 — dziesięć nowych języków przez Ollamę w nocy, ja śpię.

Premiera (ProductHunt + HN) nadal gated na pełnym QA. Jeszcze max dwie sesje. Tak, tak samo mówiłem tydzień temu.