After 10 weekends of development, I’m [positive emotion] to announce a new major release of Biff, the full-stack Clojure web framework that I’ve been using in my small bootstrapped business for the past couple years. This release was supported by sponsorships from JUXT, Clojurists Together, and several other individuals.
For some more background, see the funding announcement from February. In short, there are two big changes:
- ClojureScript and React have been replaced with htmx, greatly simplifying the code for both Biff and applications built with it.
- The new project template has been reworked to support “developing in prod,” an optional deployment method that rsyncs modified files to the server and evaluates them whenever you hit save. You could, if you wanted to, make an entire application without ever starting up a local JVM.
Both changes are based on personal experience. Biff used to have some fancy SPA features inspired by Firebase, but it turned out that server-side rendering was good enough for my needs. With htmx, you can get a lot of the interactivity benefits of SPAs without the added complexity. I also started developing our business’s codebase almost exclusively over a production nREPL connection several months ago and have found the experience to be delightful. Since I’m primarily targeting the solo developer use case, I decided it would make sense to migrate those changes into Biff. (You can of course still use a regular local dev → deploy workflow if you prefer.)
Besides that, Biff has a fancy new website, completely rewritten documentation, and a reorganized and simplified codebase (with complete API docs). Give it a try! And let me know how it goes in the #biff channel on Clojurians Slack.
Biff is genius. So much with so little coding, yet... flexible.
—My main man Patrick, after trying out the new release
I think Biff has the potential to help a lot of people. Until I started working on this release, my work on it had been mostly limited to what I needed myself. The result: big releases every 8 - 12 months, not much in between. However, my two-person business—while still not yet profitable—has gained enough traction that I have some breathing room, and sponsorship makes it easier to justify spending time on Biff. So I’d like to put in the sustained work required to build a community around Biff.
I’ve settled into a nice routine of doing 4 hours of deep work every night after my daughter falls asleep (we’ll see how well it goes after baby #2 arrives later this year...). Friday and Saturday nights are dedicated to Biff. Some ideas for how to spend that time:
- Make some screencasts. e.g. give a demo of the develop-in-prod workflow.
- Write a bunch of “How to do X with Biff” tutorials.
- Create more example applications. Encourage other people to work on them, and give code review and design advice. (I always have a handful of ideas for web apps I wish existed.)
If and when more people start to use Biff, I’ll use my time on whatever their needs are; for now, the goal is to get that process started. If you’d like to get updates on new stuff I publish or release, sign up for the newsletter below. I’m planning to send that out 2-4 times per month.