June 27, 2020

Pub Quiz Creator - The side project I finally had time for

Pub Quiz Creator is my side project: 53,000 quiz questions and printable answer sheets. How agentic tools cleared a backlog I never had time for.

The problem

Running a pub quiz is mostly admin. The quiz itself takes an evening to think up and about four hours to prepare: finding questions you have not used, checking the answers, deciding how the rounds balance, then laying out a question sheet for yourself and an answer sheet for every team and getting it to print without a round splitting across a page.

The tools for it are worse than the job deserves. Search for free pub quiz questions and you get pages carrying more advertising than content, several of them the sort of thing you would not want a friend clicking on. The good material is buried in the bad.

I wanted somewhere you could get questions and get a printable quiz out the other end, without any of that.

What it does

You write your own questions or take them from a library of just under 53,000, sorted into nineteen categories. You group them into rounds. When the quiz is finished you press a button and get two PDFs: the question sheet for the quizmaster and the team answer sheet, laid out for A4 and paginated so a round does not split.

The question library is open to read without an account, one page per question, so it is useful to someone who only wants a few questions and has no interest in signing up.

It is Ruby on Rails on Postgres, hosted on Railway, with Stripe for payments and a headless browser rendering the printable sheets from ordinary HTML. That last choice is the one I would defend hardest: the sheets are a web page and a stylesheet, so changing how a quiz prints is a change to a template rather than to a document-generation library.

What actually changed

For most of its life this got the attention a side project gets, which is to say the attention left over. I knew roughly what was wrong with it. I had a list. The list did not move, because every item on it was worth less than an evening and there were only so many evenings.

What changed is the cost of the work, not the amount of time I have. Working with agentic tools, the things on that list stopped being evening-sized and started being an hour or less or could run with my direction - and a lot of them turned out to be worth doing.

Some of that is ordinary maintenance I had deferred for years: a test suite where there was not enough coverage, continuous integration, error tracking, deleting the substantial part of the codebase that was no longer necessary. Unglamorous, and exactly the category that never justifies an evening on its own.

The rest was worse than maintenance. Several things had simply stopped working, and nothing had said so. The printable sheets - the feature the product exists for - had failed quietly when the library generating them was abandoned. The analytics had been reporting a visitor number that turned out to be mostly automated traffic. Tens of thousands of pages were invisible to search engines for reasons that had nothing to do with what was on them.

That is the characteristic risk of something you are not watching. Nothing announces itself. There is no alert, no complaint, no drop in a graph you are looking at - the people affected simply leave, and the product goes on looking fine from the outside.

Where it is now

It works, it has users, and it's a labour of love rather than a business, which is fine. It is a hobby, and I would rather have one small thing that is genuinely good than another thing to maintain.

What keeps me interested is that it is the a product I own end to end. There is nobody to hand a decision to. Every choice about the data model, the print layout, the hosting bill and the copy on the homepage is mine, and I see the whole consequence of each one rather than the slice that reaches my team.

It has also become the cheapest place I have to try something before I recommend it anywhere else. A lot of what I have learned about working with agentic tools on a real codebase - where they are genuinely fast, where they confidently produce something wrong, what has to be verified by actually running it - I learned here, on a system where being wrong costs me an evening rather than a programme. So much of my work now is not involving an IDE so it's been a real pleasure to get back into making things again!

What's next

The editor. It is where the actual work happens and it is the least considered part of the application. I have written a specification for it rather than starting to type, which is the habit I most want to keep.

After that, picture rounds - the one thing people ask for that it genuinely cannot do.

And then? I have many ideas - but honestly, it's just genuinely fun to be 'coding' again.