---
title: Frontend & JS Digest — Week 21
date: Tue May 19 2026 16:00:00 GMT+0000 (Coordinated Universal Time)
---

My favorite from this week is "On Rendering the Sky, Sunsets, and Planets" because I really like when the programming, science and art merge together in such beatutiful way.

## Links

### News

[Postmortem: TanStack npm Supply-chain Compromise](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem) - TanStack's postmortem on the May npm compromise that published 84 malicious versions across 42 packages. The interesting part is the attack chain—`pull_request_target`, GitHub Actions cache poisoning, and OIDC token extraction from runner memory. Useful, scary checklist material.
[Bun's Experimental Rust Rewrite](https://x.com/jarredsumner/status/2053808438644445230) - Jarred Sumner says Bun's experimental Zig-to-Rust rewrite passes 99.8% of the existing test suite on Linux x64 glibc. Amazing proof of what a large test suite plus agents can do; also a reminder that "passes tests" and "production-safe runtime rewrite" are not the same sentence.

### Article

[Better Browser Caching with No-Vary-Search](https://csswizardry.com/2026/05/better-browser-caching-with-no-vary-search/) - Harry Roberts explains `No-Vary-Search`, the response header that lets browsers reuse cached responses across irrelevant query params. Great fit for `utm_*`, `fbclid`, and other tracking baggage; very dangerous if you ignore params that actually change HTML.
[Your Recursion Is Lying to You](https://blog.gaborkoos.com/posts/2026-05-09-Your-Recursion-Is-Lying-to-You/) - Practical reminder that correct recursive JavaScript can still crash once the call stack runs out. Covers tail recursion, why TCO is not portable across modern JS engines, and when to switch to loops, explicit stacks, or trampolines.
[From React to Native Web with nanotags](https://evilmartians.com/chronicles/from-react-to-native-web-with-nanotags-a-migration-that-saved-100kb) - Evil Martians migrated an Astro marketing site from React components to Custom Elements and saved 100 KB of JavaScript without losing functionality. `nanotags` wraps the painful Web Components parts with typed props, refs, cleanup, events, and nanostores.
[Projecting React](https://tannerlinsley.com/posts/projecting-react) - Tanner Linsley experiments with a scoped React projection for TanStack Start instead of a general React fork. The numbers are wild—about 80-85% smaller runtime, 2.24x faster router navigation, 700 tests passing, and one honest RSC-heavy LCP regression.
[On Rendering the Sky, Sunsets, and Planets](https://blog.maximeheckel.com/posts/on-rendering-the-sky-sunsets-and-planets/) - Maxime Heckel goes deep on atmospheric scattering shaders in the browser. Raymarching, Rayleigh and Mie scattering, ozone absorption, planet shells, LUTs, and interactive demos—the kind of article where the math is hard but the visuals pull you through.

### Library&tools

[MDXEditor](https://mdxeditor.dev/) - Open-source React component for WYSIWYG Markdown and MDX editing. Supports content CSS styling, editable CodeMirror code blocks, tables, images, frontmatter, directives, Markdown shortcuts, source/diff view, and configurable Markdown output.
[Sound Mode](https://tsz.dev/sound-mode/) - tsz plans an opt-in Sound Mode for stricter user-authored TypeScript. It closes method-parameter bivariance holes, bans explicit `any`, and turns `useUnknownInCatchVariables`, `noUncheckedIndexedAccess`, and `exactOptionalPropertyTypes` into defaults. Not full soundness, but a sane direction.
[Orval](https://orval.dev/docs) - OpenAPI-to-TypeScript client generator that covers models, request functions, and mocks from Swagger v2 or OpenAPI v3 specs. Nice ecosystem support—Fetch, Axios, React Query, Vue Query, Svelte Query, Solid Query, Angular, SWR, Zod, MSW, and even an MCP server.
[html-to-text](https://github.com/html-to-text/node-html-to-text/blob/master/packages/html-to-text/README.md) - Mature HTML-to-plain-text converter for Node.js. Handles block and inline tags, tables with spans, links with hrefs, Unicode, wrapping, selector-based formatting, batch compilation for performance, and a separate CLI package. Useful for emails, feeds, and AI-friendly text extraction.
[whichllm](https://github.com/Andyyyy64/whichllm) - CLI that picks local LLMs based on your actual hardware instead of just "largest model that fits". Detects GPU, CPU, RAM, ranks Hugging Face models by benchmark quality, recency, VRAM fit, estimated speed, and evidence confidence; can also run or print snippets.
[MCP Steroid](https://mcp-steroid.jonnyzzz.com/) - JetBrains MCP plugin that gives agents IDE-native actions—typed refactors, inspections, debugger, test runs, screenshots, and plugin APIs. The pitch is fewer cleanup loops than file-only edits. As someone living inside agent tooling, this is exactly the interesting layer.
