Hopp til hovedinnhold

<ForrigeUke uke="34" år="2026" />

Publisert:25. august

Dette var uken for slåssing 🙀, skating 🛹 og løping 🏃 – og 1043 ting skjedde i frontend-verdenen.

<ForrigeUke /> er en artikkelserie som oppsummerer hva som skjedde i frontend-verden i uken som var.

Høstkledd lerkeskog i gult og oransje foran en grå fjellrygg under blå himmel.
Bilde av Federica Galli på Unsplash.

Post mortem etter nedetid på GitHub 😵‍💫

GitHub var nede i 7 timer og 47 minutter mandag 17. august, og noen dager senere kom CTO Vlad Fedorov med en post mortem. Alt fra innlogging og Actions til API-er, pull requests, issues og Copilot var nede samtidig, så dette merket naturligvis hele utviklerverdenen godt 😫.

Årsaken til den lange nedetiden var at en kritisk infrastrukturkomponent i GitHubs datasenter i Central US ikke klarte å skalere da trafikken nådde en topp. Da kapasiteten ble knapp, begynte innloggingen også å feile. Noen feil i Copilot førte også til en retry-loop som gjorde det vanskelig å få tjenestene opp igjen.

Fedorov gir også litt bakgrunn for hvordan dette kunne skje. GitHub har gått fra 1,4 milliarder commits i måneden til 2,9 milliarder, og ligger nå på rundt 130 millioner mergede pull requests i måneden. Dette har de forsøkt å håndtere med over tre millioner nye CPU-kjerner og 120 petabyte lagring, og Azure håndterer nå rundt 58 % av lasten mot 12 % i mai. Framover vil de sette faste grenser for hvor mange ganger tjenester får lov til å kjøre retries, og skille de mest kritiske systemene bedre fra hverandre. Forhåpentligvis vil ikke noe som dette skje igjen med det første.

Du kan lese hele postmortemet her 👇.

github.blog

The August 17 outage, and the work ahead

An update on the August 17 outage and the steps we're taking to improve reliability.

Bun skrives om i Rust 🦀

Bun-teamet slapp Bun 1.4 forrige torsdag, og det er den første utgivelsen etter at Bun er skrevet om fra Zig til Rust. En enkel «hello world» bruker nå fem ganger mindre CPU, HTTP-servere bruker 13–48 % mindre minne, oppstart er 2,5x raskere på Windows og 2x på Linux, og selve programfilen er opp mot 17% mindre.

Nå har Bun også blitt mye mer kompatibel med Node.js. De har dratt inn 1517 nye tester fra Nodes egen testsuite, og nå passerer blant annet node:http, node:fs, node:zlib og node:stream 97 % av dem, mens node:events, node:trace_events og node:sqlite er på 100 %.

Bun har også byttet ut femten avhengigheter med innebygde API-er, og har dermed ingen igjen. Du får Bun.Image til bildebehandling, Bun.WebView til nettleserautomatisering uten Puppeteer eller Playwright, Bun.markdown, Bun.cron() og Bun.Terminal. På kommandolinjen kommer blant annet bun run --parallel, bun test --parallel, bun audit fix og bun prune. Simon Willison har allerede laget et lite JSON-API oppå Bun.WebView på rundt 150 linjer TypeScript.

Du kan lese mer om Bun 1.4 her 👇.

bun.com

Bun 1.4

Bun 1.4 rewrites Bun in Rust, ships built-in headless browser automation (Bun.WebView), Bun.Image, Bun.markdown, JSON5, JSONL, Terminal ...

Ny selektor i CSS ⭐

Bramus Van Damme og Geoff Graham skrev begge forrige uke om klasseprefiks-selectoren, som CSS Working Group vedtok på møtet i Berlin tidligere i august. Den ligger nå i utkast til Selectors Level 5, og forslaget kom opprinnelig fra Lea Verou i 2024.

Den nye selektoren bygger på en idé om at for eksempel .btn-* skal treffe .btn-primary, .btn-secondary, .btn-danger og alt annet som starter med btn-. I dag må man enten liste opp hver enkelt klasse, eller ty til [class*=" btn-"]. Dette funker, men er tregt. Bramus kjørte en test der en vanlig klasse-selector klarte over 6000 kjøringer i sekundet, mens [class*=" btn-"] var nede på rundt 328.

Selektoren har noen viktige regler man bør merke seg. Prefikset må slutte på bindestrek, så .btn* og .btn-*-large er ugyldig, mens .btn_* fortsatt står åpent i spec-en. Graham nevner også innvendinger, blant annet fra Brian Kardell, som stiller spørsmål ved om ytelsesgevinsten er stor nok til å forsvare ny syntaks. Selektoren støttes foreløpig ikke i noen nettlesere.

Du kan lese hele artikkelen her 👇.

bram.us

The Future of CSS: Target Multiple Classes with the Class Prefix Selector

To target multiple classes that share the same prefix, you'd typically have to resort to adding an extra base classes to your markup or ...

Det var alt for denne gang, ha en fin uke 👋