Robert Balicki
@statisticsftw.bsky.social
760 followers 460 following 570 posts
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
Posts Media Videos Starter Packs
Reposted by Robert Balicki
sunshowers.io
New blog post: Cancelling async #rustlang!

This is a written version of my talk at #RustConf 2025, where I talk about the joys and sorrows of future cancellations in Rust, with lessons from our work at @oxide.computer. Includes a video of the talk as well. Check it out!
Cancelling async Rust ꞏ sunshowers
Correctness in the face of cancellations: a written version of my talk at RustConf 2025.
sunshowers.io
Reposted by Robert Balicki
reedharmeyer.bsky.social
@statisticsftw.bsky.social remember when I said we couldn’t query atproto with GraphQL?

Well @slices.network might have just changed that!

I’d use Isograph in a heartbeat with atproto.
statisticsftw.bsky.social
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!
statisticsftw.bsky.social
So go for it! Give Isograph a try! Star the repo! Join the discord! isograph.dev/discord
statisticsftw.bsky.social
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 🤩
statisticsftw.bsky.social
But even in its current state, it enables something very unique: the ability to define a "GraphQL resolver" locally. This allows you to iterate on features before adding it to the actual schema, at which point, you're restricted by the "no backwards incompatible changes" rule.
statisticsftw.bsky.social
- server execution (another way to get rid of the network waterfall!)
- support for abstract pointer types

And so much more!
statisticsftw.bsky.social
And this is just the beginning! There are several improvements that are planned:
- starting the network request when the query is normalized, instead of when the component renders
- inlining the selection set, i.e. to get rid of the network waterfall
statisticsftw.bsky.social
Why might you do this? Well, you might imagine that there are thousands of suspects. So, fetching a bunch of fields on each of them, only to throw all but one of them away, is incredibly wasteful.

So, split this up into multiple queries and save on bandwidth and on server costs!
statisticsftw.bsky.social
They're defined extremely similarly to client fields! Except instead of returning an arbitrary value, you return a link to another GraphQL object.
statisticsftw.bsky.social
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
statisticsftw.bsky.social
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.
statisticsftw.bsky.social
🙌 Thank you Vadim Evseev for refactoring the Isograph compiler and adding our caching layer, which allowed us to ship such a performant VSCode extension so easily 😎 (but more on that in another thread)
statisticsftw.bsky.social
And this is just the start! We spent the last year laying the groundwork for future improvements. So expect a bunch of other features, like autocomplete, surfacing errors, etc. to be fast follows.
statisticsftw.bsky.social
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.
statisticsftw.bsky.social
Isograph is a framework for building data driven apps that are stable and performant out of the box, all while providing great DevEx.

This release drastically improves DevEx, and includes new primitives that allow you to build even more feature-rich, performant apps.
statisticsftw.bsky.social
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 😎
Reposted by Robert Balicki
graphql.org
GraphQL @graphql.org · Sep 10
#GraphQLConf murder mystery - who shot
@statisticsftw.bsky.social?!!
(photo credit: @tazsingh.com)
statisticsftw.bsky.social
What are your Gluttony Goals
Reposted by Robert Balicki
adamchalmers.com
as they say, "if you improve performance by 20%, you did something smart. If you improve performance by 20x, you stopped doing something stupid."
Criterion benchmark showing a 1800% improvement in throughput
statisticsftw.bsky.social
And yes, that hook was called conditionally. Basically, that would have to be done across two components, but there's a plan to improve the DevEx (basically @required support)