Isomorphic web apps in Haskell


Using Miso and Servant, we can easily write isomorphic web applications in Haskell. I presented these tools last week at a meet-up (LilleFP). Here are the slides and the repository.


That’s a nice presentation!

I realize you didn’t invent this term, so don’t take this as a criticism on your talk, but I feel like isomorphic is a horrible term to use for “it’s written in the same language / it shares code”. If we do need to use a fancy word for this, I feel like homogeneous web apps would be much better.


Thank you.
I agree with you about the term isomorphic. Some use rather universal, e.g. universal javascript.


well said, I always thought it was my problem not understanding that term well…


I don’t feel necessarily the same about your critique to the isomorphic term.

I’m curious to know the reasons.

It means same shape, and it can easily convey the fact that you write the same code both for backend and frontend… I don’t see anything terrible with that.

Universal is more confusing to me, as it might convey really a lot of disparate meanings to the term.


Very nice slides! Thanks for sharing these :slight_smile:

Was curious, how did you develop with ghcjs? Did you end up using nix, or stack or smth else?


I usually use Nix. Setting up a Ghc+Ghcjs project is not trivial but quite doable. In this project, I developed in a nix-shell only but the miso-xhr project (mentioned at the end of the slides) has nix-shell, nix-build and a CI/CD pipeline (using gitlab, heroku and docker images).


At the stage, GHCJS compiled to js of huge size, compared to elm. Anyone built actually app of more pages for production? What is the compiled js size? and final size by minify and gzip?