Phil Wolstenholme
banner
wolstenhol.me
Phil Wolstenholme
@wolstenhol.me
Lead front-end eng @CoopDigital. Interested in the web (front-end, #a11y, performance), environment, bikes (everyday/utility) and science. @philw_@hachyderm.io
@jensimmons.bsky.social @saron.bsky.social @jondavis.bsky.social – do you know why using this CSS would cause flickering? It's across devices and iOS versions:

```
:where(:root) {
--vpc-loader-height: 23.75rem;
}
content-visibility: auto;
contain-intrinsic-size: auto var(--vpc-loader-height);
```
October 23, 2025 at 1:58 PM
Neat little feature on my new personal site: use the `Sec-CH-UA-Mobile` header (or UA sniffing 😔) to know the device type during SSR and show fewer items per page. This saves mobile users from having to scroll past giant stacked lists that would be in a nice grid on desktop:
September 28, 2025 at 2:29 PM
Also, black tape pagination buttons, because why not?
September 18, 2025 at 8:55 PM
New feature on the redesign of my personal site (wolstenhol.me) – show when its the birthday of a repo I've starred on Github. Happy anniversary for oRPC, @unnoq.com!
September 18, 2025 at 8:53 PM
Lodash with imports from `lodash/package`: 151.16kb
`es-toolkit`: 3.88kb

Tests passing, TS happy, linter happy. There's a bundle size reduction, a speed increase, and we can drop the Lodash ESLint plugin and `@types/lodash` too 🙌

Thanks github.com/toss!
July 11, 2025 at 8:27 AM
Oooh fun! These are my main bikes, a £80 second hand bike that is exactly one year (to the month) older than me (I've since spent many times that on sprucing it up), my Brompton with optional beer crate cargo hack, and a Gazelle for when speed is not a priority but cruising in comfort is!
November 13, 2024 at 2:14 PM
Made a cute bit of UI to switch between Adobe Target A/B test experiences in server-side rendered HTML. It's all managed with React Server Components and API calls to save us having to load a tonne of Adobe's third party JavaScript and still suffer layout shift and flicker.
October 31, 2024 at 6:36 PM