Shpadoinkle

Shpadoinkle is a new way to program user interfaces with Haskell.

To begin using it, go to Getting Started.

Fast

Shpadoinkle is fast because it does little work. The renderer is modular, so you can always benefit from the latest advances in virtual DOM rendering.

Declarative

Your Shpadoinkle code is high-level. You need not worry about low-level details, causality, or when DOM nodes get replaced.

Composable

With Shpadoinkle, there is no need to associate model update code with DOM locations. This avoids elaborate passing of messages and payloads. Components are highly composable.

Reliable

Shpadoinkle UIs are composed of components with no side-effects. So, runtime errors are exceedingly rare. Code is easy to test because model updates are pure functions.