Blog
Thoughts on UI frameworks, JavaScript, and building for the web
Introducing Crank.py
A deep dive into Crank.py, the Python adapter for Crank.js that makes Python functions components for frontend development.
By Brian Kim
Why Be Reactive?
Reactive frameworks promise automatic UI updates but create subtle bugs and performance traps. Crank’s explicit refresh() calls aren’t a limitation — they’re a superpower for building ambitious web applications. This essay examines common gotchas of reactive abstractions and provides a philosophical grounding for why Crank will never have a reactive abstraction.
By Brian Kim
Writing Crank from Scratch
A step-by-step guide to building Crank.js from the ground up, demonstrating how virtual DOM libraries work and showcasing advanced techniques with iterators and promises.
By Brian Kim
Introducing Crank
A deep dive into why Crank.js was created, exploring the limitations of React’s Suspense API and the philosophy behind using generators and async functions for components.
By Brian Kim