Sign in

John Resig

@johnresig.com
9.1K followers 1.9K following 49 posts

Creator of jQuery, Chief Software Architect at Khan Academy, Japanese print nerd. johnresig.com ukiyo-e.org (bot: @ukiyo-e.org)

PostsRepliesMedia
John Resig @johnresig.com · 04/04/2026
Saw a writhing ribbon snake mating ball today - very active with the warm weather! (Don’t watch if you have a snake phobia… it was a lot in person, 😝 🐍)
1171
John Resig @johnresig.com · 12/03/2026
I have a private db of Japanese print sales and I used Claude Code to make a report analyzing this month's auctions: data.ukiyo-e.org/auctions/asi... identifying under-valued lots, rare prints, comparing prints across auctions. Normally VERY hard to get this guidance.
The top Japanese print auction listings for the upcoming auction season happening in March 2026. 3 great wave prints are featured.
0102
John Resig @johnresig.com · 25/10/2025
Tanstack Server functions have both middleware and input validation. I have no need for a public API at the moment, but that might change. For now they meet my needs very well!
050
John Resig @johnresig.com · 25/10/2025
I've been using @tanstack.com Start for a new project and it's super good. The server functions completely replace the need for TRPC/GraphQL/REST, the middleware is composable and fully typed, and having TSRouter's nice typing and stateful search params is icing on the cake. A+!
3856
John Resig @johnresig.com · 14/09/2025
In an era where folks are using AI to remove creative and artistic expression it feels especially poignant to see these very handmade art pieces depicting technology. I hope we can continue to pass down our creative pursuits to future generations, like Marilou is doing.
0200
John Resig @johnresig.com · 14/09/2025
Got to see two dream art pieces yesterday: weavings depicting computer chips by the Navajo weaver Marilou Schultz. They were on display at MoMA and were incredible to see in person. So intricate and detailed, but also handmade and steeped in tradition. More info: www.moma.org/magazine/art...
John Resig standing in front of a woven wall hanging depicting the internals of a computer chip. John Resig standing in front of a woven wall hanging depicting the internals of a computer chip.
2463
Reposted by John Resig
The Interactive Fiction Competition @ifcomp.org · 01/09/2025
🎉 The 31st Annual #IFComp is live! 85 new interactive fiction entries are ready for you to play and judge. (You only need to rate 5 to cast a ballot!) Read more about this year's competition at blog.ifcomp.org Or just dive straight in: ifcomp.org/ballot
The IFComp 2025 logo is an ornate gold-framed mirror with silhouetted profile, stylized text ‘IFComp,’ crown, stars, moons, and a banner reading 2025.
03940
John Resig @johnresig.com · 08/08/2025
Shoutout to the PeakFinder app for identifying which mountains/hills you are seeing!
160
John Resig @johnresig.com · 24/07/2025
I stepped down from management last year to focus on architecture at @khanacademy.org full-time; big impact on my dev velocity! * Architecture decision records I authored: 14 (🆙 250%) * Decision Records I personally approved: 70 (🆙 94%) * PRs reviewed: 1,276 (🆙 20%) * PRs authored: 546 (🆙 333%!)
1310
John Resig @johnresig.com · 18/02/2025
Oh, to clarify - the issue with plugins is with Biome, not Nx!
130
John Resig @johnresig.com · 15/02/2025
Yeah, that's a good callout, that's something that doesn't appear to be working right. I do have the default extensions cache rule turned on, but it does seem like it's not caching it. Having to have a proxy worker seems... not ideal. I'll reach out to the CF folks.
110
John Resig @johnresig.com · 15/02/2025
It really is! So good :)
010
John Resig @johnresig.com · 15/02/2025
So this is all server-side render time, so wall time is the total time it took to process the request and return it to the user. Whereas CPU time is the time actually spent rendering. Sub-requests are fetch()es to other resources from the worker (usually image upload handling).
110
John Resig @johnresig.com · 14/02/2025
Ah yeah, I should just remove it, it's a janky old wordpress thing that I haven't updated in over a decade, lol.
000
John Resig @johnresig.com · 14/02/2025
Awesome! Really glad you're enjoying it!
010
John Resig @johnresig.com · 14/02/2025
It's certainly something I considered, for sure! Thankfully R2 is S3-API-compatible, D1 is just sqlite, and the thin wrapper around React Router is easy to replace with something else. I'm finding it to be much better than rolling my own (which I was doing before).
010
John Resig @johnresig.com · 14/02/2025
TypeScript!
021
John Resig @johnresig.com · 14/02/2025
So I made a lot of architectural changes. Previously it was on Digital Ocean with some ancient Node template thing, now it's full React SSR. Hosting was $5/month, but slower, and not SSR - image hosting was $$$, easily over $100/month. My hosting costs would've been higher if I was doing SSR, too.
120
John Resig @johnresig.com · 14/02/2025
I ported ukiyo-e.org over to @cloudflare.social Workers + R1 (image hosting, about 1TB) + D2 (for DB and search) recently and I'm super happy with it, it's a great experience! Have it using React Router v7 + React 19, about 11 mil dynamic requests/month, served in under 35ms! Total cost ~$25/month.
Cloudflare panel showing the 24 hour performance of the worker. 440k requests, 11ms CPU time, 35ms wall time, no errors.
1711813
John Resig @johnresig.com · 29/01/2025
We do a ton of it at @khanacademy.org, for all components and in different states. Super helpful in catching regressions. We use Chromatic on top of @storybook.js.org.
0112
John Resig @johnresig.com · 19/01/2025
React, React Router (v5 currently), GraphQL w/ Apollo, custom design system, ESLint, Prettier, TS, Jest. In the process of moving to a monorepo setup, probably using @nx.dev. Will likely move to vitest and Vite for prod builds post-Rolldown. Want to use Biome but blocked on some missing plugins.
290
John Resig @johnresig.com · 17/01/2025
We just moved @khanacademy.org over to using @rspack.dev today for our prod builds, from Webpack 5. We saw build times improve by about 2min or so (approx. 3min -> 1min). It was extremely easy to move to from Webpack, highly recommended for anyone on the fence!
3569
John Resig @johnresig.com · 19/12/2024
Haha, awesome! I've still got mine on display (appropriately) in my bathroom!
020
John Resig @johnresig.com · 14/12/2024
I wonder if it might be because maps are generally stored in libraries, not museums? For example: library.stanford.edu/libraries/da... (not making it right, I’d love a map museum!)
library.stanford.edu
David Rumsey Map Center | Stanford Libraries
About us We are the premiere historical cartographic collection on the West Coast and hold one of the world’s great collections available for public research and global digital access.
110
John Resig @johnresig.com · 13/12/2024
I'd do the B/W. It looks like the keyblock on the color one has been pretty much obliterated with a lot of the fine detail lost, unfortunately. I'm guessing it's a later meiji period printing, based on the pigment colors, but with the original (beaten up) blocks?
010
John Resig @johnresig.com · 13/12/2024
So cool! You can see the impact of this pigment being imported into Japan on kimonos (and in prints). Before (1847): ukiyo-e.org/image/mfa/sc... After (1878): ukiyo-e.org/image/arteli...
030
John Resig @johnresig.com · 12/12/2024
Great to see you, too!
020
John Resig @johnresig.com · 11/12/2024
We are now 100% using Lingui for translation at Khan Academy! Wrote some gnarly codemods to completely convert our codebase and then set up a nightly job to convert `master` and fix bugs as they came up. Made it possible to do the conversion in one morning with no errors!
070
John Resig @johnresig.com · 10/12/2024
Haha yeah, I just fixed it - it was firing every minute!!! Messed up the cronjob syntax, lol. Thanks for the heads-up.
110
John Resig @johnresig.com · 09/12/2024
Some of Khan Academy's AI work was featured last night on 60 Minutes with Anderson Cooper: www.youtube.com/watch?v=Ia3C... it's been really cool getting to work on this, really glad that this is having a positive impact on students and teachers!
youtube.com
Meet Khanmigo: The student tutor AI being tested in school districts | 60 Minutes
YouTube video by 60 Minutes
1283
John Resig @johnresig.com · 07/12/2024
Mask buddies!! It’s good for so many reasons… jealous of your pottery class, that sounds like so much fun! Definitely share what you make, would love to see it!
110
John Resig @johnresig.com · 05/12/2024
This is actually really great news! We were finding memory usage to be pretty comparable between Webpack and Rspack (even though Rspack is orders-of-magnitude faster) so this would be an even greater win!
0150
John Resig @johnresig.com · 04/12/2024
This Spotify Wrapped tracks. Justice’s Coachella sets were so good that it reinvigorated my love for them. A ripped copy here: m.soundcloud.com/user-6372306... I think this year may be the first year where the majority of my music listening happens outside of Spotify (esp YouTube concerts)
Spotify Wrapped, top 0.1% of all listeners for One Night/All Night by JusticeSpotify Wrapped, top artists including Justice, Bo Hansson, Depeche Mode
050
John Resig @johnresig.com · 04/12/2024
If you've already adopted the v3 future flags then it's not hard at all, I ran the code mod here: reactrouter.com/upgrading/re... most of the challenging bits after were Cloudflare Worker-related, which is pretty specialized.
reactrouter.com
Upgrading from Remix
120
John Resig @johnresig.com · 04/12/2024
It's great work - thanks so much for tackling it! Can't wait to see what you come up with next!
050
John Resig @johnresig.com · 04/12/2024
Finished upgrading to Lingui v5 today. Was pretty straight-forward! Some good bug fixes, which were appreciated. We're still just using the basic React macros, not using the useLingui macro yet - but that works fine for us. Still the best React i18n framework, IMO.
190
John Resig @johnresig.com · 03/12/2024
Hey yeah - feels good to be here! 👋
000
John Resig @johnresig.com · 03/12/2024
The automatic type instrumentation didn't happen automatically with the codemod, but the types were generated by Vite, so it was just a matter of manually importing the types and adding them to my function exports. Pretty straightforward!
110
John Resig @johnresig.com · 03/12/2024
I was already using all the v3 future flags so running the codemod mentioned in: reactrouter.com/upgrading/re... got me really close. I had a couple other issues that were Cloudflare worker-specific, but I was able to address those pretty easily.
reactrouter.com
Upgrading from Remix
110
John Resig @johnresig.com · 03/12/2024
That's awesome - can't wait! Loving Cloudflare workers, very fun dev experience.
041
John Resig @johnresig.com · 03/12/2024
Playwright's new Aria Snapshot comparison tool is super cool: playwright.dev/docs/aria-sn... surprisingly, I've seen no other library capable of this. Looking at their implementation it looks like they wrote it from scratch! github.com/microsoft/pl... It'd be very cool to see this OSS'd separately!
playwright.dev
Aria snapshots | Playwright
Overview
2212
John Resig @johnresig.com · 03/12/2024
Ohh! Ok, I've been using Smart Placement, but I guess I hadn't clocked that it could (potentially) work at the route-level. That's super cool, thank you!
110
John Resig @johnresig.com · 03/12/2024
This is a great write-up. Tons of very smart, actionable, advice on improving React INP performance. (The jQuery-is-better bait is pretty hilarious, probably says more about the complexity of most jQuery sites.)
1172
John Resig @johnresig.com · 03/12/2024
This is really cool! Maybe this is my ignorance, but how does CF "learn" that a particular route has a specific data requirement? I understand how it could at the level of the entire worker (seeing that a specific D1 db is needed, for example) but I don't see any hints for the routes? Curious.
110
John Resig @johnresig.com · 03/12/2024
I switched a Remix-using side project over to React Router v7 this past weekend and the new route-level type safety is pretty great! reactrouter.com/explanation/... been looking forward to this for a long time, code is a lot less clunky now being able to remove useParams/useLoaderData/etc.
reactrouter.com
Route Module Type Safety
2706
John Resig @johnresig.com · 03/12/2024
v5 of Lingui was just released. We've been working to adopt Lingui at Khan Academy and it's by-far the best i18n library around. The use of macros, SWC integrations, deep React integrations, and idiomatic POT/PO file support makes it a huge win. lingui.dev/blog/2024/11...
lingui.dev
Announcing Lingui 5.0 | Lingui
Today we are pleased to announce the release of Lingui 5.0!
2515
John Resig @johnresig.com · 22/11/2024
No way!! That’s awesome. Glad I was able to find you here 😊
020
John Resig @johnresig.com · 21/11/2024
geez... that's a deep cut 😭
100
John Resig @johnresig.com · 19/11/2024
Hey Mark! It's exciting to see so many tech folks I follow have migrated over - makes this platform so much more engaging 😄
1250
John Resig @johnresig.com · 18/11/2024
My account was like that for a long time, but the bit flipped when Elon took over, unfortunately. The ads were super garbage too, which made the experience even worse, shockingly.
020