Wyzwanie
Open Circle utrzymuje Valibot i Formisch, dwie biblioteki używane w ekosystemie TypeScript. Ich dokumentacje, valibot.dev i formisch.com, działały na Vercel Pro w ramach Vercel OSS Program. Gdy wsparcie programu się skończyło, koszt planu Pro miał przejść na osoby utrzymujące projekty. Celem było zachowanie tej samej publicznie dostępnej dokumentacji bez ponoszenia stałych kosztów infrastruktury.
Dlaczego statyczna wersja miała sens
To były strony dokumentacji, a nie aplikacje wymagające renderowania przy każdym żądaniu. Qwik SSG pozwalał pregenerować trasy, zachować nawigację po stronie klienta przez q-data.json i przenieść preferencje, takie jak motyw, rozdziały i wybór frameworka, do localStorage. Dzięki temu doświadczenie użytkownika zostało takie samo, a Edge SSR, funkcje runtime i potrzeba korzystania z planu Pro zniknęły.
Co wdrożyliśmy
-
Zastąpiliśmy adaptery Edge i Cloudflare adapterem SSG z @qwik.dev/router.
-
Generujemy statyczny HTML w dist oraz pliki q-data.json dla każdej trasy.
-
Przenieśliśmy motyw, rozdziały i wybór frameworka z cookies do providerów Qwik opartych o localStorage i signals.
-
Zastąpiliśmy akcje serwerowe sygnałami po stronie klienta dla menu, sidebarów i FAQ.
-
Pregenerujemy PNG dla OG podczas kompilacji z @vercel/og i sharp, bez dynamicznych tras /og.
-
Przenieśliśmy przekierowania i nagłówki cache do vercel.json dla statycznego serwowania.
-
Spatchowaliśmy obsługę trailing slash w Qwik SSG dla ścieżek z kropkami, np. plików .md i .png.
Efekt
Formisch i Valibot wdrażają się teraz jako statyczne strony Qwik na Vercel Hobby. Każda ma około 240 pregenerowanych stron, obrazy OG są serwowane z CDN, a całość działa bez funkcji runtime. Miesięczny rachunek za hosting wynosi 0 zł, a użytkownicy szybciej widzą pierwszą treść, bo przeglądarka dostaje statyczny HTML zamiast czekać na renderowanie przy żądaniu.
Część naszego OSS Partner Program
To pierwsze wdrożenie w ramach naszego OSS Partner Program, który nadal budujemy. Założenie jest proste: pomagamy zespołom open source ograniczać stałe koszty infrastruktury i utrzymania, aby więcej środków mogło trafiać do bibliotek, z których korzystają inni.

