I write about TypeScript, Node.js, React, security and privacy.
How to turn 256 bits of entropy into a beautiful, avatar-friendly circular SVG: the Hashvatar
The perils of premature optimisation in detecting modified source files when building Docker images for Rust.
Building mobile UI mockups in Excalidraw is a lot of fun, but eye-balling screen ratios is not great. Here are some free resources to help you get started, and a guide on how to make your own frames.
How to give a dark twist to Excalidraw diagrams with CSS filters.
GitHub Actions are a great way to build powerful customised CI/CD workflows using the power of community-driven resources, but they can be tricky to get right in terms of security.
We forget passwords. Usually it's OK, because most websites implement a password reset feature. But how to do this in end-to-end encrypted applications that don't have access to the password in the first place ?
End-to-end encrypted applications use cryptographic keys that don't leave the client, so how do we store them securely in the browser ?
A first look at how to implement an OAuth authentication / authorization exchange in Rust.