Introducing Crank.py

By Brian Kim – October 6, 2025

A deep dive into Crank.py, the Python adapter for Crank.js that makes Python functions components for frontend development.

Why Be Reactive?

By Brian Kim – August 20, 2025

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.

Writing Crank from Scratch

By Brian Kim – October 13, 2020

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.

Introducing Crank

By Brian Kim – April 15, 2020

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.