Packages

Shpadoinkle is segregated into several packages that compose together or can be used separately.

Core and a Backend are all that is needed to run a application.
Core (Gitlab, Hackage, Haddock)

This stores the core types and logic for Shpadoinkle.

Snabbdom Backend (Gitlab, Hackage, Haddock)

Binding to the high performance Snabbdom.js Virtual DOM library written in JavaScript.

Static Backend (Gitlab, Hackage, Haddock)

Takes Shpadoinkle Html and renders it as a static HTML string.

ParDiff Backend (Gitlab, Hackage, Haddock)

Canonical Virtual DOM written in Haskell, and based on Alignable Functors.

Console (Gitlab, Hackage, Haddock)

Support for the native JavaScript browser console.

Developer Tools (Gitlab)

Chrome extension to support Shpadoinkle debugging.

Disembodied (Gitlab, Haddock)

Static site generation for Shpadoinkle views.

Lens (Gitlab, Hackage, Haddock)

Lens combinators for ergonomic composing of heterogeneous components, and after-the-fact modification of views.

Html (Gitlab, Hackage, Haddock)

A template-generated DSL defining HTML tags, Properties, and Events. It includes some related Utilities like keyboard support.

Router (Gitlab, Hackage, Haddock)

Single Page Application (SPA) router based on Servant.

Widgets (Gitlab, Hackage, Haddock)

Logical types and structures for common UI components, along with batteries-included implementations.

Examples (Gitlab)

Small applications of Shpadoinkle to illustrate programming patterns.

Isreal (Gitlab, Haddock)

Microservice to support playgrounds (Snowman as a service)