How to turn 256 bits of entropy into a beautiful, avatar-friendly circular SVG: the Hashvatar
I write about TypeScript, Node.js, React, security and privacy.
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.