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