Ema

/nix/store/grn40lf8f3ggk6phqwn2242kzi684rzp-docs/favicon.svg

Ema is a next-gen library for building jamstack-style static sites in Haskell. Ema sites are change-aware; in addition to good ol’ static site generation, Ema provides a live server supporting fast hot-reload in the browser, on code or data change.

The ultimate purpose of ema is to facilitate creating with ease your own neuron 1 , or just about any app that creates a browser view of arbitrarily changing data (on disk, database, or whatever). In Ema apps, data is edited via traditional mechanisms (e.g., text editor), and its view is rendered as a delightful web page, thus economically providing a read-only view of your data on desktop & mobile. A classic static site is just one type of such kind of apps.

Get started

Footnotes
1.
This ultimate purpose is already realized in regards to neuron; see Emanote, which is built on top of Ema.
Links to this page
  • Dynamic Model

    This concludes the tutorial series, and hopefully, you have gained an introductory understanding of what is entailed behind the “just about any app that creates a browser view of arbitrarily changing data” claim on the index page. You can view the source code for the mood tracker tutorial at https://github.com/srid/MoodTracker-Tutorial.