Profile avatar
statisticsftw.bsky.social
Creator of Isograph https://github.com/isographlabs/isograph. Check out my talk at GraphQL conf! https://youtu.be/sf8ac2NtwPY?si=jkljEacLsxStFfjg Pinterest, previously Relay team at Meta
545 posts 740 followers 445 following
Regular Contributor
Active Commenter
comment in response to post
Well, it mostly works with Claude code wiring a shitload of hacks together but I am archiving stuff for offline viewing lol github.com/notactuallyt...
comment in response to post
That's really cool!!! I've never tried anything similar, so tbh I have no idea. But it's sick that you made it work!
comment in response to post
Oh very cool! Yeah, I've reached out to Will already (I think he's ton of crates?) and he's down to present. But I'd love to also have Gavin present if possible!
comment in response to post
Whoa! Very cool. Would you be interested in presenting at an upcoming RustNYC about this?
comment in response to post
My thoughts exactly
comment in response to post
Just FYI, the audio quality was quite bad, so this talk won't be put up on YouTube :/
comment in response to post
and we'll also try to publish the recording
comment in response to post
Yes! It will be streamed to the Rust East Coast discord discord.gg/P4T75n8rnT
comment in response to post
Great coworkers (Leonardo, Michaelangelo, Donatello. Also there's Raphael but he's on a pip)
comment in response to post
And just as a note, a #RustNYC tradition is to end the meetup with dtolnay's Rust Quiz. I'm pretty sure Michael will be able to beat all of us at it.
comment in response to post
So come! Nerd out! Eat pizza! Get to know other talented Rust engineers! www.meetup.com/rust-nyc/eve...
comment in response to post
Don’t worry, laws are neutral, the rich and poor are punished the same for stealing bread
comment in response to post
Randall and other CF folks have worked at Meta, so they've seen the DevEx you get internally, and understand the long term vision of Isograph. And he's committed to building a small team that ships, which is to say β€” they're going to take advantage of how Isograph makes shipping easy!!!
comment in response to post
Anyway, the 280 character limit is kind of lame, just saying. Bsky should support longer messages, like Twitter does. It makes this kind of post a lot easier. Kthx
comment in response to post
And, you'll be able to refetch on missing data, e.g. if you're fetching your best friend's name, and due to a new query, you discover that the best friend has changed (and the name is not fetched), you can opt into automatically refetching. This is somewhat low priority for now, though
comment in response to post
Soon, you'll have control over suspense and be able to read fields as unions of { kind: "Available", value: T } | { kind: "Unavailable" }, w/the option of unwrapping this type (i.e. causing the parent to be unavailable if a child field is unavailable). Currently, we effectively unwrap all fields
comment in response to post
Anyway join the discord when you have that spare cell :)
comment in response to post
They'll play a bigger role soon, when you can define your own pointers (e.g. featuredEvent or something), where the source of truth for that is e.g. the front-end. Or you might have bestFriend, which (for some reason) the backend doesn't implement, and it's the friend with the max closeness
comment in response to post
Oh really? I thought of it as an implementation detail. Certain fields, like `isUser`, will be non-null if the concrete type is user. They're implemented as pointers to an arbitrary object, and they're implemented as `data.__typename === "User" ? data . link : null`
comment in response to post
Thanks!!! @guild.host rewrite in Isograph wen??
comment in response to post
So why not give it a try? Check out the quickstart: isograph.dev/docs/quickst..., join the Discord: discord.gg/qcHUxb6deQ and watch the presentation at GraphQL conf: youtube.com/watch?v=sf8a.... The community is welcoming and ready to help you if you ever get stuck :)
comment in response to post
Look. What I'm saying is this: - Isograph is a fast moving and groundbreaking project. - 2025 is going to be the year of Isograph. This release sets us up for an absolutely gamechanging v0.4.0 release. - There's never been a better time to get started or contribute!
comment in response to post
We improved component prop types. @adrtivv improved error handling in our demos. And we made loads of internal improvements!
comment in response to post
Patryk added loads of additional validations, like that there are no undefined or unused variables. We added a bunch of configuration options, including @xiniha.dev adding a flag that causes our babel transform to emit ESM modules instead of require calls 🀩
comment in response to post
github.com/lanesawyer added a demo of using Isograph with Vite, and improved our internal tooling massively πŸ˜…πŸ˜…πŸ€©
comment in response to post
Massively improved docs. This is an ongoing effort, but we've rehauled a lot of our docs! The quickstart is a great place to ... well... get started isograph.dev/docs/quickst...
comment in response to post
github.com/ch1ffa contributed (and continues to work on) compiler performance improvements. In these releases, we refactored the compiler to reuse some previous results, dropping recompilation time to 33% in some cases! Amazing!! Expect more announcements here shortly πŸ™ˆπŸ™Š
comment in response to post
Once again, thanks to Patryk, we added a `link` field, which is similar to Relay's `__id` field. It's used internally by `asNode` fields, for example!
comment in response to post
Thanks once again to Patryk, we lifted the requirements that IDs are globally unique! Now, they only have to be unique within a given typename. This was, for many years, a blocker to the adoption of other frameworks. Don't let it stop you from adopting Isograph!
comment in response to post
`onComplete` and `onError` callbacks. Now, when you make a network request with `useLazyReference` or `useImperativeReference`, you can be notified if the network request completed or errored out.
comment in response to post
We added support for refining from interface/union types to concrete types, using `asConcreteType` fields that are added by the compiler. The value of these fields will be null if the abstract type doesn't match the concrete type!
comment in response to post
Fetch policies β€” we've added fetch policies. Now, when you make a network request using `useLazyReference` or `useImperativeReference`, you can specify that the network request should always go out, never go out, or go out only if there is missing data in the local store.
comment in response to post
Patryk contributed hooks for Relay-style connection spec pagination. Check out the GitHub demo for an example of it in action: github.com/isographlabs...
comment in response to post
Okay, so let's cover each of the shipped features in turn:
comment in response to post
To me, the best part about these releases is not the features themselves, but that there are contributions from *five* new developers. And not just small features β€” Patryk Walach and github.com/ch1ffa are absolutely killing it, and are shipping groundbreaking changes.
comment in response to post
And make sure you give it a try! Check out the quickstart: isograph.dev/docs/quickst..., join the Discord: discord.gg/qcHUxb6deQ and watch the presentation at GraphQL conf: youtube.com/watch?v=sf8a...