Personal

  • Swanny – an AI-based cycling training app I built with Claude, and then stopped

    Earlier this year I spent a week exploring what was possible with Claude Code as my “engineering partner”. As someone with a design and product background I wanted to see how possible it would be for me to work with Claude to build a fully functional iOS app.

    As a keen amateur cyclist, I have lots of data across Strava, Garmin and Zwift. Over the last few years I’ve tried various training platforms like TrainingPeaks, WKO5, Intervials.icu and Xert – but I found that none of them really gave me what I was looking for. I was looking for an experience closer to that of having a personal coach – someone who would help explain all the data to me – but without the commitment and cost – because, as I said at the start, I was a keen amateur cyclist!

    So I set out with the goal of building an AI-based training coach. I called it Swanny – a “swanny” in cycling is the colloquial nickname for a soigneur. They are a non-riding support staff member who takes care of bicycle racers.

    The app pulled in your rides from Strava and Zwift, figured out what’s actually holding your fitness back, and gave you a training plan and a weekly review in plain English instead of a wall of charts. The bet I was actually testing, on myself, was: could an LLM do enough of what a $100-300/month human coach does that it’s worth it for the huge pile of amateur riders who’ll never hire one?

    I’ve ended up shelving it though. Not because the build didn’t work – it did. I used it myself for a while and even got as far as having some people sign up on a waiting list. Thanks for to those who expressed interest!

    I’m shelving it because Strava themselves rolled out MCP access to everyone’s ride data this year, and that quietly wrecked the specific bet I made.

    What it was

    Three apps, one Turborepo: a Hono API, an Expo app for iOS/Android, Postgres behind Drizzle on Neon. Clerk for auth, Stripe for payments, Resend for email, Claude Sonnet 4 doing the actual coaching bit. Rides came in through Strava OAuth, Zwift, or a raw FIT upload if neither worked.

    On top of that sat four things that the AI actually wrote:

    • A rolling 7-day training plan (cached 24 hours so I wasn’t burning tokens every time I opened the app),
    • a weekly review that’s meant to read like an email from an actual coach, and
    • a per-ride assessment that fires right after a sync, and a race plan for pacing and fuelling.

    If I’m honest, none of that list was the hard bit though. Wiring a call to Claude with a system prompt and some numbers was quick. What actually ate the most time was making it trustworthy enough that I’d take training advice from it – and I only found the places it wasn’t trustworthy because I was the user myself.

    Why I actually stopped

    I submitted the app to Strava for approval and to get the API limits lifted so I could open it up to my wait list. Days turned into weeks, weeks turned into months, and then finally I heard that Strava had decided to give every user MCP access to their own ride history.

    This meant the thing I was thinking of trying to build a business around, “connect your data, get an AI to make sense of it,” was now something anyone could get by pointing a general assistant at their own account. Swanny’s edge was never really the AI. It was the plumbing that turned messy ride data into something an LLM could reason about without hallucinating half of it. And that plumbing was what just stopped being scarce, more or less overnight.

    I don’t think it kills the whole category though – there’s real depth left in the sport-science side that a generic query won’t hand you for free: interval detection, zone modelling, periodisation, the trust guardrails above. But it kills the version I’d built, where “we plug into your data” was doing real work in the pitch.

    I could have kept building anyway. I’d already put a time into it, the app worked, and it was tempting to just keep going because it existed. Instead, I looked at what the market had just done to my actual differentiation and called it, rather than defending a plan because I’d already started it.

    What I actually took from it

    Setting aside that I got an API, a mobile app, a schema, auth, payments and four working AI features out in about a week, with Claude as my partner – the part I’d genuinely stand behind is the judgment calls sitting underneath all of it.

    Using the product myself, every day, helped me:

    • Decide where the quality bar was,
    • Decide what had to be non-negotiable, even when nobody’s asked for it yet,
    • Notice a small domain detail before it quietly poisoned everything downstream of it,
    • Understand the unit economics before getting attached to the idea.

    None of that is specific to a cycling app though. It’s what good product judgment actually looks like in practice, in my opinion, and I was able to do it at a scale small enough that I could see every part of it myself.

  • The Silent Grief of Remote Work

    I’ve always believed in the immense benefits of remote work—the flexibility, the freedom, the ability to connect with brilliant people from all over the world. I’ve had the privilege of working alongside colleagues from diverse backgrounds, cultures, and time zones, and these digital connections have enriched my life in ways I never expected. Remote work allows for a kind of collaboration that transcends borders, and in many ways, it’s become my ideal work environment.

    But, as with any system, there are costs that we don’t always talk about, and one of the most difficult challenges I’ve faced working remotely is the loss of colleagues due to layoffs. Recently, nearly 300 of my colleagues were let go, and the impact was profound. It wasn’t just a professional shift—it felt personal. These weren’t just coworkers; some of them were people I had built deep, meaningful relationships with, people who had become a part of my remote “family.”

    What’s unique about remote work is that our relationships are built through digital spaces. We don’t have the spontaneous, in-person moments that often create bonds in a physical office. There are no coffee breaks or impromptu chats by the water cooler. Instead, our connections form through Slack messages, video calls, and shared projects. We celebrate wins, we support each other through challenges, and we often lean on each other in ways that go beyond work.

    When those bonds are severed, the void left behind is stark. The absence of a colleague, a friend, or a mentor is felt deeply, even though the only thing we shared was a screen and a sense of purpose. It’s a loss that doesn’t fit neatly into the conversation about remote work’s advantages. There’s no physical office to return to for closure, no in-person goodbye that marks the end of a chapter. It’s just the silence that follows when someone who has been a part of your work life is no longer there.

    And yet, even with this emotional cost, I still stand firmly behind the overall benefits of remote work. The flexibility it provides, the opportunities for collaboration, and the ability to connect with incredible people all over the world far outweigh the challenges. Remote work has changed my life for the better, and I believe it’s the future of work for many.

    But this loss—the silent grief that comes with losing colleagues who were once integral to your daily rhythm—is one of the real costs that we need to acknowledge. It’s a challenge that doesn’t have an easy solution, and it’s one that I think is often overlooked in the broader conversation about remote work’s many benefits.

    When we talk about remote work, we often focus on the positives—productivity, work-life balance, global collaboration. But the emotional impact of losing people who have become family is something we don’t always address. It’s not a flaw of remote work itself, but rather a reality that comes with the territory. The relationships we build in this digital space are real, and when they are lost, it’s a grief that doesn’t fit neatly into the usual narratives.

    I believe we can continue to make remote work better, more inclusive, and more connected. But in doing so, it’s important that we don’t forget the emotional cost of these virtual connections—because in some ways, they are as real as any physical relationship, and their loss can leave a lasting impact.

  • 6 things I learnt from ‘hustling’

    Hustle is a popular tech/startup term – but I have never really seen anyone explain what they did when they were hustling – you just hear them say they ‘hustled’ and then they were ‘successful’. It tends to be defined as:

    Anything you need to do to make money… if you making money, you hustling.

    In mid 2014 I found myself with my back against the wall so to speak – work was scarce, most of my clients had gone very quiet and we had actually just bought a new family home (living in a 2 bedroom townhouse was not sustainable) – and we were moving in at the end of the month with no sign of my next ‘pay check’. My wife is a stay-at-home mom too – so there was no paycheck to rely on there either!

    As a result of these circumstances I found myself having to find a way to make some money – and make it fast.

    I started out by scanning the conversations, posts and articles of the people I followed on the internet to find opportunities that aligned with my key strengths/skill-set – and remembered a few posts I had read on the Creative Market blog earlier in the year where they had started to share what some of their shop owners were earning selling on Creative Market – as I already had a shop on Creative Market I decided to give it a second chance.

    For some background – I started my Creative Market shop early – just after they had launched and felt I saw an opportunity to create design related templates for the new launched Sketch software which was starting to become very popular as an alternative to Adobe Photoshop. I spent a good few evenings and weekend working on a mobile UI kit based on the then iOS 6 – and launched it – expecting great success – and it did get some immediate sales – but literally within days Apple upgraded to iOS 7 and with it came a whole new visual style – which my UI kit no longer catered to – and my sales stopped immediately. At this stage, I was contracted to work with a company – and the thought of having to do all the work over again and use up my evenings and weekends was not that appealing – so I put my Creative Market shop on ice.

    Fast forward to 2014 – and I felt I would have a go at creating some products that I could sell on my Creative Market shop again – but I needed to make sure that the products I created could be made quickly so that I could generate sales across a range of products as soon as possible – and so I ended up having to ‘hustle’.

    Now more than a year later I thought I would share my experience on what it meant to hustle:

    H – Hard work
    It’s important to realise that making anything of value is going to take hard work – you can try make a product quickly – but if you want to really ensure your product will stand out and be recognised then you going to need to put in the hard work it deserves. It also means not making sure you have all the perfect tools for the job – I used the old floor in my new house as the backdrop, collected items from my in-laws collection (they hoard stuff) and took photographs over the weekends while my two children had their afternoon sleep – trying to make sure I did not wake them up in the process as I crept around the wooden floor and making sure the photographing session was done by the time they woke up.

    U – Understand
    Try to understand the mindset of your customer – put yourself in their shoes and look at what value your product brings to them – will it make their life easier, simpler – can they design faster with your product etc?

    S – Strengths
    Don’t try to create products around a style that you aren’t familiar with as your first products – identify what your strengths are – and play to them – you will find you can get your products out much faster. If you still having to learn on the job, it’s not impossible, it just makes it that little bit harder.

    T – Trust
    At some point along the way you are going to have to trust the decisions you have made. Not every product or idea you come up with will be right. Just don’t give up at the first roadblock you experience. Learn from it and don’t do it again.

    L – Luck
    As you go you will start to find new doors and opportunities opening along the way for your ideas and or products. Don’t be shy – seize them and enjoy your success.

    E – Enjoy
    Lastly, and most importantly – make sure that you are actually enjoying what you are doing – as your customers will see your enjoyment through the time and effort you are putting into your products and the way you interact with them.

    In the end, I made quite a bit of money during this period – and while hustling was great – it’s not something I feel you can sustain for a long period of time. I used the opportunity that I got from my sales to pursue other ideas and options and a year later find myself working as part of a great team on some really amazing products – applying a lot of what I learnt during that period of my life to my day-to-day job.