P.01Wall Clock vs Monotonic Clock: Measure Time Right
Use a monotonic clock for durations and timeouts, the wall clock only for timestamps. Python, JavaScript and Go code, plus the leap-second bug that shows why.
Tag
98 articles tagged #JavaScript.
P.01Use a monotonic clock for durations and timeouts, the wall clock only for timestamps. Python, JavaScript and Go code, plus the leap-second bug that shows why.
P.02Deno Deploy shuts down six months after the October 9, 2026 Cloudflare news. Here is the timeline and how to move each Deno API to Cloudflare Workers.
P.03Node.js 26.11.0 adds --process-timeout, histogram snapshots and diffs, Buffer.stringLength() and header validators. What to adopt, and the sqlite rename.
P.04A service worker is a script that sits between your page and the network. Register one, cache assets, serve offline, and ship updates without stale-cache bugs.
P.05Chrome 154 shipped September 22, 2026. What can affect your site: HTTP warnings, popover light dismiss, WebSocket options and new CSS, plus a test list.
P.06Node.js 26 goes LTS in October 2026. What breaks moving from Node 24: removed stream modules, writeHeader, native addons, transform-types, and a rollout plan.
P.07Signals are the reactivity model behind Angular, Vue, Solid, and Svelte 5. Here's how they actually work, and the TC39 proposal to standardize them.
P.08TC39's Stage 3 import defer proposal loads a module without running it until you touch it. What problem it solves and why you can't ship it yet.
P.09A heavy JavaScript task freezes your UI because it runs on the same thread as rendering. Here's how Web Workers fix that, with real benchmark numbers.
P.10WebTransport hit Baseline in March 2026 when Safari 26.4 shipped it. Here's what it actually does, how it differs from WebSockets, and when to reach for it.
P.11React 19.3 shipped September 9, 2026, and turned two long-experimental APIs stable: View Transitions and Fragment Refs. What changed and whether to upgrade.
P.12ES2026's using and await using close files, connections, and locks when a block ends, with no try/finally. The syntax, real examples, and support today.
P.13Float16Array stores numbers in half the bytes of Float32Array, trading precision most workloads never used. What it's for, what it costs, where it fails.
P.14Chrome 152 added :playing, :paused, :buffering, and :muted as real pseudo-classes. A runnable custom player built on them, plus the JS fallback.
P.15Bun 1.4 is the first stable release on the Rust runtime, adding browser automation, image and markdown APIs, and real speedups. Why it split opinion.
P.16React Router v8 shipped as a deliberately boring release. What the version bump requires, what the codemod handles, and the three things that catch teams.
P.17From Node.js 27 in October 2026, Node drops the odd/even model for one major a year, and every release becomes LTS. What changes, and how to plan for it.
P.18WebMCP is a W3C proposal letting a page register JavaScript functions as tools an agent calls in-browser, no server MCP. How it works, and where it breaks.
P.19Qwik skips hydration instead of optimizing it. How resumability actually works, what Qwik 2.0 changed, and the honest tradeoffs before you ship on it.
P.20Chrome and Edge can prerender the next page before a user clicks, with no SPA rewrite. How the Speculation Rules API works, what it wastes, and shipping it.
P.21No Access-Control-Allow-Origin is the most Googled web error for a reason. What CORS is, why the browser enforces it, and how to configure it properly.
P.22Node.js 24 made type stripping stable and on by default: node file.ts just runs. What that buys you, what syntax it can't handle, and when you compile.
P.23Build browser push yourself with the Push API, Notifications API and a service worker. No OneSignal, no Firebase. The full setup, VAPID keys included.
P.24Searches for React 20 keep climbing, but the latest release is 19.2.7. What actually shipped in the 19.2 line, including useEffectEvent, and why.
P.25Trusted Types, shape(), and contrast-color() all reached Baseline in early 2026. What each replaces, with working code, and what newly available means.
P.26TypeScript 7.0 hit GA on July 8, three weeks after the RC. The real GA benchmark, what strict mode locks in, and why Astro and Vue projects should wait.
P.27Temporal hit Stage 4 and ships unflagged in Chrome 144, Firefox 139, and Node 26. Migrating common Date patterns to PlainDate, ZonedDateTime, and Duration.
P.28Trusted publishing lets GitHub Actions and GitLab CI publish via short-lived OIDC tokens instead of a stored npm token. The setup, and the May 2026 change.
P.29Node.js 26.5.0 exposed ReadableStreamTee, added streaming Blob text reads and TLS group reporting, plus crypto hardening. What's worth adopting now.
P.30Astro 7.0 rewrote its compiler in Rust, jumped to Vite 8, and switched markdown parsers by default. What changed, what was removed, and how to upgrade.
P.31Bun 1.3 ships Bun.sql for Postgres, MySQL, MariaDB, and SQLite, plus a Redis client it claims is 7.9x faster than ioredis. When switching is worth it.
P.32npm v12 blocks preinstall, install, and postinstall scripts, Git dependencies, and remote tarballs unless allowed. What breaks, and how to migrate.
P.33Full coverage means every line ran, not that your tests would notice it breaking. How mutation testing answers that, with Stryker and mutmut.
P.34Vite 8 replaced its dual esbuild and Rollup setup with Rolldown, a Rust bundler, by default. What changed, the real build times, and whether migrating pays.
P.35Astro 6.4 ships a pluggable markdown pipeline and Sätteri, a Rust processor that speeds up content-heavy builds. It can't run your remark plugins yet.
P.36TC39 is standardizing signals, the reactive pattern already inside Vue, Solid, Angular, and Preact. Years from browsers, but it changes what to build on.
P.37TC39 finalised eight proposals for ES2026. Temporal gets the headlines, but Iterator Helpers, Set methods, Promise.try, and RegExp.escape matter too.
P.38Deno 2.9 ships deno desktop, turning any web project into a native app with no Electron boilerplate. What it's for, and when to stay on Tauri instead.
P.39All three frameworks matured and all three make different tradeoffs. The four questions that settle it, and why there's no universally right answer.
P.40TanStack Start hit 1.x stable and is closing on Next.js in downloads. An honest comparison: what each is good at, where each falls short, how to decide.
React Native's New Architecture is the default now. Screening for JS and native boundaries, Expo tradeoffs, and knowing when cross-platform is wrong.
Firebase's complexity and Supabase's Postgres assumptions don't fit every project. How PocketBase, Appwrite, and Convex differ, and when each one fits.
Frontend developer means different things to different teams. The core screen: HTML semantics, CSS fundamentals, Core Web Vitals, and skill beyond React.
Vue 3 is the default now and the Options API is legacy. What a strong Vue developer looks like, what questions reveal real skill, and the red flags.
TypeScript is the default now, so the market is full of people who write it without understanding it. The questions that tell the two groups apart.
Node.js has split into async-first, TypeScript-native, and edge-runtime camps. The screen that finds someone who builds production backends, not tutorials.
Svelte 5's runes replaced magic variable tracking with explicit reactive primitives. A year into production: what changed, what improved, what surprised.
Three tools, three bets on where complexity belongs. How to choose between BullMQ, Inngest, and Temporal based on what your system needs, not what sounds big.
Playwright dominates scraping now, but tooling is the easy part. A practical guide to scraping that works, and the legal lines to know before you ship.
Expo Router brings file-based routing to React Native, the pattern web developers know from Next.js. Here's how it works and where the friction lives.
While the ecosystem chased Bun, Deno, and edge runtimes, Fastify stayed the production choice for high-throughput Node APIs. Why it still holds up.
SolidJS skips the virtual DOM entirely, compiling to real DOM operations with fine-grained signal-based reactivity. Here's what that means in practice.
Three.js makes WebGL usable. React Three Fiber makes Three.js feel like React. The fastest path to interactive 3D on the web, and how to use it.
XState v5 ships a rewritten API that's smaller and easier to read than v4. Here's how state machines help in production UI, and what the migration looks like.
Alpine.js adds dropdowns, modals, tabs and form behaviour straight in your HTML, with no build step and no framework. When that's exactly right.
Deno 2 ships with full Node.js compatibility, npm support, and a revised standard library. Here's what that means for teams evaluating it as a serious Node alternative.
TypeScript 5.0 replaced experimentalDecorators with the TC39 Stage 3 proposal: different syntax, more capable, now the standard way to write decorators.
Redux is overkill for most React apps: Zustand and Jotai cover most state needs with far less boilerplate. Here is when to use each and how they actually work.
ESLint 9 made flat config the default and deprecated .eslintrc. Here's what changed, why it's better, and how to migrate without breaking your setup.
Choosing between react-i18next, next-intl, and Lingui comes down to your framework: next-intl for Next.js App Router, react-i18next elsewhere.
Three viable paths to cross-platform mobile in 2026. Which one makes sense depends on your team, your deadlines, and how much of the device you actually need.
Command-line tools are underrated as developer products, and TypeScript makes them maintainable. Parsing, prompts, output, errors, and distribution.
The Date object has been broken for 30 years. Temporal is its replacement, now shipping in browsers and Node.js. Here's what actually changed and how to use it.
NestJS is Express with structure imposed: modules, dependency injection, decorators. When that pays for its learning curve, and when it does not.
AI tools write code fast. TDD asks you to slow down and write tests first. These two impulses seem to be in tension. Here's how they actually work together.
WebGPU is now in Chrome, Firefox, and Safari: a general-purpose GPU compute layer, not just graphics, for ML inference, image processing, and simulation.
P.67Structured commit messages unlock automatic changelogs, version bumps, and release notes. The full setup, from commitlint hooks to shipping in CI.
Three different approaches to styling a web application — Tailwind, CSS Modules, and CSS-in-JS libraries — and the team contexts where each one actually makes sense.
P.69Manifest V3 changed how Chrome extensions work. What matters for developers today: service workers, declarativeNetRequest, and the gotchas nobody warns you about.
CRDTs and sync engines make local-first apps feel instant and merge edits without conflicts. Here is how they work and whether your app actually needs them.
CSS, Framer Motion, and GSAP each solve different animation problems in 2026. Here's how to pick the right one for your project and skip the rest.
The View Transitions API and scroll-driven animations are now baseline in every major browser. Here's what they replace and working code for both.
Most developers still run decade-old command line tools. Here's what's replaced them in 2026: faster terminals, Git UIs, shell prompts, and search tools.
A Playwright E2E suite that scales reuses auth state across tests, follows a folder structure built for growth, and configures CI to isolate real flakiness.
React Native's Fabric and JSI replaced the async bridge with direct native calls, default since RN 0.76. What changed, what migration costs, and the rough edges left.
Media queries ask how wide the viewport is. Container queries ask how wide the component's parent is. That shift changes how you build reusable components.
If your design system needs to work in React, Vue, and a legacy jQuery app simultaneously, Web Components are the only native answer. Lit makes them practical to write.
P.78Google's crawler runs JavaScript, but on a delay and with different limits than a browser. Here's where JS app SEO actually breaks, and how to test for it.
PWAs got a second wind once iOS 16.4 enabled push notifications and iOS 17 improved install flow. The gap between PWA and native is now narrow enough to matter.
P.80AI SDK 7 replaces maxSteps with stopWhen: isStepCount(), renames system to instructions, and moves structured output into generateText. Working code for each.
TypeScript leaves errors untyped by default. Effect TS fixes that with typed failures, dependency injection, and structured concurrency.
Vuex was Vue's state library for years, and Pinia replaced it as the official recommendation. How Pinia works, and where it fits in a Vue 3 app.
P.83Hono started as a tiny router for Cloudflare Workers and became the default for edge APIs. What it does well, and why "runs everywhere" actually holds.
P.84Interaction to Next Paint replaced First Input Delay in 2024, and most sites still haven't caught up. Here's why INP is harder and how to actually fix it.
Tauri 2.0 added iOS and Android while keeping tiny binaries, a Rust backend, and the OS webview instead of a bundled Chromium. How it works, and when.
P.86Drizzle is the TypeScript-first alternative to Prisma: schema in TS, migrations in SQL, no query engine binary. How it works, and when to pick it.
Vitest runs faster than Jest, handles ESM and TypeScript natively, and shares Jest's API. The case for switching in a Vite project, and how to do it.
Biome is a Rust-based toolchain that replaces ESLint and Prettier with one fast binary for linting, formatting, and imports. Here is what migrating looks like.
Not every real-time feature needs WebSockets. Server-Sent Events handle most push scenarios with far less complexity. How to choose, with working code.
Playwright E2E tests break because of fragile selectors, shared test state, or overly broad scope, not the tool itself. Fix those and tests survive UI changes.
WebRTC makes video calls and live features possible, but production hits NAT traversal, signaling, and codec problems no demo ever shows you.
Bun hits 52K req/sec, Deno 2 has full npm compatibility, and Node.js still leads enterprise adoption. Benchmarks and migration notes for picking a runtime.
Pick Astro for content sites, Next.js 16 for large React apps, React Router 8 for loader-and-form apps on any host. Current versions and tradeoffs compared.
A 16-package starter set for TypeScript projects: ESLint, Prettier, Vitest, Playwright, MSW, Zod, ky and more, with current versions and the packages to skip.
Vapor Mode is stable in Vue 3.6, released in early 2026. It compiles templates straight to DOM operations with no virtual DOM. Benchmarks, and when to switch.
Move a Webpack app to Vite 8 step by step: index.html, env vars, require.context, loaders and config. Then move Jest tests to Vitest 5 one file at a time.
jQuery 4.0 shipped January 17, 2026, its first major version in a decade, and it still runs 77% of JS-powered websites. Here's what's new and who should upgrade.
React 19 shipped Server Components, Actions, a built-in compiler, and new hooks like useOptimistic and use(). Here's what changed and how to migrate.