Robert Balicki
statisticsftw.bsky.social
Robert Balicki
@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
That's enough for now, but expect more threads in which I do a deep dive on all of the other awesome features that we shipped in v0.4!
September 20, 2025 at 9:52 PM
So go for it! Give Isograph a try! Star the repo! Join the discord! isograph.dev/discord
September 20, 2025 at 9:52 PM
It's just another way in which Isograph allows you to improve performance (fetch less data) while improving developer experience (and velocity!)

Thank you Patryk Wałach for putting in an absolutely heroic amount of work on pointers over the course of a year 🤩
September 20, 2025 at 9:52 PM
They're defined extremely similarly to client fields! Except instead of returning an arbitrary value, you return a link to another GraphQL object.
September 20, 2025 at 9:52 PM
This release introduces client pointers, which were the biggest missing primitive in Isograph! Client pointers are like client fields that return a link to another object, and off of which you can select additional fields.

Here, we select fields off of the dirtiestDodger pointer
September 20, 2025 at 9:52 PM
Next — a new primitive! Isograph apps are composed of client fields, which are functions from graph data to an arbitrary value. You can't select anything off of client fields, i.e. they are "leaves."

SuspectsCard and DirtiestDodgerCard are client fields in this example.
September 20, 2025 at 9:52 PM
First up: the VSCode extension.

Without the VSCode extension, working with Isograph literals feels like manipulating magic strings. But with syntax highlighting, go to definition, and hover info — the VSCode makes it easy to form a mental model of the structure of your app.
September 20, 2025 at 9:52 PM
sograph 0.4 has been released!! Importantly, this includes the official release of the VSCode extension! It includes new primitives! And it includes so much more!

Let's talk about the VSCode extension and client pointers, and save the rest for another thread 😎
September 20, 2025 at 9:52 PM
e.g. in this example, we don't pass any data to `Pet.PetCheckinsCard`! It just knows that it refers to the pet with id $id.

We also don't import PetCheckinsCard ourselves! Sounds trivial, but it means that the compiler can do a lot more. Consider this
July 29, 2025 at 3:35 PM
Hey @jason.energy! Nice to meet you. Isograph is a framework for building data driven apps. For now, GraphQL, later, everything. I'd love to share more about it! (Ideally later in the summer, when the language server ships.)

Example here:
July 29, 2025 at 3:35 PM
#RustNYC has another upcoming meetup on 3/26: I can't believe that's legal Rust! with @mgattozzi.dev

I'm pumped about this meetup. If you loved his RustConf talk "WEIRD EXPRESSIONS AND WHERE TO FIND THEM" (caps in original), then you're going to love this talk.
March 18, 2025 at 7:58 PM
Content Foundry made it to the HN front page!!!
March 7, 2025 at 8:30 PM
github.com/lanesawyer added a demo of using Isograph with Vite, and improved our internal tooling massively 😅😅🤩
March 3, 2025 at 7:55 PM
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!
March 3, 2025 at 7:55 PM
`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.
March 3, 2025 at 7:55 PM
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!
March 3, 2025 at 7:55 PM
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.
March 3, 2025 at 7:55 PM
We're *extremely* excited to announce the release of Isograph 0.3.0 and 0.3.1! These releases are chock-full of new features, and make Isograph much more usable in real-world projects. Let's dive in!

isograph.dev/blog/2025/03...
March 3, 2025 at 7:55 PM
Once again, I am minorly annoyed that TypeScript doesn't properly handle single-variant enums aka it should understand that _ is actually never in this situation cc @ballingt.com
January 31, 2025 at 9:45 PM
I have a type, IsExactlyEqual. It doesn't quite work exactly, as demonstrated by the second picture.

Is there any way to make this behave as expected? @typescriptlang.org Halp
January 29, 2025 at 3:51 AM
#rust Whelp, that's a bummer. I implement Display for an EmbeddedLocation struct. This is a wrapper around a path to a file and span within that file. Displaying that will print out something like what's pictured

- In order to print this, we need to read the file
- So, we need the absolute path
January 3, 2025 at 4:28 PM
I created a starter pack that includes a bunch of folks who are in the GraphQL community! If I missed anyone, please let me know and I'll add them! And feel free to share this widely!

go.bsky.app/P8JViJA

This platform has astonishingly little reasoned discussion of GraphQL, and that should change!
December 28, 2024 at 7:16 AM
google results in thailand
December 17, 2024 at 5:09 PM
every error is a type error
December 3, 2024 at 10:58 PM
😭
December 3, 2024 at 5:41 AM