July 29, 2025 - 27 min 30 sec

Timing My Vibe Coding

Mapping the history of the universe—and the limits of current AI programming tools. On this week’s podcast, Paul walks Rich through his recent experiments trying to build timeline software via vibe coding. Spoiler: There were issues. Halfway through 2025, where do the current tools excel, and where do they fall flat? And looking over the few years at where these tools might be headed, what should a young person interested in tech be learning right now? 

Show Notes

Transcript

Paul Ford: Hi, I’m Paul Ford.

Rich Ziade: And I’m Rich Ziade.

Paul: And this is The Aboard Podcast, the podcast about how AI is changing the world of software. And Rich, you’re away. You’ve been in Lebanon for a couple weeks. You’re coming home soon. But while you were away, I got up to something.

Rich: Oh boy.

Paul: I vibed.

Rich: Mmm hmm.

Paul: I gotta tell you, I gotta confess. I vibe coded.

Rich: [wincing noise] That evil mistress, vibe coding. Go on.

Paul: Okay, let’s, let’s talk about it.

[intro music]

Paul: Okay, so what is, okay in two sentences, we did not build—Aboard, go to aboard.com, you put a prompt in, it builds you some software. How is that different from vibe coding? Why are we different?

Rich: Vibe coding takes your prompt and just sort of starts coding. And we don’t do that. We take your prompt and we do a lot of thinking. A lot of agents talk to each other. A lot of prep work. A lot of sort of setting up and then an app gets generated. Very different.

Paul: But at the same time, I feel as a technology company leader that I need to, especially when I’m telling somebody that we don’t do something, that we’re better and special in some way, that I need to really keep on top of what the other thing is, namely vibe coding, like, what’s going on over there?

And I realized after you left, because nobody was talking to me, that I hadn’t done anything on Claude Code or with any of these tools in a little while, and I was kind of, I might be talking from things that were three or four months old, which is really an eternity in this world.

So I sat down and I decided to make—and there’s a link, you can go check it out. This is open-source software that I made with my, with my buddy Claude Code, I made a time timeline explorer tool that lets you, with one slider, go all the way from the Big Bang and then on the left all the way to the heat death of the universe on the right, with a bunch of more contemporary stuff in the middle.

So some complicated math, and then as you scroll around it shows you little events and YouTube videos about that moment. So, like, I hit World War II, I can watch a World War II video.

Rich: Okay.

Paul: I want to learn about the heat death of the universe, I can learn about—so a cool little resource for watching interesting, nerdy, dad-style educational content on the bus.

Rich: Okay.

Paul: And I wrote about that in the, wrote about it for the newsletter. We’re talking about it now. But I thought what I would do is kind of tell you a little bit about where I think we are now in terms of vibe coding, and not purely so we can talk about how we’re better or different, I just think that this is still a really fundamental change that we’re processing in the industry and I thought this would be a good chance for us to kind of get back into some of the things we’ve been talking about over the last year or so, about what’s changing.

Rich: Okay.

Paul: So like I said, the app is available on, I put it on GitHub Pages, it’s got lots of videos, it works okay, it’s got some gaps, it does have light and dark mode. But it is an accessible web-based app that works on mobile and desktop.

And it is the sort of thing—I did this sort of casually over a couple of hours, it is the sort of thing that would have been hard to complete and get live, even though I think I could have built a lot of this by hand back in the day. I think, like, getting it out into the world on GitHub Pages, pretty accessible, good for mobile, I do think that that is something that helped me here.

So I thought I would just talk through the whole process and you could riff with me. You ready?

Rich: Go.

Paul: Okay, so we’ll put the link to it in the show notes, and if you look at the newsletter you’ll, you’ll be able to take a look at it. So let me describe what I did. Ask me any questions as I go.

Minute one, I sat down and I said, I want to be chill here. I don’t want to use REACT or a whole bunch of big web libraries. I want you to build native web components, use basic web technologies. Don’t do a lot of weird stuff. Like, make me a web page and a couple JavaScript and CSS files when we’re working.

And I gotta tell you, that part? It killed it. It never veered. I said, “Keep it simple, keep it readable, keep it easy.” And in this case, when I’m saying this, I’m saying this to a terminal-based application called Claude code. You just type Claude in your terminal and you sort of talk back and forth to it and it writes code and creates files in a directory, and then you open up your web browser and you look at what it’s doing.

Rich: Okay.

Paul: Okay? So… So now, that took a minute. Pause…….for an hour. Because now, I had to tell it about time, and I had to explain that because I wanted one slider that started at negative 4.33 billion years and went all the way to trillions and trillions of years on the right. But in the middle was kind of, like, around the year 2025. I had to have—that slider has to do a lot of work. Like, there’s, it’s, you know…

Rich: Sure.

Paul: It has to do math as you scroll. And that was like, you can’t just say that in a sentence to an LLM. It… For a while it had the American Revolution happening 4 trillion years in the future. It was really, it was a lot.

So I had to do that, like, five or six times. And I will say, I don’t think people talk enough about how much of the interaction with these things is repetition. Like, you go back and you just are like, “Okay, that’s not it. Let’s try it this way. I need you to write this.” And then you end up looking at the code and so on and so forth.

But we’re already out of the miracle zone. It’s still pretty good. It’s doing a good job and it’s writing the math, and it’s doing some of the really boring stuff well. But I would say, definitely an hour, and I haven’t really gotten started yet.

Rich: I mean, I’m gonna guess that this is a tricky problem that you might have had the same issue if you had an engineer to your right.

Paul: Yeah, I will say what the engineer wouldn’t do is throw something over the wall where the American Revolution happens trillions of years in the future. Like, that instinct of just, like, something being wrong, isn’t there.

Rich: Yes, correct. Good point.

Paul: As far as an LLM can tell, if the code executes without producing an error, it did a good job.

Rich: Winning!

Paul: And a human does—yeah, exactly. A human has more discretion. But then, okay, I got that working. It was pretty good. And then I was, like, you know, I got to get some data in here. I need some, like, I needed, you know, the Jurassic period needs to be in here and more sort of events and sort of more stuff. And so I’d thrown a few in, but I needed more.

And here is where it is really good. I was, like, “Go look at Wikipedia.” I found a list of, like, eons and timelines and stuff. “Go read this page and turn this into data that we can use in this timeline.” And that used to be. I would say that was…that could easily be a day of work. Because parsing is hard. Natural language is hard. Turning natural language into data is really hard.

Rich: Yeah.

Paul: And you’re using lots of libraries and lots of principles. That’s 10 minutes now. Okay? So that whole domain of I need to take something really abstract and turn it into data so that I can go to the next step? That’s gone now.

Rich: Yeah.

Paul: That just works pretty well with this new world. I also noticed that it, like, at this point, it starts to kind of investigate its own work. It’s getting better at looping and kind of being like, “Oh, hey, I don’t know if that’s the right way. Maybe I’ll try it this way.”

So that whole space is getting better and better—except! I went, I entered into a journey. Now I’m going to describe this journey to you, which is now I want to go get the YouTube videos.

Rich: Mmm.

Paul: And I said, “Claude, you did a great job with those Wikipedia pages. Go get me some YouTube videos for each event. Jurassic period? Go find me some good dinosaur content.”

Rich: Yeah.

Paul: Just all those events, I was like, “Go get me one YouTube video per.”

Rich: Okay.

Paul: Complete improv comedy. Just came up with absolute nonsense. None of them are real.

Rich: Mmm. Mmm.

Paul: And in fact, it really couldn’t get me YouTube links. It kept finding me web pages that had videos embedded. Like, just went on a journey.

Rich: Mmm.

Paul: And I couldn’t—I couldn’t figure out what it was doing or why.

Rich: Yeah, okay.

Paul: And then so I was like, “All right, well, it’s not Claude. Let’s go try…” And I was like, I had a stroke of genius. I’m like, “Who owns YouTube?” Who owns YouTube, Rich?

Rich: Google.

Paul: Alphabet. Google. Yeah, the whole, that whole world. So I’m like, “I’m gonna bet you Gemini is gonna kill this. I’m gonna go use Google to find me a whole bunch of YouTube videos.” And it was like, “I am ready to help you. Absolutely.” I felt really, really good about myself.

And another debacle. Every video it produced seems to have been real once. But it was like, out of, like, 50 videos it found, it found maybe, like, one or two were real, and the rest would be like, “This is no longer available.” No idea what was going on there.

So not Google. So then I did go to ChatGPT. I used o3. I had it make a list. And it did a great job at first. And then it was like, “Man, you know—” And this is a new thing. It’s like, “Do you want to go further? ou know, you’ve had a taste. You want another taste?”

Rich: [laughing] Yeah.

Paul: And I, okay, and it was like, and it goes, “I will make you so many videos. I will make you a thousand videos. And it is going to be absolutely just stunning for you.” And I was like, “That sounds absolutely fantastic. I really want to do this.” [laughter]

I did. I was like, “Go make me a thousand videos.” And it told me—it worked. It worked for a while. I used Deep Research. It was like, “I did it, man. I did it. I made you a thousand videos.” Whole plan, everything. How many videos do you think it produced in that list?

Rich: So I’m assuming it’s referencing the videos. I’m going to guess a hundred.

Paul: Mmm hmm. Twenty. [laughter] Twenty. So twenty out of a thousand.

Rich: Yikes. Okay.

Paul: And the thing is, it was, it’s just so confident. It’s so enthusiastic. It’s sort of like—

Rich: Yeah.

Paul: Everybody’s like, you know, it’s like an intern or a junior employee. No, the 20 were of extremely high quality.

Rich: Mmm hmm.

Paul: It’s more like a weird poet where it’s just, like, “Uh…I can only write that one poem for you.”

Rich: Yeah.

Paul: And I was like, “I needed you to do, like, 50 poems?” “Nah, but one’s really good.”

Rich: Yeah.

Paul: So—and then, you know, into, so now I’m in, like, I’m in three LLMs. Claude is wearing out. Claude, I keep asking Claude for things. I keep trying to bring some of the GPT stuff back I don’t really have—and you know what’s tricky here is if I was doing classic programming, I would have a folder, I would have a structure. I would be like, “Okay, this is where the text is going to go in. I’m going to commit it in GitHub. I’d create a process around this whole thing.”

But instead I got all these files flying everywhere and I got, I’ve crossed what I’m going to call the prompt productivity threshold. Or you could call it context exhaustion. And I’m sort of in the bad place. Like, it’s, it’s getting very random and I don’t know why. And I’m starting to kind of like hit the keyboard.

And then, by this point, I’m now, like, four, six hours in. And the reality is, yes, you are correct. I could have done some of this by hand and I think I would have had a lot of success. But! Then a real surprise, Claude ran out of money.

Rich: Which is fascinating, right? I think that’s—the fact that we pay for it not to do the job is something else right now. I don’t know how long we’ll have that appetite or tolerance for that, but here we are. [laughter]

Paul: No. And then I gave it more money.

Rich: Of course you did.

Paul: It was like, “If you want, If you want 7x what I just gave you?”

Rich: Yeah.

Paul: “You got to give me $7 more a month.”

Rich: Okay.

Paul: Which, okay, I did it. I got out the corporate credit card. You know, I’m learning. And I will say, of all the experiences I had with Claude, man, getting in the terminal and giving it that $7, it was seamless. [laughter] One of the best…

Rich: It’s quite smooth.

Paul: Oh, they nailed it. They are really getting good.

Rich: Sure did. Yup.

Paul: And so now, it’s just, like, I’m in a bad place. I mean, I’m not, like—and again, something does exist. I’ve got, like, 30, 40 events in here. It’s pretty good. But I was excited to get my thousand.

Rich: Yeah.

Paul: Like, if it hadn’t promised me, ChatGPT hadn’t promised a thousand, if Claude hadn’t said it was all ready to really do this for me?

Rich: Mmm hmm.

Paul: I wouldn’t have been so into it. But, you know, here I have something working. That’s pretty cool. And now I’m like, four or five years—four or five years. Four or five hours into trying to make it really good, but really good is out of my hands. I can’t vibe code through it.

And I will say, like, I, after I did this exercise, I went and I looked at, you know, all the awesome Claude Code tools and all the other stuff. Like, did I miss something? And I gotta be frank. I don’t think so. I don’t think there was, like—there are lots of processes where I could have had a better, a better outcome. And we’ll talk about that in a minute. But there was, there’s, like, no magic trick here where I could have gotten from the thing in my head, gotten it onto the screen simply through prompting.

I will say, though, then I was like, all right, “Well, let’s just deploy what we got. I got to talk about this with Rich on the podcast. I got to get it out in the newsletter.” And then there is a set of tasks which is, like, “I need this deployed on GitHub. I need it on GitHub Pages. I need a build process and so on.” Those things could take hours, sometimes days, and it just does them instinctively.

Rich: Mmm hmm.

Paul: So that part of actually getting things over the line so that other people can look at them? So it’s this very paradoxical thing where, like, you’re aiming for perfection, but the actual—some of the killers in engineering projects were that last 10% of actually finishing it, writing the unit tests, automating processes, making sure it gets on the server in a very predictable way? That whole class of challenges, that was an absolute murderer for small projects?

Rich: Mmm hmm.

Paul: I do think is gone now. Right?

Rich: Mmm hmm.

Paul: So where are we winning? We’re winning on a little bit, we’re winning on content parsing, we’re winning on getting started, we are winning on deploying, but we are not winning on the part of, like let’s, let’s steadily increase quality and turn this into real software. And I went back now for a couple more hours. I tried to get ChatGPT to up its game, but just kind of, kind of no dice.

Rich: Yeah.

Paul: So I’m launched, I’m in the world, I can talk about it, but I am unfinished.

Rich: Mmm hmm.

Paul: That’s the way that I would do this. And so—or, I would describe this. And I’ll close this out, and then I want you to kind of tell me what you think about the world we’re headed towards. The way to do this would be to stop as I hit the multi-hour, like, try to get it to work in a specific way, and then define a process, define a set of atomic, small, achievable goals and then prompt those one by one, incorporating them into the code.

Because it keeps trying to, you know, a way to—we’ve talked about this before, it kind of pushes you into a narrative. Whereas that’s not what code really is. Code is more like you’re putting a building together and your plumbing systems and electricity and, and sort of, you know, carpenters need to come in and so on and so forth.

And so like I think like it’s, I’m trying to tell a story to the prompt about what I want and I think that that is really in opposition to what finished code needs to be. That’s where I’m landing. Even though I’m really glad these new technologies exist, and I like the thing that I built. And I want to—now that I’ve said all that, I really want to get your feedback.

Rich: Okay. I have two thoughts and then they’re really kind of set up, sort of a final read on vibe coding in general. The first thought is this.

Paul: Mmm hmm.

Rich: The first thought is that, well, let me really share a little story to amplify the first thought. And that is, it is my son’s birthday and I walk into a bakery and I say, “I need a cake by tomorrow.” Okay?

Paul: Mmm hmm.

Rich: I come back the next day, right? The box is there. It’s ready for me. “All set. You’re gonna love it. Thank you.” I give him $50 bucks. Take the cake home. I open the box. It is, the cake is, for whatever reason, in the shape of a violin. My son doesn’t know anything about violins.

Paul: Yeah.

Rich: It says, “Happy birthday, Sebastian.” My son’s name is Anthony. And it has a candle on it with the number 71. And my son is 12 years old. Okay?

Paul: I mean, I think I know what happened here.

Rich: I just, the baker didn’t take out a little notepad and say, “What’s your son’s name? What’s he into? Is he into baseball? Is he into soccer? Does he like Marvel Comics? And how old is he gonna be? And what flavor does he like?” By the way, when I cut it open, it was blackberry filling [laughter], which wasn’t…it was okay, a little exotic for a 12 year old.

Paul: I think we need to be clear that this is a metaphoric journey here, that this—it actually sounds very believable.

Rich: What I’m trying to say is this: The baker would never just say, “Okay, you need a birthday cake by tomorrow, and I will make a collection of assumptions and just run with it.” The thing that AI will do is that even though you put in probably a pretty good credible prompt, right, is that it will not come back to you and say, “You have to clarify this for me.” See, the thing about humans, they will say, “You have to clarify it,” because they want to do a good job. They will not just say, “Yep, I got you,” and off they go, right? They will say, “We need to have a dialogue.”

Paul: The reason it can’t do this is because it’s not human. It’s a vector database that is statistically matching, like, inputs and outputs.

Rich: Another way to look at it is it sees no gaps. You essentially said—you made a request, and it’s decided that, “I will take this request and I will run like the wind. I will run like Forrest Gump, and we will go.” The way AI works is that it takes your prompt and runs. It doesn’t pause, doesn’t say, “Hey, wait, I’m really not sure what you wanted here. Should I do this instead of that?” It just keeps going, and it goes and goes and goes and goes. And when it finally gets done, it doesn’t pause and say, “Hey, what do you think?” So when you actually ask it to refine, it’s not very good at refining. It wants to keep going.

And so it’s getting better at it. You’ll often see Claude sort of run back through its own code, but it really doesn’t understand your end game. And you didn’t give it a spec. You gave it a few sentences, a nice big paragraph, but it’s just not enough, right?

So that’s problem one. Problem one is it Just makes a bunch of assumptions and just keeps going. And very little software is built that way. Usually there are specs written, there’s a ton of dialogue, there’s a lot of refinement and whatnot.

Paul: Let’s be real, let’s be real. This is on us, not on the technology.

Rich: Correct, correct.

Paul: It’s also on the people who are making Claude and they’re making ChatGPT. They keep trying to simulate this. I gotta say, I’ve been using ChatGPT more and more. It is hallucinating, like, all the time.

Rich: Yeah.

Paul: I’m really having trouble getting it—and it just, it gets, and it’s more convinced than it used to be that it is of falsehood.

Rich: Correct. Now the second point is not on us. The second point is really on AI, which is, okay, let’s say I, you did give it a spec and you did give it all the details and you did put in exactly what you wanted with that cake, right? It’s got to be shaped like a soccer ball. He’s 12 years old. His name is Anthony, blah, blah, blah.

There’s another problem that arises which is, and you alluded to this earlier, is that AI does not think structurally with code. It thinks in a very linear way and so it doesn’t organize its thinking first, it just goes, right? And I think that is the tougher hurdle here. And it’s tough, because most good software has planning and thinking and architecture underpinning it. It isn’t just a script. There are scripts, by the way, if you wanted to write a script to scrub your folders—

Paul: But not most. Not most. All.

Rich: All.

Pau: All serious long term software has serious architecture, no matter whether it was arrived at after initial development or before initial development.

Rich: And so I would make a modest, or maybe not so modest prediction here that unless there are some significant breakthroughs, vibe coding is good for prototyping, good for extremely narrow widget-style outputs, but anything with sort of any meaningful depth or surface area and you’re gonna hit a wall pretty hard. And I think when you keep banging away at it, you actually end up further away for all the reasons I just alluded to.

It’s a tricky, tricky problem. It’s one that we sort of foresaw at Aboard. I’m not saying that we solved it, but we took a very different approach around it, and we took a different bet, which is before code gets written, a ton of conversation and work and thinking happens. So let’s simulate that first, right? And that’s not us hard selling Aboard. We just knew—our instincts told us that, I don’t think this gets you there, right? And we’re going to have to take a different approach.

Paul: I mean, I saw, two people online, Simon Willison and Tom Coates, were having a debate about whether someone should go get a computer science degree right now, among other things. And it was a really interesting one because I do think that, because—I do think this interface will become a really big part of software building, because it’s very useful for understanding and introspecting a schema, or figuring out, like, you know, learning where the bug could be. Like, it’s one of the best tools for teaching you about your own code, or about code in general that I’ve ever seen.

Rich: Agree.

Paul: It can, because of the parts that can analyze language or analyze symbols, it has real power that way. But it is, that architecture aspect is, it’s almost useless, it’s almost counterproductive. Because the thing that I did, where I went, “Oh my, I’ve been in this for a couple hours and trying to figure out where this goes.” I kind of know the approach I would need to take, breaking it down into all of its individual components. I know how to architect an application, basically. And so I’m able to bring that knowledge to this. Without that knowledge, I would never make progress on a thing like what I was trying to build. Like, I just, like, I need that architectural sense in order to achieve anything.

Rich: Yeah.

Paul: And so I do—I don’t know if, like, knowing a specific syntax or knowing about optimizations around math is going to be as important because this thing will always be able to help you with that stuff.

Rich: Yeah.

Paul: But the architectural components, as opposed to a lot of optimization-focused stuff, I think that will become even more important because you’ll be able to build a lot more software, but it’ll just be a big spaghetti mess unless you have a very, very rigid process working with these, with these tools.

Rich: Yes.

Paul: So I think we’re headed there. I think we are one approach. I think there will actually be thousands. I think this is kind of the conversation our industry needs to be having. But it was interesting to go back in there, Richard, because it’s, you know, when we first, one of the reasons we rebooted Aboard was we started to see this thing write code and we went, “Man, that is a change in our industry.”

Rich: Yeah.

Paul: And I think we’re getting used to that now. But it is…

Rich: Yeah.

Paul: I don’t think there’s, there is no get out of jail free card here. You have got to learn how the computer works and what’s going on in order to accomplish your goals.

Rich: Yeah, I think there will be new majors in school, I think, I think, you know, a lot of people ask us, what do I tell my kid who, you know, I think should be a, you know, you know, comp-sci major or a computer programmer or whatever. I think you still have to go learn those concepts and I think you’re touching on it. I think new skills will materialize that complement what these tools can do. We don’t exactly know what they are yet, but understand how it all works and understand architecture, I think, is really good advice for young people. You’re a seasoned programmer. Like, I am as well.

Paul: Yeah.

Rich: I don’t code every day, but we understand very important concepts that underpin everything. A lot of young programmers think they could just pick up these tools and run, and I think you just end up hitting that wall.

Paul: I’ll close on this. You know that I think that, like, I think the trillion dollars in change in the industry and the way that consultants will be able to build stuff and, and all—I think that’s all real. But I think the time horizon for me is starting to feel more like 5, 10 years metabolizing with a whole lot of other stuff as opposed to like this really rapid disjunction that we were expecting.

Rich: Yeah.

Paul: Right? I think—

Rich: It’s not gonna pan out. I agree.

Paul: This is going to take a while.

Rich: Yeah.

Paul: Well, good. All right, well!

Rich: Check out our alternative approach. Aboard does a lot of thinking. It asks a bunch of questions. It writes a few docs. A few agents get deployed. And then it takes a crack at the software tool you want.

Note, it is really geared around business software, productivity software and the like, but we took a really different take on it and we’d love to hear what you think. Check it out at aboard.com.

Paul, I just want to give you credit for showing infinite patience as I try to navigate Lebanese infrastructure.

Paul: [laughing] We’ve had a few glitches getting these podcasts recorded, but I have nothing but faith in Lebanese infrastructure long-term. [laughter] All right, hello@aboard.com. We love you guys and we will talk to you soon. Rich, I’m excited to see you back in our fancy studio with our view of Hudson Yards. And let’s get to work.

Rich: All right, have a good week, everyone.

[outro music]