My Lisp Web Development Experience

I decided to update my website this month, but this time I wanted to write it in pure lisp instead of using plain org->html exports.


I started out with Hunchentoot and this tutorial. It was incredibly easy to use, and I've retained some of the macros used in it for the generation of this website too!

The problem really was with what followed; I was unable to figure out how to get my hunchentoot server running on Heroku. There are various buildpacks available, however none of them are plug-and-play, and I ended up giving up a few hours later.


Racket has a well-documented batteries-included web framework, however the language itself felt too foreign and I was unable to make the best use of it since I have very little experience with both Racket and Scheme. I decided to try Clojure next.


I tried out Clojure, ClojureScript and Luminus. I ran into various bugs in lein and found some quirks of Clojure frustrating or not aesthetic. My main issues were with installing packages and packaging stuff. Two barely functional web apps later, I didn't feel like continuing.

After thinking for a bit, I realized that what I really wanted to make was a static website with some Javascript code.

Parenscript and CL-WHO

I copied over the resources and main script from my Hunchentoot project, and hacked away the server bits. After a bit of patchwork, I was able to create static .htm files that worked as I expected.

I hosted the files on github and deployed my site with the help of github pages. It was a painless process, and connecting it to my domain was pretty easy too!

Org parser

Just for fun, I decided to make a tiny minimal org file parser, which converts a tiny fraction of org syntax into CL-WHO expressions. This blog entry has been written with its help! Check the definition of read-blog in this file for more details.