Servant is a library for writing routing tables on the type level. It is commonly used for micro-services and for delivering json data to single-page apps, but it is possible to use it for delivering web pages and forms, and build a low- or no-js web application with it. Aula [0, 1] is such a web application. It is based on servant for request processing, lucid (a sibling package of blaze) for html content rendering, and digestive-functors for web form processing. Sticking these parts together proved both non-trivial and very rewarding. Benefits are clear separation between application logic, html rendering, form data validation, and tedious details like authentication or CSRF token handling. Aula is AGPL. We plan to release parts of the code as general-purpose libraries. In this talk, you will explore pieces of code and see how this feels to the application developer.
YOU MAY ALSO LIKE:
Building web application with servant, lucid, and digestive-functors
Haskell enthusiast and developer nowadays, interested in theoretical computer science, has industrial experience with OO and QA engineering. Andor is working on the Aula team since the project start in Feb 2016.
Matthias is a software developer and consultant. Exclusive focus on Haskell since 2015.