Harry Roberts
banner
csswizardry.com
Harry Roberts
@csswizardry.com
🚀 Independent Web Performance Consultant • Speaker • Google Developer Expert, Web Performance • Accepting new clients • https://harry.is/for-hire
What a beautiful trip to Toronto for @fitc.ca. Thank you so much for having me.
October 24, 2025 at 3:22 AM
Not only is @jpamental.bsky.social a really good friend, he’s an exceptionally good MC. You should hire him for your event.
October 21, 2025 at 9:19 PM
I recently started instrumenting both @cloudflare.social and browser cache hits/misses and the numbers, while obvious, are compelling. The best request is the one that never happens. Check that 0ms TTFB 😍

@speedcurve.com
September 20, 2025 at 1:07 PM
My little salt and oil station.
September 18, 2025 at 1:55 PM
I would wholeheartedly recommend this by the way. 2:1 salt:MSG used anywhere you’d use salt in a savoury context. Amazing on meat and green vegetables.
September 18, 2025 at 12:06 PM
Create a Gist on the website, clone it to your machine, and you’re off. You can’t have branches or directories, but by that point you probably need a full GitHub repo anyway. They are so so so useful; you should definitely be using them more.
September 8, 2025 at 12:38 PM
I wanted to create a slightly tighter lockup for Obs.js’ logo and `h1` but I didn’t want the two to ever touch. Solution? A little dead-zone (coloured red) attached to `::after` which occupies the area overing the j’s descender.
September 1, 2025 at 3:24 PM
Binary code paths with /**//*//**/
August 30, 2025 at 10:21 AM
Audio quality is dreadful but I promise I’ll rerecord it over the weekend. Too good not to share.
August 29, 2025 at 5:08 PM
`--word-diff` and `--word-diff-regex` are your new favourite Git tips:
August 29, 2025 at 1:03 PM
🪄 Really neat trick for docs/demo pages. You can add `display: block` to `script` and `style` and show folk the actual, literal code you’re running. It’s what I do with Obs.js:
August 29, 2025 at 10:51 AM
As a developer, I’ve always struggled with design. I know/appreciate what looks nice, but I can never get there myself. Anyway, I spent a few hours this morning working on a small logotype for Obs.js. Based on Gotham, I’m pretty happy with the results so far.
August 23, 2025 at 1:45 PM
Toying around with some silly things on my Friday evening.
August 22, 2025 at 8:13 PM
I used this to build a quick obfuscator. This will be great for anonymising @speedcurve.com dashboards before putting them in talks etc. Peep the address bar and tab name, too!
August 19, 2025 at 4:27 PM
Chrome DevTools snippets are incredibly powerful, but they don’t accept parameters. One crude way around it is to use `prompt()` to take input on the fly.
August 19, 2025 at 2:56 PM
It is.
August 15, 2025 at 3:45 PM
Yes please!
August 15, 2025 at 3:34 PM
🦋 It took far longer than I’d like to admit, but I made @bsky.app a desktop-installable app. If anyone wants the snippet, get at me.
August 14, 2025 at 5:07 PM
It finally happened!
August 13, 2025 at 12:38 PM
What’s your favourite text editor and why is it Vim?
August 9, 2025 at 9:44 PM
Same code, same infrastructure, different context. Web performance is sometimes an ‘us thing’ and sometimes a ‘them thing’. For better or worse, we have a responsibility to cater to both.
August 6, 2025 at 4:11 PM
🎞️ Here’s an example:
August 5, 2025 at 2:10 PM
🎥 I spent a few hours recording a bunch of short-form web performance tips and tricks on Sunday. I plan to continue recording and releasing as I encounter fascinating real-life scenarios. Interested?
August 5, 2025 at 12:35 PM
I’m working with a client who has a very diverse (adverse?) customer base, so we’re sending off some more high fidelity Network and Device information to @speedcurve.com:
August 1, 2025 at 2:22 PM
You can’t park there, mate.
July 30, 2025 at 6:23 PM