Sam Thorogood

work

Practical Python Modules

Python modules suck—here's some guidance if you've used Node.

Focus Management in 2022 📺

I spoke about <dialog> and inert! Watch it, plus read an addendum. 👀

Event-Driven JavaScript Development

You should be building objects that emit their own events in JS. Learn how!

Cross-Tab Title Hints

Hidden tabs can be made to work for your users—find out how 👀

AbortController is your friend

The AbortController is ostensibly for fetch, but it has some other ways we can use it too.

Unit Testing React without Jest

Using the power of JSDOM, we can avoid Jest and its legacy code completely.

Builtin Node.js Testing

It's 2022, and you can test your Node.js code without ANY dependencies 🥳

(P)react vs Web Components: a Xoogler's perspective

My job was Web Components! For years! Read some thoughts.

Thoughts on Google and what's next

I'm leaving Google to join a tiny energy startup ☀️🔌🔋 as CTO!

In Defence Of Dialog

The modal dialog is here. Stop, and be prompted! ✋

How I Learnt To Stop Worrying And Love Animating The Box Model

Or, let's talk about accordions. 🪗

Sents File Watcher for Node

A pure-JS file watcher with no dependencies.

Disposable Web Components

Web Components are described as re-usable. What if instead, we can dispose of them and restart whenever we like?

Async functions & microtasks

A brief interlude on async, Promise, and execution order.

UX, meaning and singular focus

Consoles present modals when they want user input, such as from the keyboard. Can we apply this to the web?

Web Font Loading & The Status Quo

Is font-display right for you?

Observing rendered DOM nodes

Observe DOM appearance, size and and rendering position on a page.

Check your JS with TS

You have a JS-only ESM project and want TS' type-checking. Follow this easy guide.

Understanding Load Events on the Web

We use the load and DOMContentLoaded events in our scripts, but do you understand why?

The System Font

Learn how to use the system font for your webpages—it's pretty.

Control Loading Spinner in HTML

Control your browser's loading spinner.

Async Generators for User Input

Use a native-like event loop on the web.

Node.js Streams & Object Mode

Streams for bytes are rarely useful, and objectMode can be made better.

Logging with App Engine and Stackdriver

Application logs inside App Engine used to be easy, now they're not.

Better convenience methods for HTML

Beyond appendChild and friends

What To Expect When You're Expecting To Drop IE11

50+ web features you can use when you say 👋 to IE11 support!

Fast GIF parsing on the web with WASM + Wuffs

ES6 Modules & Polymer

The Web Is Dead! Long Live The Web!

ES6 Modules in the Real World

Creating a temperature converter with Custom Elements

How to add a Web App Manifest and mobile-proof your site

Blog on Web App Manifest and how to actually just create one.

Focus inside Shadow DOM

Wherein I explain some concepts about how the browser treats focus inside Shadow DOM, and how you as a developer can get access to it.

Much Element, Very Animate