Markus is a software architect at Active Group GmbH in Tübingen, Germany. Active Group builds software for clients exclusively with functional technologies. Markus has tried to liberate programming from the von Neumann bottleneck since 1991. Markus is interested in a diverse set of technologies ranging from GUI design to concurrency and formal methods.
Building websites seems straightforward. You pick a static site generator and start writing content. However, these websites quickly grow into full-blown software projects. Suddenly, your SSG – its rigid template system, scattered configuration and ad-hoc Markdown – is holding you back for its lack of proper abstraction mechanisms.
In this talk, we start fresh. Our design approach is driven by one simple insight: Static websites are just functions mapping URLs to HTML. This marks the beginning of our journey in developing our own SSG. In the end we arrive at a bespoke domain-specific language in OCaml.
While this exploration may sound theoretical – or even playful – it has substantial practical implications. By treating our website as a function, we can embrace robust engineering practices: clearly separating domain logic from presentation, following the single-responsibility principle, reducing coupling, and ensuring cohesion.