Writing an Ema app is an act in three parts:
- Define your site routes as Haskell ADTs:
-
Define your site data model as a Haskell record:
- Model type and Dynamic
-
Connect it all using
EmaSite
- Optionally, compose multiple apps