Andy Ingram
banner
andrewingram.bsky.social
Andy Ingram
@andrewingram.bsky.social
CEO of naming things. React and GraphQL since before they were CV fodder. “an encyclopaedic knowledge of web development". Manifesting code at Watershed.
Some engineers are allergic to co-location, and I find that challenging
January 30, 2026 at 11:48 AM
A lot of UI state should be derived from the URL (path and query strings), but that derivation should happen at the root of your component tree so that the bulk of your components are agnostic to it -- otherwise you impair their reusability.
January 23, 2026 at 2:38 PM
Does anyone know know why this action naming convention exists? react.dev/reference/re... @danabra.mov @acemarke.dev
useTransition – React
The library for web and native user interfaces
react.dev
January 21, 2026 at 2:50 PM
I've found a Chrome-only bug in anchor-positioning (it works as expected in Firefox and Safari), who do I talk to? is it @una.im ?
January 14, 2026 at 1:22 PM
The limitations of anchor postioning likely make a lot of sense in terms of not making it possible to crash browsers, but are frustrating because I can’t find a way to do the cool stuff I want to do — like having a line connecting an span in the main content area to an area in a sticky sidebar.
December 22, 2025 at 2:56 AM
Annoyingly you can't use anchor positioning in scroll-margin or scroll-padding, so if you want to account for a sticky header with internal links on a page you still seem to be stuck with magic numbers.
December 21, 2025 at 2:56 PM
Has anyone ever gone with a convention of defining their CSS animation duration in terms of frames rather than absolute duration?

e.g calc(16ms * 8)

cc @jhey.dev maybe?
December 21, 2025 at 12:41 PM
A missed opportunity that's potentially loosely related to the design of CSS anchor positioning is the ability to do "position: sticky" but without the annoying constraints about parent elements

If you don't have full control over document structure it's super restrictive
December 18, 2025 at 2:44 PM
Is there a way to batch React state updates across multiple event handlers that happen in the same tick? Use case: I have a side panel that uses an “on outside click” hook to close it, but it’s possible the thing you’ve clicked would actually reopen it.
December 18, 2025 at 12:49 AM
I wish CSS layers defining stacking layers rather than cascade layers.
December 5, 2025 at 10:30 PM
I got free coffee this morning thanks to the Cloudflare outage so I don't know what everyone is complaining about.
December 5, 2025 at 11:26 AM
It should be possible to define svg path points using child elements rather than the `d` attribute, then they could be individually positioned with CSS, eg anchor positioning

@jakearchibald.com make happen plzkthx
December 5, 2025 at 11:20 AM
Is it me or are the latest versions of the Apple TV YouTube app kinda trash? Scrolling feels terrible.
December 2, 2025 at 9:47 AM
I have a mild distaste for state management libraries that default to assuming any given bundle of state only exists once (i.e is effectively global), such that making it work in a scoped fashion is often quick finicky.
December 1, 2025 at 12:47 PM
It’s somewhat annoying how much easier it is to take good aurora photos with an iPhone than with a chonky camera. This was a few minutes ago by the side of a road in Iceland.
November 15, 2025 at 8:02 PM
Is there a way to do this glowy gradient button without the extra element? codepen.io/andy-ingram/...

cc @jhey.dev @nerdy.dev @kevinpowell.co
Fancy button
...
codepen.io
November 7, 2025 at 12:21 AM
2020-2023 was probably the worst time to start any large TypeScript codebase
October 30, 2025 at 5:32 PM
One thing I’d add is that if your reaction to a pattern is “urgh that seems like extra work” rather than “this is the right way, it’s a shame about the verbosity”, you’re probably not focusing on the right thing.

1. Do it right
2. Then make it nice
I’d go so far as to say that any abstraction motivated primarily by reuse has a very high probability of being a bad one.
October 29, 2025 at 11:32 AM
Really speedrunning things now
October 20, 2025 at 4:47 PM
Shit like this is why I keep bouncing off vibe-coding
October 12, 2025 at 10:08 PM
Why is there not a single good multipart response handling library for node? All the ones I've found suck in one way or another. Every GraphQL client that has native support for defer (e.g. Apollo and urql) implements their own handling of the multipart spec.
October 3, 2025 at 2:47 PM
graphql-eslint seems to be the latest thing to make it hard to have urql and relay coexist in the same codebase.

We have lint rules as guardrails from query mistakes with urql that aren’t needed for Relay (like always having to select an id field).
October 1, 2025 at 12:06 AM
Triangle man is certainly making some choices.
September 29, 2025 at 7:19 PM
I’m fairly sure I’ve now done all the hardest platforming sections in Silksong and tbh I’m a little disappointed, hopefully there’s some crazy path of pain equivalents in future dlc.
September 22, 2025 at 12:20 AM
People on the left can’t agree on *anything* (it’s the main reason left-leaning parties don’t sweep every election in the UK), so it’s *very* bizarre to see the right treat them as a homogenous hivemind.
September 21, 2025 at 10:16 PM