teach/public
Ramon 456d664718
All checks were successful
dev - build & deploy naar test / build-and-deploy (push) Successful in 1m14s
perf: compressie, cache-headers, cache-busting en parallel ladende scripts (v0.3.81-beta)
- @fastify/compress (brotli quality 4 + gzip, global): alle statische assets én API-JSON (zoals /me/data) gaan gecomprimeerd over de lijn - eerste lading van ~715 KB naar grofweg een derde
- Nieuw src/frontend.js: index.html wordt bij boot één keer gelezen, ?v=__V__ wordt vervangen door de app-versie en de pagina wordt uit het geheugen geserveerd met no-cache
- Cache-beleid per prefix: js/css een jaar immutable (veilig dankzij de geversioneerde URL's), fonts 7 dagen, afbeeldingen 1 dag met zwakke etag als 304-vangnet - herhaalbezoek kost vrijwel geen bytes meer
- Alle 31 scripts staan nu met defer in de head: parallel downloaden, uitvoeren in dezelfde dwingende volgorde (core → widgets → board → app); font-preload bewust ongeversioneerd (moet byte-gelijk blijven aan de url() in teach.css)
- Compress geregistreerd vóór de api/frontend-registraties (onSend-hook geldt alleen voor latere routes) - geborgd met een teksttest
- 6 nieuwe tests (test/frontend.test.js): versie-injectie, cache-headers per prefix, gzip+brotli round-trip, 304 op etag, defer/?v= op elk script

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149FgUQvuwxKKEdvQGmNngF
2026-07-16 19:01:25 +02:00
..
css feat: breid taalwidgets en plaatjesbibliotheek uit (v0.3.80-beta) 2026-07-16 16:27:38 +02:00
fonts v0.3.00-beta: nieuw ontwerp \"teachus.today\" - minimalistisch, nieuw logo, licht+donker 2026-07-14 09:59:13 +02:00
img feat: breid natuurwidgets uit 2026-07-16 13:43:46 +02:00
js perf: compressie, cache-headers, cache-busting en parallel ladende scripts (v0.3.81-beta) 2026-07-16 19:01:25 +02:00
index.html perf: compressie, cache-headers, cache-busting en parallel ladende scripts (v0.3.81-beta) 2026-07-16 19:01:25 +02:00