--- page: description: | Build jamstack-style static sites in Haskell, with a live server supporting fast hot-reload in the browser on code or data change. --- # Ema :::{.avatar .w-32 .h-32 .float-right} ![[favicon.svg]] ::: {.text-xl .mb-8} [Ema](https://github.com/srid/ema) is a next-gen [**Haskell**](https://www.srid.ca/haskell) library for building [jamstack-style](https://jamstack.org/) static sites. Ema sites are *change-aware*; in addition to good ol' static site generation, Ema provides a [[live-server|live server]] supporting **fast hot-reload** in the browser, on code *or* data change. {.text-gray-600} The ultimate purpose of ema is to facilitate creating with ease your own [neuron](https://neuron.zettel.page/),[^emanote] or just about any app that creates a *browser view of arbitrarily changing data* (on disk, database, or whatever). Ema is designed to facilitate creation of apps whose data is normally *edited* via traditional mechanisms (eg: text editor) but *rendered* as a delightful web page - so as to provide an economical read-only view of your data on desktop & mobile. A classic static site is just one type of such [*kind*]{title="See what we did there?"} of apps. :::{.my-8} * [[start]] * [[guide]] * [[topics]] * [Ema News](https://srid.ca/ema) ::: :::{.flex .justify-center .items-center .mb-8} ::: [^emanote]: This ultimate purpose is already realized in regards to neuron; see [Emanote](https://emanote.srid.ca/), which is built on top of Ema.