I had built it to work, not for him to use
In early August, a few days after launch, Davy told me he could not rename his pages, create new ones or delete them. I first assumed a caching problem, because the site sometimes takes a while to reflect a change. That was not it.
Checking properly, I realised the problem was mine. I had written the list of his pages directly into the code. The title he edited in his interface did reach the database, but the site kept displaying the one I had written. His new pages were rejected because they were not in my list. And the pages he had deleted stayed online, because the code recreated them on every deployment.
When I took stock I found four renamed pages that had not changed, five drafts he could not publish, and four deleted pages still running. He had been working for nothing for several days without daring to tell me straight away.
What that says about my weaknesses: I had built the site to work, not for a non-technical person to run. Writing that list into the code was the fastest option at the moment I did it, and I did not spend a second thinking about what would happen when the client wanted to change it. I reasoned as a developer, not as a user. And I lost time in diagnosis looking for a complicated technical fault when the cause was a shortcut I had taken myself three weeks earlier.
What that says about my strengths: I resisted the urge to patch it by realigning my list by hand, which would have brought exactly the same problem back a month later. I rewired everything onto the content management system, so that the menu, the carousels, the footer, the sitemap and the structured data all read from a single source. And I did not simply assume it worked: I deliberately rebuilt the site including only one page, then checked that the others still responded. That was the only way to prove the mechanism genuinely worked.
Today Davy adds and removes a town on his own, and the page appears without anyone having to redeploy anything.









