Hacker News new | ask | show | jobs
by rdmckenzie 4353 days ago
Author here. After maintaining a blog built around a "real" CMS, and a "real" CMS that I built myself, I'll say that my existing blog is built atop Jekyll and Git, the same stack I chose for Grimoire. It's simply the most basic thing that could possibly work, and it doesn't demand that I run a JVM on my inexpensive DigitalOcean instance. For all that I enjoy using Clojure, a "real" Ring server with a "real" database backend simply doesn't add anything to this project beyond complicating it further. As such I don't expect that a database rewrite of Grimoire is on the cards for some time to come.

To "how you build such a site in Clojure" the answer is that the entire Clojure ecosystem shies away from monolithic web frameworks and prepackaged solutions ala rails. Instead, Clojure libraries tend to pick a single feature or some small set of fetures, cover them well, expose a simple API and make composition trivial rather than trying to solve all possible problems.

Dash integration... Dash only makese sense for languages for which the documentation isn't trivially introspected such as Java. Clojure has the clojure.repl library (http://grimoire.arrdem.com/1.6.0/clojure.repl/) which is designed to solve this problem by exposing Clojure documentation to users in their interactive development (REPL) sessions. As I explain at some length in the Grimoire announcement post (http://arrdem.com/2014/07/12/of_mages_and_grimoires/) Grimoire seeks to fill a fumdimentally different niche than Dash. Clojure already has docs, and those docs are already handy for users aware of clojure.repl. Grimoire seeks to solve the problem of documenting the various ins and outs of the standard library which do _not_ appear in the official Clojure docs and which are currently spread out across any number of other low PageRank score community sites.

1 comments

I definitely wasn't trying to say this project would be better served by a "real" CMS, just that I'd like to see how someone would put one together. I've heard the idea of your second paragraph repeated in a bunch of places, and it speaks to me on an intellectual level, but I'd like to read through examples of non-trivial apps to put it in concrete terms.

About dash - presumably users will want your content inside whatever editing environment they have going (I know I do!). I find myself jumping between the built-in Emacs thing for clojure (shows function signatures in the minibuffer, let's you jump to official docs and source in other buffers) and dash for ruby (pretty html rendering, loads all my library docs).