This project is active.
This project is active. Look out for new exercises!
shadow-static was the first thing I built with Clojure. It is a simple, single-page app that generates a minimal blog from markdown files. I built it with Reagent, "a minimalistic ClojureScript interface to React.js". I used shadow-cljs for ClojureScript compilation and seamless npm integration. Finally, I used Tailwind CSS, a CSS utility framework to declaratively style the blog.
My biggest takeaway was learning about Clojure macros and understanding how they work in order solve the problem of parsing markdown files to use to render HTML in ClojureScript.
Publish markdown posts as HTML
Index page to list all posts
Individual post pages
Filter posts by tag
The primary purpose of this project was to learn Clojure by building something practical. It is also an MVP blog that can be customized and improved upon as Luca Cambiaghi has done with https://luca.cambiaghi.me. He also wrote a blog post about it. I do not use shadow-static for my personal blog because I write my notes in Org-mode. Read about in How I built this site if interested.