As a species, a lot of the time we’re so focused on the JFDI that we don’t take a step back and look at the problem we’re tackling or challenging the experience we’ve had. Often, good ideas are sat there in plain sight, likely as a result of something that’s niggled at you that could be improved doesn’t yet exist.
We see this in both our working lives with Enterprise software and in our personal lives with Consumer products and services. Far too often we wish for a feature from a product or for a tool to do something in a certain way, only the barrier before has been the cost of building and maintaining that software.
Step forward, personal software. Time to do away with that CRM you’ve been using or rebuild the app just for the features you need, such was the promise dawned from the early days of Lovable, Replit and the likes of Base44 and more recently with Claude Code and Codex.
The truth is that building software because it’s cheap and (relatively) easier comes with it a host of other unforeseen activities and steps you need to carry out in order for it to survive beyond being just a throwaway prototype. Basic things like performance optimisation, security scanning, accessibility compliance, hosting configuration, SEO, AEO, GEO (there’s three now!) become part of the equation if you want more than just yourself to use something you’ve built.
Before the summer Football World Cup started a number of my WhatsApp threads with friends from around the globe were bemoaning the U.S kick off times for the games and what time it would be in each territory. A relatively simple problem to solve for with the global 24hr time zone system, but the data was a bit all over the place. Which made organising which games might be viable to watch with friends or colleagues after work, or at home with the kids just an extra few steps of pain.
I decided at this point I’d try to solve for three opportunities at once;
I wanted to get back into building products and a reason to explore the capabilities of LLMs having not really touched any code for at least a decade
I’d heard a lot about Answer Engine Optimisation (AEO) and Generative Engine Optimisation (GEO) but not had something to which I could apply it to
I wanted to solve for the timezone pain for me firstly and also ideally help a few friends in the process
To get moving on this, as I do with any project I start with the product vision, looking at what features could be useful…and then strip it right back to an initial set. I then set about researching domain names and came up with ‘whenskickoff.com' which I find for small non branded projects like this serves a really simple need and also helps with Search Engine Optimisation (the OG of optimisations!).
The final step was to work on some designs, so I fired up Claude Design to see where it could get to. I knew the user base would likely be mobile, so designed to that format first, after a few iterations and wrangling over colour pallets and such we landed on a simple but vivid design you’ll see below;

The next steps were much more about design refinement, finding the right country icon set, the dark-light mode switches, the drop down options and most importantly putting the key product features in the prime digital real estate for immediate usability, as this was always intended as a tool that would be simple and do what it said on the tin without extra hoops for the user to jump through (which was me…because I was designing for my pain.)
Taking this forward I then wrote up the product spec and spun up a terminal window and got going with Claude Code to start building out the features and ensuring that things like responsive resizing worked appropriately or hooking it up to a live score api. This part took a few nights back and forth to capture and validate the data and ensure it was working as I intended.
As I mentioned earlier, one of the three goals was to also explore how the emerging AEO/GEO space was working in reality, what types of content did I need to build in (I settled on three dimensions; pub, location and team guides) and importantly how could I put my best foot forward with the LLMs and traditional search to ensure I was quickly indexed (searchable / discoverable) and that the pages were of optimal performance (something Google weights highly) and readability (e.g. avoiding just AI slop).
This configuration part, along with hosting was probably the most cumbersome and required quite a few hours of persistence to get through where things were failing to resolve or simple changes in metadata, Javascript and such so that Google gave it a good ranking. Cloudflare at this stage was the hosting provider of choice (or should I say, Claude recommended Cloudflare pages as they are both free and scalable) and was relatively simple to get the app uploaded until they decided to change their entire UI/UX such that all the instructions I was getting from Claude to complete configuration were out of date and finding the renamed fields or pages was a painful experience. Note, don’t rely on AI to keep up to date with website UIs!.
After all of that it was live!. A small win, but more importantly I’d learn’t a bucket load by just throwing myself in and being dogged enough to get through the errors, bugs and configuration issues. I’d built something. But like Ray Kinsella in Field of Dreams, if I built it will they come?.
The answer was yes, because I built it for myself in the first instance, so by proxy…I came to the app…and I used it. But rather than stick to that sole user being as satisfied as a pig in muck, I shared it on a few of my close friend WhatsApp groups (incidentally I didn’t share on some bigger football threads I’m on, maybe out of classic Brit embarrassment syndrome - something I’ll need to overcome if I want to get more products out there I’m certain). Some of them instantly replied and loved it, they shared it with friends and I saw a trickle of users steadily turn up over the coming week(s).
Until one of my friends shared it on X and an ex- professional footballer (Stan Collymore!) reshared it and the app had a mini viral moment (emphasis on the ‘mini’), this traffic sustained for a long period of the group games of the tournament and then something magical happened which reignited a ‘building’ passion I had, people started reaching out and providing feedback, feature requests and also grumbling about some data inaccuracies (I missed the Turkey and Australia kick offs by a day-oops).
The feature requests were most exciting part, people wanted live pub screen data plumbed in with Geo aware features, they wanted table bookings for pubs, and they wanted to know which channels in their countries were showing the games. The visits continued and the app started to get a steady stream (albeit small in volume) of organic and agent referrer traffic (which took a while to work out and properly attribute, another lesson in the moment!). Across the time period the app experienced;
44k visits
At one point 21k active users
Users visited from 42 different countries
The site generated 1700 organic sessions
Users sent in 22 feature requests via X and Email

Now for the other side, some lessons
Work (e.g the main job!) was experiencing a particularly busy period and I struggled to find the time to focus on the features, I should have
I should’ve built in some user retention hook such that I could reach out to those 44k users (or a consented subset) at a later date, maybe with a product expansion beyond the World Cup for football and other sports using the domain, or even another project. Missed opportunity, and given I talk about this a lot at work and in public, an own goal
2 data innacuracies were flagged and I took 2 days to fix them, that should’ve been quicker. As an end user that would (did) potentially put me off the product if I can’t rely on it
I didn’t shout about it beyond the initial seeding to friends and one LinkedIn post, which again was a missed opportunity for experimentation and upskilling to learn the latest social and content techniques that might work (or not)
I didn’t fix the api issue for live scores and to update the app beyond the group games. This was just a capacity point, it was a lesson that if you truly want to go after something then you need to have singular focus, spreading yourself thin never works out well in the end
But.
All in all, I was pretty chuffed, I managed to build something that I needed and get it out in the world. It was small, by design, but it enabled me to learn so much and bring my skills right up to date such that I’ve learn’t so many things I could apply to the next product or service. But in building something for me, I also managed to build something for thousands of other users, and the feedback was universally positive, that in turn has reignited a burning passion to continue (get back to) building things.
That’s the real win.
