Andy Ingram @andrewingram.bsky.social · 25/06/2026Good news for Vercel. But I’m midway through extricating myself from their ecosystem and service (yeah, I’m being pretty slow about this) as a form of boycott. It’s a shame, because DX-wise I do actually prefer Next over the alternatives, and would love to see it developed under different ownership 0110
Andy Ingram @andrewingram.bsky.social · 28/04/2026Using @nuqs.dev, i'm trying to find a way to use it with something like next-navigation-guard (github.com/LayerXcom/ne...), but nuqs bypasses Next's own navigation APIs so I'm very unclear on the right way to do this. Also tried forking next-navigation-guard. cc @francoisbest.com 120
Andy Ingram @andrewingram.bsky.social · 09/03/2026It’s called tupl now, and the API is coming along nicely — quite powerful and expressive github.com/AndrewIngram... 000
Andy Ingram @andrewingram.bsky.social · 05/03/2026I've been prompting into existence this thing that lets you expose a public SQL interface over your datasources, including other SQL databases. Query playground (schema editing is still a bit rough): sqlql.andrewingram.workers.dev?view=query Repo (unstable API): github.com/AndrewIngram...sqlql.andrewingram.workers.devsqlql playground 100
Andy Ingram @andrewingram.bsky.social · 30/01/2026Some engineers are allergic to co-location, and I find that challenging 110
Andy Ingram @andrewingram.bsky.social · 23/01/2026A 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. 020
Andy Ingram @andrewingram.bsky.social · 21/01/2026Does anyone know know why this action naming convention exists? react.dev/reference/re... @danabra.mov @acemarke.devreact.devuseTransition – ReactThe library for web and native user interfaces 210
Andy Ingram @andrewingram.bsky.social · 14/01/2026I'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 ? 000
Andy Ingram @andrewingram.bsky.social · 22/12/2025The 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. 000
Andy Ingram @andrewingram.bsky.social · 21/12/2025Annoyingly 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. 000
Andy Ingram @andrewingram.bsky.social · 21/12/2025Has 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? 130
Andy Ingram @andrewingram.bsky.social · 18/12/2025A 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 100
Andy Ingram @andrewingram.bsky.social · 18/12/2025Is 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. 131
Andy Ingram @andrewingram.bsky.social · 05/12/2025I wish CSS layers defining stacking layers rather than cascade layers. 000
Andy Ingram @andrewingram.bsky.social · 05/12/2025I got free coffee this morning thanks to the Cloudflare outage so I don't know what everyone is complaining about. 010
Andy Ingram @andrewingram.bsky.social · 05/12/2025It 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 010
Andy Ingram @andrewingram.bsky.social · 02/12/2025Is it me or are the latest versions of the Apple TV YouTube app kinda trash? Scrolling feels terrible. 110
Andy Ingram @andrewingram.bsky.social · 01/12/2025I 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. 020
Andy Ingram @andrewingram.bsky.social · 15/11/2025It’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. 020
Andy Ingram @andrewingram.bsky.social · 07/11/2025Is there a way to do this glowy gradient button without the extra element? codepen.io/andy-ingram/... cc @jhey.dev @nerdy.dev @kevinpowell.cocodepen.ioFancy button... 110
Andy Ingram @andrewingram.bsky.social · 30/10/20252020-2023 was probably the worst time to start any large TypeScript codebase 100
Andy Ingram @andrewingram.bsky.social · 29/10/2025One 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 030
Andy Ingram @andrewingram.bsky.social · 12/10/2025Shit like this is why I keep bouncing off vibe-coding 010
Andy Ingram @andrewingram.bsky.social · 03/10/2025Why 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. 110
Andy Ingram @andrewingram.bsky.social · 01/10/2025graphql-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). 010
Andy Ingram @andrewingram.bsky.social · 22/09/2025I’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. 000
Andy Ingram @andrewingram.bsky.social · 21/09/2025People 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. 010
Andy Ingram @andrewingram.bsky.social · 21/09/2025In my first job we had two servers in the basement that our website was hosted on, and to deploy we just ssh’d in, did an svn update and a soft restart of the apache processes. Getting code changes live was so fast. Modern approaches are safer, but we’ve lost so much. 100
Andy Ingram @andrewingram.bsky.social · 20/09/2025A web framework being used for corrupt autocracy probably isn’t the _best_ selling point tbh 180
Andy Ingram @andrewingram.bsky.social · 20/09/2025Deeply relieved that the Silksong courier rasher task is nowhere near as hard as it looks. 010
Andy Ingram @andrewingram.bsky.social · 20/09/2025The most important setting on the new Apple TV OS is to disable choosing profile on wake. 010
Andy Ingram @andrewingram.bsky.social · 18/09/2025Y’know I was kinda expecting to see that Jimmy Kimmel actually was “spreading misinformation” in some sense, since it’s not exactly uncommon to get facts wrong during a developing story. But if you listen to what he actually said, he didn’t make any kind of claim about the politics of the shooter. 110
Andy Ingram @andrewingram.bsky.social · 17/09/2025Cursor's bugbot (PR commenter) is... really bad. I don't think I've seen it do a PR comment which wasn't actively wrong. 020
Andy Ingram @andrewingram.bsky.social · 10/09/2025Hm, do typesafe updaters work at all with Relay w/TypeScript? cc @en-js.bsky.social I can't even assign value to itself because the get() and set() types are different 010
Andy Ingram @andrewingram.bsky.social · 08/09/2025Starting a large full-stack TypeScript codebase in ~2021 was probably the worst time in history to do it. Every single thing in the ecosystem was apparently in an awkward transition moment. 010
Andy Ingram @andrewingram.bsky.social · 08/09/2025I feel like everyday Cursor gives me a new reason to want to switch back to VSCode 120
Andy Ingram @andrewingram.bsky.social · 04/09/2025The best advert for Cloudflare is the behaviour of Guillermo Rauch on Twitter 130
Andy Ingram @andrewingram.bsky.social · 31/08/2025@steveruizok.bsky.social's perfect freehand really helps with the fake paint effect 281
Andy Ingram @andrewingram.bsky.social · 29/08/2025A bit more progress in making things seem hand-painted 020
Andy Ingram @andrewingram.bsky.social · 26/08/2025Derivative as hell, but I've spent the weekend learning about generative art and this is the first thing I've made that looks like a picture. 170
Andy Ingram @andrewingram.bsky.social · 17/08/2025If i'm using tiptap and partykit, what's the best way to store which users made changes when I save a snapshot (e.g. to db)? Is this something that can be worked out by interrogating the ydoc in the server, or do I need to do it from client (e.g tiptap)? cc @threepointone.bsky.social 000
Andy Ingram @andrewingram.bsky.social · 14/08/2025Did biome just ship explicit support for some user’s in-house file extension? Last I heard (I could be wrong) .graphqls files aren’t a thing github.com/biomejs/biom... @jeff.auriemma.xyz you spend more time in SDL-land, any takes?github.comfeat(core): add support for `.graphqls` files by avshalomt2 · Pull Request #7118 · biomejs/biomeSummary We use .graphqls files for GraphQL definition files that contain only types (SDL), like this: scalar Time scalar UUID type Tenant { id: UUID! name: String! isActive: Boolean! creat... 220