Clojurians-log is looking for help

First things first, the clojurians-log is back online, and in better shape than ever. This project was started in 2015, I took it over in 2016, and we converted it to a Clojure app in late 2017.

The reason it was down was entirely my fault, I accidentally deleted the instance it was running on. Getting it up and running again turned out to be more work than I had an appetite for at that time, and this made me realize that instead I should focus on increasing the bus factor and removing myself as the bottleneck.

@lispyclouds and @dorab stepped up, they took my original mess of Ansible scripts and made them much more solid and reliable, and used Terraform to manage the server and to make sure we can quickly spin up e.g. a staging server. Exoscale stepped in and decided to be our hosting sponsor. You can find their work in the nebula repo.

Now that we’re back we’d really like to give the app itself some love again. I already addressed the most urgent issues: make sure the setup instructions work, fix the broken build, and bring the page load time down to something reasonable (50ms vs 2 or more seconds). But there are a bunch of things that could be made better, for instance Google is penalizing us because we lack canonical url’s and have a bad mobile experience.

I made a bunch of issues in the repo, some of them marked as good starter issues.

As an experiment I also decided to largely adopt the Collective Code Construction Contract (C4). This originated in the ZeroMQ community, the late Pieter Hintjens has done some interesting talks and written more in-depth about the philosophy behind this “contract”.

Maybe a separate thread about C4 would be interesting, but in short

  • everyone has a right to contribute
  • a distinction is made between contributors, maintainers, and administrators
  • pull requests are merged quickly
  • no code review on pull requests, instead review out of bound and make a new pull request

@rgm has agreed to be a second maintainer besides myself, so I don’t have to merge my own patches. The idea is the make the process lightweight, fun and encouraging.

I know there was a thread on r/clojure recently about what people have done for the community, here’s a very straightforward and concrete way to give something back. Ryan and I are looking forward to mashing that merge button!

Thanks!

6 Likes

Thank you (everyone!) for all the work you’ve done to get this up and running!

Exoscale are also responsible for a very interesting EDN query library on top of clojure.java.jdbc: https://github.com/exoscale/seql (I’m hoping to get them migrated to next.jdbc soon :slight_smile: ).