
Why I Started Graham & Tonic
I started my home bar with a handful of bottles and a couple of recipe books. Skimming through the recipe books was interesting but frustrating — the possibilities seemed endless for someone used to drinking beer and the occasional Old Fashioned, but the chances of me being able to make my latest find from my sparse collection of bottles were slim. I started to make a list of the recipes I’d like to make in the future and the bottles I needed to buy to make them.
That was a small step forward, but the number of combinations from even my small collection of recipe books was still too complicated, so I started building a database to combine those lists. That helped me work out which new bottles would allow me to make the most recipes and make the best use of my booze budget. But traipsing upstairs to log on to my computer and open up an application I mostly used for work took some of the fun and a lot of the class away from making cocktails — what I needed was a website I could access from my iPhone.
One small problem: I’d never written any code, let alone a website. I started an online course on Codecademy and began putting the initial version together in PHP. Getting that initial version working on my home computer seemed pretty complicated at the time; I had no idea that I’d need to learn about a new operating system, cloud hosting, and CSS just to be able to browse my recipe list on my phone from the sofa downstairs. Eventually, with the addition of Bootstrap and a year’s worth of free AWS credits, I got the mobile-friendly app I’d dreamed of running on grahamandtonic.com.
That was back in 2015. Since then the site has continued to evolve though it’s definitely been much more of an overcomplicated hobby project than something that’s gained wider traction. Some features have come and gone. Originally I hoped to integrate it with Instagram but keeping up with Facebook’s terms of service is a full-time job requiring a PhD in obfuscation, at least built up a decent collection of cocktail pictures on my Insta profile that I could add to the site. I added search functionality to allow filtering by ratings and ingredients and started to build up a better picture of the types of recipes I had by adding tags.
Though it turns out that most of the effort needed to build and maintain a website goes into things no one else can see: creating a test pyramid, modernising and automating the infrastructure and keeping up to date with libraries and packages. Experimenting with new services like a graph database and search increased the sophistication of the site but also added even more complexity and increased the maintenance burden.
With a fully stocked cabinet of around 80 bottles I’ve got hundreds of recipes I can easily find, and occasionally other people come across those recipes on Google. I’d like to encourage visitors to spend longer on the site and use it to discover other recipes they’d like to try. Whilst I’m sceptical, to say the least, about the benefits of AI, perhaps it gives me the chance to build the site out to the version in my imagination as a solo project. That’s what I’m working on today.