Writing · Articles

Articles

Long-form, practical writing on AI engineering, React and JavaScript — hosted right here.

JavaScript Signals: A Practical Guide to the TC39 Proposal

What the TC39 Signals proposal actually gives you: Signal.State, Signal.Computed, and Watchers explained with runnable code, framework context, and honest caveats.

React ViewTransition and Activity: Smooth UI Transitions the React Way

A practical guide to React's ViewTransition component and the Activity API: animated navigation, shared element transitions, and state-preserving hidden UI — with code.

MCP Architecture Explained: Hosts, Clients, Servers, and the 2026 Spec

How the Model Context Protocol actually works — hosts, clients, servers, transports, and primitives — plus what the 2026 spec changes for anyone building MCPs.

Building MCPs: A Practical Guide to Your First MCP Server in TypeScript

Building MCPs demystified: what an MCP server actually is, how to write one in TypeScript with the official SDK, wire it into Claude, test it, and avoid the classic stdio mistakes.

React's Activity Component: Hide UI Without Losing State

A practical guide to React 19.2's Activity component: hide tabs, modals and routes without losing state, and pre-render the screens users visit next.

JavaScript using Declarations: Deterministic Cleanup Without try/finally Pyramids

Explicit Resource Management brings using and await using to JavaScript. How Symbol.dispose, Symbol.asyncDispose and DisposableStack replace nested try/finally - with real code.

Migrating from Create React App to Vite: A Practical 2026 Guide

Create React App is dead and Vite is the default. A step-by-step migration guide: index.html, env vars, proxies, Jest to Vitest, and the gotchas nobody mentions.

Popover API + CSS Anchor Positioning: Tooltips and Dropdowns Without a Library

Build accessible tooltips and dropdown menus with the native Popover API and CSS anchor positioning - no Floating UI required - and wire them into React 19.

React Compiler in Practice: Adopting Automatic Memoization Without Surprises

React Compiler auto-memoizes your components so you can delete most useMemo/useCallback calls. How it works, how to adopt it incrementally, and where it will not save you.

The Temporal API Is Finally Here: A Practical Guide to JavaScript's New Dates

Temporal is now shipping in Chrome and Firefox. A hands-on tour of PlainDate, ZonedDateTime, Instant and Duration — with the recipes you actually need day to day.

JavaScript Iterator Helpers: Lazy .map, .filter and .take Pipelines Without Intermediate Arrays

Iterator helpers are now Baseline in every browser. A hands-on guide to .map, .filter, .take and .toArray — lazy pipelines with no intermediate arrays.

React 19 Form Actions: useActionState, useFormStatus and useOptimistic Explained

How React 19's Actions replace the useState/loading/error boilerplate in forms — a practical walkthrough of useActionState, useFormStatus and useOptimistic with real code.

Looking for my posts on Medium, dev.to and elsewhere? See external writing.