Skip to content
Cognate Press

JavaScript at Cognate Press

JavaScript

JavaScript, TypeScript, and the runtimes, frameworks and tooling behind modern web applications.

Published as JS Ledger at jsledger.com, written by Jonah Vail — JavaScript, TypeScript, and the systems that run them. First issue .

Every issue on JavaScript

  1. Being able to require() an ES module removes the reason most packages shipped two builds. The dual package hazard is a layout problem, and it survived.

  2. A single-pass push through a diamond recomputes the leaf twice, and the first result mixes a fresh value with a stale one. Two passes are what remove it.

  3. A naked type parameter splits its union before the conditional runs, so IsArray<string[] | number> comes back as 'no' | 'yes'. Read out of TypeScript 7.0.2.

  4. Vite 7 depends on esbuild and Rollup; Vite 8 on neither. Serving one module from both majors shows what the swap to Rolldown changed and what it left alone.

  5. A hidden class is a node in a transition tree V8 keeps for the whole isolate — which is why an unrelated function can decide how your object is stored.

  6. One async function compiled three ways — TypeScript's ES5 emit, V8's bytecode and the spec's Await steps — and the microtask turns each one predicts.

  7. An npm provenance attestation binds a tarball to a repository, a workflow and a commit. Reading the payload shows what it never claims.

  8. What package-lock.json actually records, what its integrity hashes do and do not prove, and where the real install-time risk sits.

  9. Control flow analysis is a graph walk over your code. Knowing what widens a type again explains most of the errors that look wrong.

  10. Microtasks, rendering opportunities and starvation — what the loop actually does between your callbacks, in the browser and in Node.

  11. A walk through one request to a Vite dev server: resolution, the transform pipeline, import rewriting, pre-bundling, and why production differs.

  12. Every signals library is the same forty lines of bookkeeping. Here is what those lines do, and where the four popular implementations diverge.

  13. Two functions that look identical can run at very different speeds. The difference is usually shapes, inline caches, and a deoptimization you never saw.

Archive at jsledger.com ↗

The byline

Jonah Vail

Explores what happens beneath runtimes, frameworks and tooling. Source code and reproducible experiments over received wisdom.

Read the profile →

What the title covers

  • JavaScript
  • TypeScript
  • V8
  • Event loop
  • Vite
  • Build tooling
  • Signals
  • Supply chain security

The other languages in the imprint: PHP · Java · Python · C# · SQL · Go. Each has one title and one byline behind it — the index is at Topics.