Declarative Crank uses the same JSX syntax and diffing algorithm popularized by React, allowing you to write HTML-like code directly in JavaScript.

Just Functions All components in Crank are just functions or generator functions. No classes, hooks, proxies or template languages are needed.

Promise-friendly Crank provides first-class support for promises. You can define components as async functions and race renderings to display fallback UIs.

Lightweight Crank has no dependencies, and its core is a single file. It currently measures at 4.5KB minified and gzipped.

Performant According to benchmarks, Crank beats React in terms of speed and memory usage, and is currently comparable to Preact or Vue.