All components in Crank are just functions or generator functions. No classes, hooks, proxies or template languages are needed.
The brand new platform also provides first-class support for promises. Crank.js allows using async/await directly in components, and race components to display fallback UIs.
If you are curious about the idea and the reason why Crank.js was created, you can read the full article on the Crank.js creators blog.
Crank is available on GitHub and NPM in the ESModule and CommonJS formats.