Hacker News new | ask | show | jobs
by jacobobryant 391 days ago
Hey HN. Since this has showed up here maybe a status update would be interesting? This continues to be my main side project--amusingly it's had more traction than any of the startups I tried to build with it. Over the past year I've been working on some experimental features for Biff that are meant to help with medium-to-large codebases[1] (I've been doing this as I rewrite one of my Biff apps from scratch). There haven't been many code releases in that time, so I've got a decently sized backlog of things I'd really like to get to. E.g. XTDB v2 is almost out of beta; once I finish the app rewrite, that's next on my list.

[1] https://biffweb.com/p/structuring-large-codebases/

2 comments

I've played around with Biff. It's an amazing project and a great way to get started with web-development in Clojure. Clojure can be kinda confusing because of the community defaults to orthogonal libraries. Biff, makes it easy to see which libraries are useful to connect up.

Thanks for the great work!

Glad to hear it!
Thank you for doing this. I am just checking out the Biff framework.

One part I would change is the dependence on htmx for html generation. I would really prefer an external template file into which we can replace fields

I might have misunderstood your comment but I don't think that's what htmx does, it just adds reactivity without needing to write JS, the HTML is represented in the project using Hiccup syntax which is essentially HTML in Clojure data structures - makes sense when code is data is a big part of the Lisp idea. It is an external template file into which you can replace fields, it's just a Clojure file too.
My mistake. I mean Hiccup (not Htmx). I prefer the approach of using external template files.
AFAIK, all libraries are loosely coupled in Biff. Swapping out Hiccup / Rum for one of the other HTML templating options should be in "userspace"; straightforwardly so, without the framework maintainers intervention.

Ref:

Biff's own documentation: https://biffweb.com/docs/reference/architecture/#modifying-t...

HTML templating options: https://ericnormand.me/mini-guide/clojure-html-templates