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.
Good 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
... i have joined the @nextjs.org team at @vercel.com. for a start, i'll be working part-time, so please don’t flood me with bug reports yet. however, i’ll try to keep an eye on them as i want to understand what problems Next.js users are running into every day. i want App Router to get good!
Using @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
It’s called tupl now, and the API is coming along nicely — quite powerful and expressive github.com/AndrewIngram...
I'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...
I'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 playground
sqlql.andrewingram.workers.dev
Some engineers are allergic to co-location, and I find that challenging
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.
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
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 ?
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.
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.
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?
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
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.
I wish CSS layers defining stacking layers rather than cascade layers.
I got free coffee this morning thanks to the Cloudflare outage so I don't know what everyone is complaining about.
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
Is it me or are the latest versions of the Apple TV YouTube app kinda trash? Scrolling feels terrible.
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.
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.
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
2020-2023 was probably the worst time to start any large TypeScript codebase
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.
Shit like this is why I keep bouncing off vibe-coding
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.
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).
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.
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.