Jason Kuhrt
banner
kuhrt.me
Jason Kuhrt
@kuhrt.me
Software artisan. Ex @the-guild.dev prisma Dialogue littleBits. Creator Graffle Molt Paka Nexus. In an alternate universe ⊻ Coureur de Bois, Architect, Athlete, Lego Master Builder.

👨‍💻 https://github.com/jasonkuhrt
I do like that @chadtmiller.com building it appears to like @graphql.org, @gleam.run, and hiking (how great is it that there's no @-mention for that :) which is starting to be some sort of overlap with my life, now wondering if he has ADHD, two kids, and a love for type safety as well 😆 👋
November 12, 2025 at 7:08 PM
... succumb to entropy against civility and user experience but I want to be wrong, @bsky.app seems to be progressing ok for example (not paying so much attention but that's kind of the point, I pay no attention to/on X but still readily have negative experiences there), but its still early.
November 12, 2025 at 7:08 PM
... don't necessarily see a fork in the road, but instead potential for both, expressive with _rigid presets_. You can think of a linter for example as a preset for a language. Ideally/But preset construction/sharing/use cannot be an afterthought, must be first class, seamless, near trivial. #api
November 9, 2025 at 5:58 PM
Yeah this strikes me as something that should be possible already via some local lsp server queries. I'm surprised its not done yet, tempting project but I cannot believe no one(s) is actively solving this, intersection of AI tooling and roughly the most popular language in the world.
November 9, 2025 at 5:17 PM
November 9, 2025 at 5:05 PM
October 27, 2025 at 7:44 PM
Finally, If you know of someone(s) this might be relevant for, please share! Thanks!
October 27, 2025 at 7:17 PM
striving to achieve world class developer experiences (DX) and want help I would love to talk! More generally, If you’re building something ambitious with Effect and/or take quality TypeScript seriously (or want to), I would love to talk too.
October 27, 2025 at 7:17 PM
October 27, 2025 at 2:28 AM
It's been a rewarding challenge to push my skills on this project and achieve things that a year ago I would have seen as daunting or impossible. More than once I've felt a previous sense of plateau in skills shatter, for example an increase of flow states I can enjoy with the TS compiler 🌊.
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This documents GQL TS LSP Setup for those using native GQL syntax. Kudos to @kitten.sh et al who made and maintain that! So thanks to that, one gets autocomplete with whichever syntax they use. Meanwhile Graffle string parsing ensures their symmetric type safety to.
LSP Setup | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers a generator feature issue dating 1+ years ago but was realized only days ago. I'm excited for this addition and the DX unlock it gives for cases that need it, aliasing/grouping slicing and dicing the schema interface to fit your needs!
Domains | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers custom scalars which is a cool GQL feature but typically a PITA to actually realize in practice. Graffle goes the extra miles to make it hum. It is such a particular, perennial and cross cutting topic in GQL that I gave it a page its own too.
Custom Scalars | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers variable hoisting which is worth a dedicated page because of the novel concepts used to model GQL document variables in a TS context. As far as I know there's nothing else in the ecosystem as thoughtful with its variable handling as this.
Variable Hoisting | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers actually doing something useful with those built documents! It also shows off the fancy ergonomics of how variables and operation names are fully accounted for in a, again, progressive way (e.g. api simplifies when only one operation etc.)
Sending | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers the value-add that generator brings. Until a few weeks ago the generator was needed for any builder but now we have a schemaless mode that is enhanced by generator! Progressive enhancement is a key DX pillar and I think this hits it.
Generator | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM
graffle.js.org/guides/docum... - This covers the document builder at its base, focusing on its syntax. I use tabs to make it easy to compare to how native GraphQL looks. I'm happy with how well my design has held up to native, often being only mildly more verbose (:true bits are main culprit)
Static | Graffle
Minimalist Progressively Type Safe GraphQL Client For JavaScript.
graffle.js.org
October 25, 2025 at 6:24 PM