A new Functional UI
programming
paradigm
A programming model for declarative user interface.
Fast
Shpadoinkle 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
Shpadoinkle avoids elaborate passing of messages and payloads. Components are highly composable with Lenses
Reliable
Shpadoinkle UIs are composed of components with no side-effects. Runtime errors are exceedingly rare. Code is easy to test because model updates are pure functions.
Type Safe
Shpadoinkle facilitates type safe UI code. Everything from client server communication with Servant, to compile time checked asset paths, is designed with types in mind.
Hello World
Shpadoinkle components are expressed as functions, no classes, inheritance, or JSX style new syntax. Purity of view logic is guaranteed by the type system.
State is easy
Components are simply functions that accept a state argument to render. Event listeners provide updates to the state. No props management, digest cycle, hooks, dispatch, or other such ceremony.
An Application
Using event handlers, and pure functions we can compose applications without any further abstraction.