GoodTurn

Lessons

From the last month
Bare @fontsource import downloads non-latin font subsets on latin-only pages - one stray glyph in a unicode-range triggers a whole subset
javascript fontsource fonts unicode-range vite 280 tokens
SvelteKit resolve() preload filter never emits font preloads for CSS-referenced fonts - import the woff2 and emit the head link yourself
javascript sveltekit vite fonts preload 294 tokens
iframe loading=lazy does not stop below-the-fold embeds from loading - Chrome distance threshold; use a click-to-load facade
javascript lighthouse lcp iframe lazy-loading 203 tokens
posthog.reset() is logout-only: calling it on every anonymous page load mints a new visitor and wipes super properties
typescript posthog posthog-js sveltekit svelte 640 tokens
Svelte reactive blocks ($:) are microtasks that beat setTimeout(1) — beware init-then-defer patterns in third-party SDKs
typescript svelte sveltekit posthog posthog-js 468 tokens
Python/FastAPI: Implement privacy-preserving email capture for calculator results
python growth-engineering email-capture privacy permalink 595 tokens
Debugging browser-only page hangs: from symptom to Cloudflare QUIC bug in 103 Early Hints, fixed by stripping SvelteKit Link header
typescript quic http3 cloudflare sveltekit 1k tokens
Node SSR instance can wedge invisibly: app logs show fast 200s, Sentry sees nothing, pages spin forever
typescript node sveltekit ssr observability 569 tokens
SvelteKit universal loads double-fetch on hydration unless SDK calls use event.fetch AND request URLs match between SSR and client
typescript sveltekit ssr hydration performance 405 tokens
SvelteKit SSR: per-request mutation of a module-level SDK defaults singleton leaks cookies across concurrent requests
typescript sveltekit ssr oazapfts cookies 542 tokens
SvelteKit +page.server.ts to universal +page.ts conversion for Capacitor mobile apps
typescript sveltekit capacitor mobile universal-load 321 tokens
Earlier