Fork me on GitHub
Markus Agwin13:05:00

Question: What is the correct way to get started with platypub? Explanation: I did git clone [email protected]:jacobobryant/platypub.git, but then './task dev', is looking for but there is only .


Just copy the contents of to and config.edn.TEMPLATE to config.edn as starting configurations that work with ./task dev

Markus Agwin14:05:34

Thank you, ./task dev starts compiling after renaming the .TEMPLATE files. But I get

Syntax error compiling at (com/platypub/feat/posts.clj:26:16).
Unable to resolve symbol: parse-uuid in this context


Ah right, I ran into that too. parse-uuid is a new function in Clojure 1.11 so I needed to upgrade to the latest version of Clojure.

Markus Agwin15:05:20

After upgrading Clojure, platypub worked. One thing: At first, I pressed "Sign in" without typing in an email, because I found the proposed "<mailto:[email protected]|[email protected]>" a good choice. Naturally enough, the link printed in the console did not work, as the email address sent to the server is actually nil when just pressing "Sign in" without typing an email address. Maybe setting the default email address which is sent to the server to "[email protected]" would make sense. Or extending the instructions to "You actually have to type something in here, doesn't need to be a real address ..."

👍 1
Jacob O'Bryant17:05:32

yeah, I need to update the README for platypub... I think if we set an explicit Clojure dependency in deps.edn then there'll be no need to upgrade it on your system, I think?? to make some of the features work you'll need to add some API keys etc to the config file. like s3 credentials for storing images, and a netlify api key. I think I need to update the template config file. i'll clean that stuff up today/tonight since there's interest :). currently the cms is working and so is deployment to netlify. I'm in the middle of moving the website over to platypub. still need to figure out a few things for themes (how to handle css generation, for example). and then all the newsletter stuff.

👏 1

Have you seen ornament for css (since you are familiar with Girouette) Seems like it’s a fairly fleshed out components-based styling story.

Jacob O'Bryant02:05:28

I looked at it briefly once. I'm not too familiar with it though. I ended up switching back from Girouette to Tailwind. Now Tailwind lets you download a standalone binary instead of bringing in NPM, which was the biggest downside of Tailwind in my experience--and it is nice to be in the mainstream sometimes 🙂. Have you used Ornament?


I have been trying it out, as I’ve been longing for a more fully realized css styling story. It is thoughtfully open-ended. You define a hiccup “styled” component, and in the declaration you can use css style maps, garden syntax, or girouette class-token keywords. And it can take a function for how to handle (or generate) child elements. So it is more than Tailwind styles itself, and you declare styles separately from the final (content) hiccup (it doesnt support using girouette classes downstream in the hiccup chain, though it would probably be trivial to add that). I do not personally fully grasps how to make the proposed composability elegant with regards to child components. But it does seem to have more affordances than most systems.


btw the girouette author has a new system in the works. Not sure if it uses girouette or a new approach.


I think tailwind on it’s own is pretty nice. But I want to avoid operating on strings. And there is something to be said for separating long style declarations out from more semantic content and data usage. The author said he felt a need for the styling to be separate, but not too far away.

Jacob O'Bryant02:05:32

Interesting, I'll have to try it out sometime!