Anyone can build a working website in an afternoon now. Far fewer can tell when one is quietly broken, leaking, or completely forgettable. Here's the difference.

Sean Curran
Founder & Digital Director

The site usually works. That's never the part I'm worried about.
People keep asking me to "just cast an eye" over the sites and apps they've built themselves with AI. Usually from someone who's quietly proud of it, and fair enough. A year ago, what they've made would have needed a developer, a designer and a few thousand dollars. They typed some sentences into a tool over a weekend and got something that loads. That's a remarkable thing and I don't want to pretend otherwise.
The trouble is what I have to tell them afterwards.
The site nearly always works. It looks fine. Fine in a specific, slightly deadening way: I've seen that layout on a dozen other sites this month, the hero gradient is the one everything ships with now, and the copy reads like it was written to fill the space rather than say anything in particular. None of that is broken. It's just anonymous. And anonymity has a cost too, even if it's the cheap one.
This is the part you only notice once you've looked at a few hundred of them: they're converging. The tools learn from what already exists, so they hand back the statistical middle of everything they've seen. Competent, plausible, and basically identical to the one before it.
If you're a customer landing on a site like that, you can't always say what's off, but you feel it. It reads as "we did the minimum." And once someone has clocked that you cut the corner you assumed they wouldn't notice, they start wondering what else got cut. That's a strange first impression to give someone right before you ask them for a card number.
A designer worth paying isn't averaging anything. They look at what everyone else in your space is doing so they can deliberately not do it. That instinct, the one that finds an angle no machine would ever average its way towards, is the thing you're actually paying for. It's also the thing that makes a stranger remember you a week later.
But sameness is the polite problem. The one that actually keeps me up is the backend, because it's the part the person who built it has no way to inspect, and usually didn't think to.
You don't have to take my word for how common this is. Search public GitHub for exposed API keys some time. They're sitting there in plain text, live, attached to real accounts, by the thousand, and there are scanners running constantly to catch them that still can't keep up. A leaked key with no rate limiting behind it can be run into a five-figure bill overnight by one bored person with a script. And that's the cheap outcome. The expensive one is the message you have to send your customers explaining that their data has left the building.
This isn't about anyone being careless. It's what happens when you build quickly and there's nobody in the loop who's been burned before. A language model is matching the shape of working code, not reasoning about your architecture. It doesn't know how the query you just shipped will behave when ten thousand people hit it at once. It will cheerfully reach for a library that was perfectly sensible in 2019 and is a well-documented way in today, because most of what it learned was written before anyone found the hole. And it has no sense that a key belongs in a secret store rather than a file that gets pushed to a public repo, because "should this be visible to the whole internet" isn't a question it knows to ask.
There's even a name now for the newest version of this. Researchers call it slopsquatting: models invent package names that sound real but don't exist, attackers register those exact names with malicious code inside, and then wait for the next AI tool to confidently recommend pulling one into a live product. You don't write that vulnerability. You import it, on the model's say-so, with no particular reason to suspect a thing.
What unsettles me most isn't the tooling, though. It's the certainty it hands people. These tools are confident by default, and that confidence is catching. You end up with checkout flows and customer databases going live on the strength of a chat window saying the code is production-ready, when "production-ready" was never something it was in a position to judge. It almost never is, and there's usually nobody in the loop who could tell the difference.
Because the genuinely hard questions in building anything were never really about code. Who is this actually for, and what's the precise moment they give up and close the tab? How does it talk to the system you already run without quietly creating two versions of the truth? What happens to all of it when you're ten times the size you are now? A model can produce text shaped like answers to those. It can't think about your business, because it doesn't know your business. That part still takes a person who'll argue with the brief, tell you the thing you asked for isn't the thing you need, and now and then save you from yourself. That conversation usually turns out to be where most of the value was hiding.
Partly, yes. Weigh it accordingly. But it might help to know that we use these tools constantly. They're threaded through how we work every single day, and I'd defend them to anyone. AI isn't the problem here. The problem is treating a power tool like a co-founder. In the hands of someone who already knows what good looks like, it strips out the boring work and frees them up for the calls that need a human. In the hands of someone who doesn't, it's just technical debt with a nicer interface, and the invoice always turns up later than you'd like.
And if you've built something yourself and it's holding up, good on you. That's not a small thing, and this was never a lecture aimed at people having a go. It's just worth getting someone to look under the bonnet before you put real customers, and real customer data, behind it. Before your customers find the cracks themselves. Or worse, before someone who isn't your customer does.
If that someone may as well be us, you know where we are.

Founder & Digital Director
15 years in design and digital, he’s partnered with global brands including Johnson & Johnson Vision, World Athletics, and Abbott to bring ideas to life across platforms. He moves fluidly from strategy to execution – equally at home designing in Figma, building in Framer, or writing code. Weekends involve black coffee, his partner Alice, his dog Otis and that project that just can't wait until Monday.