← the writing off-screen 7 min

Failure only works when the next attempt is different

I failed at fitness for years, built my first websites with OpenCart and a $50 ThemeForest theme, and launched my first AI-coded project. None of those attempts was wasted.

We tell failure stories backwards. Once the ending is known, every bad attempt starts to look like a deliberate step in a clever plan. It was not. In the moment, a routine that did not last felt like a lack of discipline. A basic website built from a cheap template felt small. Letting AI write real production code felt like handing over something I was supposed to know how to do myself.

Only later do the failed attempts form a line. Not a straight line, and definitely not a glamorous one, but a line you can follow.

I recently read Goodwin University's article on how embracing failure can lead to success. Its central point stayed with me: a healthy culture does not punish every attempt that misses. It asks what happened, makes it safe to discuss, and uses the answer to improve the next attempt.

That is close to how I now think about building almost anything. Failure is not automatically useful. Repeating the same mistake with more motivation is just repetition. Failure becomes useful when it gives you evidence and you are willing to change the system around the next attempt.

Fitness failed until I stopped relying on motivation

I did not get into fitness early. I got into it in 2022, at 36, after a decade of building agency businesses and treating my body like the server that kept the real work online. I tried the Versa Climber at BXR, spin classes at Psycle, outdoor running, and hikes. Some were good workouts. None became a durable habit.

For a while, I treated every abandoned routine as a personal failure. The usual conclusion was that I needed more discipline. So I would restart, push harder, miss a few sessions, and reach the same conclusion again.

The problem was not effort. The problem was the design of the routine.

Barry's finally stuck because it removed the decisions I kept failing to make. The studio was close to home. The class started at a fixed time. The instructor decided the workout. I booked in advance, arrived, followed the session, ordered the same shake, and walked home. The routine could survive a busy day because it did not require me to negotiate with myself.

My first Barry's class was on 11 January 2023. By 2 May 2026, I had completed 366 classes. I wrote about what those 366 classes taught me, but the biggest lesson was not about treadmills or dumbbells. It was this: when willpower keeps failing, change the environment.

Fitness success did not arrive when I became a different person. It arrived when I found a format that worked with the person I already was.

My first websites were built from a $50 lesson

My early websites were not custom React applications or polished design systems. They were OpenCart sites built with ThemeForest themes that cost around $50. I would install a template, replace the content, change the colours, adjust product pages, and try to make the result feel like it belonged to the business.

They were imperfect. The code was not mine. The layouts had limits. A small change in one place could break something somewhere else. I learned by touching things, seeing what stopped working, reinstalling, and trying again.

It is easy to dismiss that kind of beginning once you have shipped thousands of sites. I do not. A $50 template gave me a complete system I could take apart. OpenCart gave me products, categories, checkout, and all the awkward details that separate a website from a few attractive screens. The constraints were the education.

Those sites taught me what clients actually notice. They notice whether the product is easy to find, whether the page loads, whether the checkout works, and whether someone fixes it when it breaks. They rarely care how proud the developer is of the architecture.

The first sites were not failures because they were basic. Some individual choices failed, and plenty of versions were rough, but each one shortened the distance between an idea and something a real person could use. That feedback became far more valuable than waiting until I knew enough to build the perfect site from scratch.

I still believe in that path. Start with the $50 theme if that is what gets the business online. Learn where it bends and where it breaks. Earn the right to replace it with something better.

AI coding made me a beginner again

Years later, AI coding returned me to the same uncomfortable position. I knew how websites worked. I knew what production code should look like. But I did not yet know how to turn a conversation with an AI agent into a reliable product.

This website became my first end-to-end AI-coded project. I used Claude Code to produce the volume, while I owned the brief, the architecture, the tests, the review, and the decision to ship. That distinction matters. AI did not remove responsibility. It moved more of my work from typing every line to specifying, judging, and correcting what the system produced.

The early attempts were uneven. A vague prompt produced a vague implementation. A request that was too broad created a diff that was too broad to trust. Sometimes the fastest move was to discard the output, make the task smaller, and ask again with a clearer definition of done.

Launching the project was the success, but the failed generations were what taught me how to get there. Every weak result exposed a missing constraint. Every review showed me where the agent needed context. Every production issue became a rule, a test, or a better brief for the next session.

This felt remarkably similar to those first OpenCart builds. The technology had changed, but the learning loop had not: build something, inspect reality, keep what works, and correct what does not.

Failure is not the same as carelessness

There is an important boundary here. Goodwin's article separates failure from fault, and that distinction is useful far beyond the workplace. A well-considered attempt can fail without the person behind it being reckless. But skipping the obvious checks, ignoring known risks, and calling the damage an experiment is not a culture of learning. It is poor ownership.

I am comfortable with an AI-generated approach failing in a branch. I am not comfortable pushing unreviewed code into production and pretending the outage was necessary for growth. I am comfortable trying a new training format for a month. I am not going to ignore an injury because quitting would look like failure. I am comfortable launching a simple site on a cheap theme. I am not comfortable telling a client it is bespoke when it is not.

Useful failure has boundaries. The attempt is made in good faith, the risk is understood, the result is examined honestly, and the lesson changes what happens next.

The rules I use now

Across fitness, websites, business, and AI, the failures that helped me shared a few properties:

  • Make the attempt small enough to survive. A failed class, template change, or feature branch should teach you something without destroying the whole system.
  • Name the lesson before moving on. "It did not work" is an outcome, not an insight. Identify the friction, missing constraint, wrong assumption, or weak process.
  • Change the system, not just the promise. Move the studio closer, book the class, narrow the prompt, add the test, or simplify the scope.
  • Launch before confidence arrives. Real users expose truths that another week of private polishing cannot.
  • Keep ego separate from output. A failed attempt is evidence about the attempt. It is not a final judgement on the person who made it.

This is not a celebration of losing. Results still matter. The point is to treat a miss as data instead of shame, and then do the difficult part: act on the data.

Success is a stack of corrected failures

My fitness story looks successful now because the habit has lasted. My web career looks established now because there are thousands of sites behind it. AI coding looks obvious now because this site is live. None of those endings was visible at the beginning.

At the beginning there was a routine I could not sustain, a $50 ThemeForest theme on OpenCart, and an AI agent producing code I did not always want to keep.

What connected them was not blind persistence. It was correction. The workout changed. The websites improved. The prompts became briefs, the briefs became tests, and the tests made shipping safer.

I no longer ask only, "Did this work?" I ask, "What did this attempt teach me, and what will be different on Monday?"

That second question is where failure starts becoming success.

this post in the tree

Need this done, not just read?

start a project book 30 minutes