Build notesAI & side projects
Pint Tracker, built to run without me.
A weekend test that made the papers, then died because every price needed me. Why I built Pint Tracker, how I rebuilt it to run itself, the sun and shade map, and what I’d do differently.

Pint Tracker What a pint of Guinness costs, across Ireland.
Pint Tracker tracks what people pay for a pint of Guinness across Ireland. I've built it twice. The first time, over a weekend in 2024, I wanted to find out whether I could ship software at all. The second time, this March, I wanted to see if I could make it run without me.
This is how both went, what broke, and what I'd do differently.
Why I built it
In the summer of 2024, my co-founder and I were trying to get Foresight off the ground. We were on Founder Labs, the accelerator at Ormeau Labs in Belfast. We were talking to customers and prototyping in Figma and HTML, and we'd tried a contract developer, but we still couldn't turn what customers told us into a working product.
Cursor and GPT-4o made us ask whether we could build it ourselves. Before betting Foresight on that, I gave myself a weekend to try it on something silly: take an idea from nothing to something live by Sunday night or Monday morning.
The idea was a website where people could say what they'd paid for a pint of Guinness in Belfast. It was much simpler than Foresight, but it needed the same pieces: a front end, a back end, a way to take submissions, and a real site on a real domain.
The weekend version
The first version was one page: a list of Belfast bars and their prices, with buttons for the cheapest and the priciest, and a search box. The prices lived in an Airtable base. Submissions came in through a form that emailed me, and I typed each one into Airtable by hand.
Dublin followed. At the end of August I moved it to Vercel, and in October I rebuilt it on Next.js and Supabase, with an admin page so I could approve prices faster. Faster, but it was still me approving every price, one at a time.
I didn't put my name to it. I didn't want to become known as the Pint Tracker guy.
The papers found it
Within a few weeks, The Irish News was using its averages to compare the two cities: £5.65 for a pint in Belfast, against €5.62 in Dublin. The same day, it asked people on the street in Belfast what they made of the price of a pint. A month later, the Belfast Telegraph reported that the dearest Guinness on the site cost £7.
The test had worked. Shipping it gave us the confidence to go ahead with Foresight. But people were now sending in prices, and every one of them needed me.
Why I let it die
Every submission was manual. I'd read it, check it, find the bar and type in the price. Foresight needed all my attention, so I let it slide, and in 2025 the site went dark. It had been useful enough that The Irish News was quoting its Belfast figures in February that year.
Looking back, the question I didn't ask that first weekend was the one that mattered: how much work would every new submission create for me?
Starting again
This year, Ulster University asked me to talk to design students about building with AI. It gave me an excuse to go back to Pint Tracker and ask what I could build now. I set myself three goals. The first was the brief:
As automated as possible. It could not take focus away from the main thing I was building. If it needed constant babysitting, it failed the brief.
The others were to see how fast I could build and react to what people said, and to make it more than a remake.
I started from scratch on Saturday 7 March in Cursor, mostly with Claude Opus and Cursor's own Composer model. From 12 March I moved to Codex, with GPT-5.4. The core of the new site took four days. I kept going for another fortnight, up to the talk on 26 March.
The stack:
- Next.js on Vercel;
- Convex for the database and sign-in;
- Mapbox for the maps;
- Twilio for WhatsApp;
- OpenAI to read receipts;
- Resend for emails;
- a Telegram bot for me.
The data came first. I imported every pub and bar on the island from OpenStreetMap, filled the gaps from Google Places, and brought in about 120 older prices from the 2021–22 NI Pint Census. The site went from Belfast and Dublin to every county in Ireland: about 11,000 pubs and 1,800 towns, each with its own page.

How it runs itself
Most of my prompts that fortnight came back to one brief. The site had to run without any effort from me, but never by letting the data slip: it had to stay accurate, and every pub had to appear exactly once.
Here's what that turned into:
- Members' prices go live straight away. When you're signed in, a price you add goes straight onto the site. I get a note in Telegram, but I don't have to do anything.
- Everything else comes to my phone. These all land in a Telegram channel, with buttons to approve, approve and feature on the homepage, reject, or merge:
- prices from people who aren't signed in;
- prices sent by WhatsApp;
- bar photos;
- suggested bars;
- claims from owners;
- disputed prices;
- likely duplicates.
- Adding a price takes seconds. Guinness is the default. You can send a price on WhatsApp, photograph a receipt for OpenAI to read, or upload a menu.
- There are reasons to come back. Check-ins, a mayor for every bar and town, reviews and ratings of the pint itself, lists, and a pub crawl creator. The mayors were there to bring in more prices.
So it isn't no work. My part is a few taps on my phone, and most of it is approving photos, and people now send me pictures of themselves in beer gardens on Tuesday afternoons.

What broke
A lot broke, and quickly:
- Coverage. Four days in, about 2% of pubs had a price. I thought about filling the gaps with estimates, then decided against it: if most of the prices are wrong, nobody will trust the right ones. I made it easier to send in a price instead.
- Outages. Sign-up broke on the live site on 8 March, and the site went down the next day. On 10 March, a query covering the whole country hit the database's limit on records per read, and it broke again.
- The bill. Most of the first database bill was data transfer: 32 GB in four days. A small price widget on the homepage was subscribed to a query covering the whole country.
- Dublin, on St Patrick's Day. A stray town called Dublin, in County Monaghan, had taken the address
/dublin, so the real Dublin ended up atdublin-dublin. It took seven commits to fix properly. - Location data. An audit on 16 March checked all 1,729 towns against the official county boundaries, and 388 didn't match. Some pubs were in the wrong place, and some appeared three times under slightly different names.
- An agent that made things up. I asked one to research and score pubs. It invented answers and gave them cautious scores. It also cost about $40 before I noticed it had run against the test database, not the live one. I replaced it with a smaller model that had to cite its sources.
Sun and shade
On 19 March, I read about a London app that tells you which beer gardens are in the sun. I wanted that for Belfast.
The method is simple to describe:
- suncalc gives the sun's position for any place and time.
- OpenStreetMap has the outlines of most buildings and the heights of many. Where it only has the number of floors, I assume 3.4 metres a floor.
- For each pub with a beer garden, the code finds a point in the outdoor space and draws a line from it towards the sun.
- It checks every building that line crosses. If one is tall enough to block it, the garden is in shade.
- It does this every 15 minutes through the day, and marks each garden sunny, partly sunny or shaded.
The part I'm happiest with is what it won't do. If it can't place the outdoor space with confidence, or a building in the way has no height, it hides the pub rather than guess. In the six cities it covers, Dublin, Belfast, Cork, Galway, Limerick and Derry, it found 529 pubs with a beer garden. It publishes 428 and hides the other 101.
It doesn't know about clouds. It tells you where the sun would be if it came out, which in Belfast is the bigger question.
Still, people loved it when it launched, and the feedback was brilliant.

In the papers again
This time I put my name to it. Belfast Insider wrote about the relaunch on 16 March. On 19 March I was on Cork's 96FM, asking for more people in Cork to rate their pubs. I was on Galway radio too. In April, The Irish News covered the relaunch and filmed an interview with me and a badly poured pint. I decided to lean into the cringe.
The numbers
- About 11,000 pubs in all 32 counties, and over 1,800 towns.
- 428 beer gardens with a sun reading, in six cities.
- £3.70 and £8.00: the cheapest and dearest Guinness on the site.
- About 400,000 impressions a month in Google search. I haven't shipped a meaningful update since March.
- 122 of the 260 commits in the rebuild are called "bunch of changes".
What I learned
Choose a first project that tests the whole journey. The first Pint Tracker was silly, but it needed everything a real product needs. That's why shipping it meant something.
Ask what each new submission costs you. I'd built something people wanted to add to, and everything they added was a job for me. That's what killed it.
Hand over the decisions, not just the work. The rebuild lasts because I don't approve trusted members' prices any more.
Don't fake a full map. A map with gaps is honest. A full map of guesses isn't.
If you build something and people care about it, run with it. I was happy to let this one die. Instead, it's taken on a life of its own.
What I'd do differently
These are suggestions, from reading back through both builds:
- Design the moderation in the first weekend. What made the second version last was accounts, trust, and an approval queue on my phone. The first version had none of them.
- Give every town an address with its county in it from the start. Ireland has plenty of places that share a name.
- Watch the bill on day one. Before a page goes live, I'd check what data it's listening to.
- Tell agents which database they're working on, and make the live one the hard one to reach.
- Write better commit messages than "bunch of changes". Writing this up, I'd have liked to know what they were.
- Keep it alive cheaply while it's quiet. The first version went dark when nobody was looking after it.
What's real and what isn't
The map, the phone screens and the sun lens are screenshots of the live site. For the sun lens, I set the browser's clock to 13:00 so it had daylight to work with. The 2024 version is a real screen recording from my phone, set in a generated phone frame, with a contributor's name blurred and my photo library cut out. The picture at the top is AI-generated, but the page on its phone is a real screenshot.
The prices are what people say they paid. Some bars have disputed them, and most pubs still have no price at all.
I've left out the photos people send in, and anyone's name.
Credits
The pubs and buildings come from OpenStreetMap contributors, under the Open Database Licence, through the Overpass API. The sun's position comes from suncalc by Vladimir Agafonkin. The maps are by Mapbox, © Mapbox © OpenStreetMap. Gaps in the pub list were filled from Google Places. About 120 older prices come from the 2021–22 NI Pint Census. Built with Cursor and Codex, on Next.js, Convex and Vercel.