Corbin Crutchley
banner
crutchcorn.dev
Corbin Crutchley
@crutchcorn.dev
VP of Software Engineering | @GitHub.com Star | Microsoft MVP | @playfulprogramming.com Partner | @TanStack.com Maintainer | Twitch Streamer (http://twitch.tv/crutchcorn) 💅💅💅
OK so to be faiiiir: Boox has a (problematic) SDK that allows you to integrate with what I assume is the same underlying API.

I'll loop back to why it's problematic in the next posts, but see this video for why it doesn't even fix all of OneNote:
January 2, 2026 at 9:24 AM
....

It's because in Boox's firmware (as of 3.2.2) they hardcode OneNote, WPS, and EverNote to use their inking stuff rather than the built-in stuff

...

Dead end. 😭
January 2, 2026 at 9:07 AM
Giving GameActivity a shot to see if the bottleneck is JNI input throughput
January 2, 2026 at 7:55 AM
Apparently 0.3ms still isn't fast enough...

And I don't think eInk needs 3000fps so maybe time to try a different approach...
January 2, 2026 at 7:35 AM
Bought an eInk Android tablet (Boox) for a friend around Christmas.

While developing an app for it, we came to realize that only first-party drawing apps (using their C library) have acceptable latency.

This is what a stripped down Jetpack Ink API looks like on it:
January 2, 2026 at 5:33 AM
I've been wanting an e-ink tablet to help me focus while doing writing...

But then keep realizing all of the problems that would arise (window management, code editing, et al)

So instead I wrote a shader for my Windows desktop that mimics the style.

Looks shockingly convincing to my eyes
December 13, 2025 at 7:17 AM
🧵 6/6 This information is a huge boon to writing complex operations that need to operate through a loop at inconsistent rates; like a parser or lexer.

Hope you've been able to learn something from this thread!
December 2, 2025 at 8:52 PM
🧵 5/6 And because of that, we're even able to modify the state of `i` even if we do have the `i++`.

The following code is the same as writing `i+=2` instead of `i++`:
December 2, 2025 at 8:52 PM
🧵 4/6 But that's not all, we can even remove the `i++` and do it ourselves in the body of the `for` loop:
December 2, 2025 at 8:52 PM
🧵 3/6 This means that our simple `for` loop above can be written using `while(true)`, like so:
December 2, 2025 at 8:52 PM
🧵 2/6 If we use an IIFE:

(() => 1)()

(This one immediately runs the function and returns `1`)

To `console.log` for each item in the `for` loop parens, we can see that:

`let i = 0` runs once
`i < 3` runs before each iteration
`i++` runs after each iteration
December 2, 2025 at 8:52 PM
🧵 1/6 `for` loops in JavaScript are more complex than you think they are.

Let's start with a basic `for (let i = 0;)`...

Here we can see it counting from 0 - 2.

But everything in the parens for the `for` loop aren't executed all-at-once.
December 2, 2025 at 8:52 PM
I was just on the season 2 finale of @codetv.dev!

It's not out yet, but had an absolute blast with @jason.energy, my code partner @zeu.dev, and the rest of the crew!

Beyond excited for when the episode goes live - I'll share more then!
November 17, 2025 at 11:05 PM
I have never laughed this hard in my life.
October 29, 2025 at 7:01 AM
Most companies have similar business needs for their software, but not all needs are met equally

IE: Error handling. Critical for biz needs. Yet so many companies I've seen absolutely neglect it. Why? Not enough engineers focusing on that discipline

Get good at that stuff and you'll be unstoppable
October 26, 2025 at 3:02 PM
We just passed 500K+ weekly downloads on @tanstack.com Form!

Here's to the next 500K! 🥂
October 22, 2025 at 9:21 AM
Coming soon to a @tanstack.com near you
October 8, 2025 at 2:30 AM
Turns out that the Activity API uses `display: none !important` to hide UI elements.

Super cool API; very excited for it
October 7, 2025 at 6:13 PM
React is being fostered going forward with a new foundation!
October 7, 2025 at 5:12 PM
I'm at React Conf!

If you're there and see me, pop by and say "hi"
October 7, 2025 at 5:10 PM
So about that bundle size...
September 19, 2025 at 1:37 PM
Skeleton loaders are cool!

But after a bit of looking, I couldn't find an implementation in React that had the loading line persist across elements

So I built my own! It's framework agnostic & supports React/Vue

All cuz I got nerd sniped by a mockup from @pratti.bsky.social lol

sync-skeleton.dev
September 18, 2025 at 11:08 PM
Per my article here:

playfulprogramming.com/posts/what-a...

It's a pipeline that all gets rendered on the server, then re-serializes to the client for "use client" to reinitialize interactive bits.
September 14, 2025 at 10:29 AM
that said, vercel's ddos protections are not kicking in...
September 13, 2025 at 8:41 AM
like, someone is trying to hammer our search endpoint? maybe?

and they're going through every page they can scrape from the endpoint?

most of this traffic is coming from "oslo" and is direct traffic...

do they not realize this is a static site?? 😵‍💫
September 13, 2025 at 8:39 AM