Let's start with the obvious: there's lots of great posts out there on font loading (which all tend...
When building webpages, we create and use HTML elements, but this is often a decidedly one-way...
Check your JS with TS TypeScript is great and its static analysis and typechecking can...
tl;dr: as of August 2020, use the following snippet to get the system font on your webpages, on most...
Control Loading Spinner in HTML If your web experience involves real HTML pages and actual...
Async Generators for User Input It's possible to build JS, on the web, with a native-like...
Node.js Streams & Object Mode Streams in Node.js serve two purposes.The first, more...
Logging with App Engine and Stackdriver In days of old, App Engine's logging statement...
A quick tip: in a previous demo, I showed how we can download a large file to seed the content for a...
Your backends could crash at any time. Code defensively!
Does your design involve horizontal scrolling? Ensure that natural, vertical scrolling works as intended.
50+ web features you can use when you say 👋 to IE11 support!
Lit Element is a modern Web Component darling, but it's not "all-in". Read about how it plays nice with the platform.
Sometime since I wrote this post about using Google Assistant to open and close my garage door,...
In your JS, we can ask whether your site was loaded by tapping on an installed homescreen icon. Could we use this to prompt an install?
Learn about the helpers `matches` and `closest` in JS/HTML!
Experiments with installing PWAs from a tar file
Use `fieldset disabled` to prevent form changes during a submit!
Sam has worked for Google for ten whole years. Ask him things!
Sometimes, we all just have to write vanilla JS. Make it easier by updating your repertoire!
Learn how to open a page, submit a form, and scrape the result with Puppeteer.
A brief insight into my dotfiles and helpers
var, let or const: what is the right choice? 🤔
Let's intercept the Select All gesture and do something better!
Esoteric musings on JavaScript's ambiguous arrow function
Thoughts on Civilization (the video game, not the concept) and game theory!
Sam writes a post every day in June: read on!
Learn about Node's built-in filesystem watchers so that you only rebuild projects when you need to.
Some reading on the CDS 2018 site—a simple content site for Chrome's annual conference
Over the past few days, I've been experimenting with WebGL, which is OpenGL fro...