Twarde wymogi techniczne
-
Strona czysto statyczna.
SC_CLIENT_STATIC=1 npm run buildmusi przechodzić. Żadna strona nie może żądać serwera (prerender = falsewywróciłby build). -
Zero skryptu inline i zero atrybutów
on…w zbudowanym HTML-u. Polityka bezpieczeństwa strony i tak by ich nie wykonała, a kontrakt sprawdza wynik buildu. Interakcje to osobne pliki przez<script src>. -
Żadnych stron trzecich poza Turnstile. Żądania do obcych hostów zatrzymują aktualizację i audyt. Osadzenia idą wyłącznie jako ramki.
-
Build bez sekretów. Build biegnie na kopii bez
.giti.env, jako osobny użytkownik, bez skryptów instalacyjnych. Dowiązanie symboliczne w wyniku blokuje wysyłkę. -
Bezpieczniki, które wywrócą build. Kontrakt łapie przed scaleniem:
- moduł skopiowany ręcznie z monorepo,
- własny plik niedodany do commita,
- znacznik
{% … %}w treści wpisu (pokazany w bloku kodu jest w porządku — panel zapisuje go zabezpieczony:{% process=false %}na płotku,\{%we wciętej linii).
-
Otwieracz z filmem — reguły sprawdzane przy każdym
sc submit:- żadnego
<source>w<video>(WebKit trzyma przez nieloadok. 3 s), - plakat z tego samego pliku co pod spodem,
- osobne kadry telefon/komputer przez
media.
Media przygotujesz jednym poleceniem z jednego mastera (AV1/VP9/H.264, plakat z pierwszej klatki, AVIF). Szczegóły i polecenia są w
.sc/docs/hero-media.mdklonu oraz w skillumedia-otwieracza. - żadnego
-
Rytm i skala. Każda sekcja ma pionowe wcięcie, a odstępy biorą wartości ze skali systemu stylów zamiast przypadkowych liczb.
Do pomiaru szybkości zbudowanej strony służą przyrządy (budżet CSS, LCP, sonda otwieracza). Przy stronie ze sklepem runner mierzy CSS i LCP przed odbiorem sam.