Episode Description
In this hands-on episode of AI Native Dev, Simon Maple and Joe Holdcroft go head-to-head in a “vibe coding relay” challenge—building a tiny town simulator from scratch using AI-powered dev tools BASE44 and Bolt.new. With only 10 minutes, vague prompts, and no prep, they put these rapid-prototyping tools to the test. Simon leans into SimCity nostalgia while Joe battles ghost-town bugs and infinite money glitches. Hosted by Macey Baker, the episode dives deep into AI-assisted UI generation, event simulation, and how far these tools can really go with minimal human input. Part 2 continues next week with Cursor and Windsurf as Simon and Joe swap codebases to iterate on each other’s AI-born towns.
Overview
Introduction
In this episode of the AI Native Dev, host Simon Maple is joined by Joe Holdcroft and Macey Baker for the first part of a hands-on experiment in AI-native prototyping. The trio dives into the fast-evolving world of vibe coding—rapid, AI-assisted app generation—by challenging themselves to build tiny town simulators using BASE44 and Bolt.new. Neither Simon nor Joe have seen the prompt before, and both are tasked with turning a simple sentence into a functioning application in under ten minutes. The challenge showcases just how powerful, quirky, and sometimes frustrating these bleeding-edge development tools can be.
Rapid App Creation with BASE44
Simon kicks off the challenge using BASE44, which he describes as a faster, more complete alternative to Bolt. He starts with nothing more than the prompt “Build a tiny town simulator,” and within minutes, BASE44 scaffolds a full application—with a grid layout, a budget, a population counter, and pre-populated building options like schools and factories. Simon is impressed by how much the tool anticipates, though he notes its tendency to overbuild. Despite minor UI quirks, the generated app is impressively functional, even accounting for daily income, happiness levels, and building costs. Simon adds roads, tweaks town stats, and even alters game dynamics—all through conversational prompts.
The Struggles and Surprises of Bolt
Joe, a first-time Bolt user, takes the same prompt and attempts to recreate a tiny town simulator with dynamic events like fires and community concerts. Bolt’s initial scaffold is promising—it introduces a budget, public amenities, and a happiness system—but Joe quickly discovers that little actually works. Events don’t trigger, money isn’t deducted, and the town remains unpopulated no matter how much he builds. Joe spends most of his time debugging via prompt iteration, realizing that while Bolt’s UI feels professional, its internal event handling logic is flawed or incomplete. Despite several prompt attempts to fix the bugs, Bolt never quite gets the simulation off the ground.
LLM Limitations and Iteration Pain
One of the central themes of this episode is the LLM’s lack of context awareness. Joe notes that Bolt doesn’t recognize it’s running in an active dev environment, suggesting irrelevant fixes like starting the dev server. Simon, meanwhile, reflects on BASE44’s eagerness to generate code—even when it misunderstands the intention. Both highlight the tools’ poor ability to ask clarifying questions or offer interactive debugging support. The conversation reveals a broader issue with current-gen LLM tooling: while generation is impressive, iteration and refinement remain brittle.
Setting the Stage for Part Two
As the episode closes, Simon and Joe prepare to swap codebases. Simon will use Cursor to add features to Joe’s half-functional app, while Joe will dive into Simon’s BASE44 project with Windsurf. The next episode promises to be an even deeper exploration into how different tools handle editing, extensibility, and AI-assisted refactoring. Will they improve on each other’s work—or hit new walls?
Summary/Conclusion
This episode highlights the promise and pitfalls of rapid AI-native prototyping tools like BASE44 and Bolt. BASE44 offers a fast and surprisingly complete MVP, while Bolt struggles with execution despite a clean interface. The team’s honest reflections on these tools’ quirks and shortcomings set the tone for the more surgical editing to come. For developers exploring the frontier of AI-assisted coding, this episode is a compelling snapshot of where things stand—and where they might go next.
Resources
Base44: https://www.base44.com/
Bolt.new: https://bolt.new/
Chapters
0:00 – Introduction and episode overview
1:00 – Vibe coding relay: BASE44 vs Bolt
3:00 – Challenge revealed: Build a tiny town simulator
5:00 – Simon builds a town in BASE44
10:00 – Unexpected complexity and auto-generation surprises
14:00 – Timer, income, and happiness mechanics
17:00 – Comparing BASE44 with Bolt
22:00 – Joe starts the challenge with Bolt
28:00 – Logic issues, debugging, and iteration struggles
39:00 – Wrapping up and what's next: Cursor vs Windsurf
Full Script
Your listening to the AI Native Dev brought to you by Tessl.
Hello and welcome to this episode of the AI Native Dev. This is gonna be a really fun hands-on episode. If you're listening via the just audio only podcast, during this episode we will be narrating what we are doing so you will be able to get a feel of what's working, what's not as we play through a number of tools, the best probably way of watching this is via YouTube. [00:01:00] Make sure you go to ainativedev.io to view those videos. But like I say, you can get some enjoyment, I'm sure outta both. Now this is gonna be a couple of episodes actually, where we play with a number of tools, some very prototype like tools.
By that I mean AI dev tools that creates that vibe coding applications very quickly. Tools like Bolt.new tools, BASE44, those types of tools allow you to effectively write even just a couple of sentences and get a whole app created as a result as you'll see. During this exercise, we're gonna have Macey provide us with a challenge and we're gonna start off in this episode with us trying that vibe coding very quick generation of those tools. In this episode, we're gonna be using BASE44 and Bolt.new. In the next episode, we're gonna do this as two parts, in the next episode, which will be out next week, what you're gonna be seeing is us taking those applications that are created and using tools that are a little bit more surgical [00:02:00] in their approach to AI code generation.
And we're gonna use both Windsurf and Cursor to add features to the existing creations from those two tools. So during this episode, like I say, it's gonna be myself and Joe Holdcroft both Tesslers who are going to be doing that creating and narrating that too. Enjoy the episode. I'll hand over to myself.
Simon, it's over to you. Hello and welcome to another episode of the AI Native Dev. My name's Simon Maple and we are gonna be doing a fun vibe coding game today. So joining myself today is Joe Holdcroft. Welcome, Joe. How are you?
Joe Holdcroft: I'm good, happy to be here.
Simon Maple: First time on the first time on the podcast.
Joe Holdcroft: Yeah.
Simon Maple: What do you do at Tessl Joe?
Joe Holdcroft: I'm an engineering manager at Tessl, so writing code and helping make things happen.
Simon Maple: You sound extremely smart. Very smart
Joe Holdcroft: I'm glad.
Simon Maple: Yeah. And joining us a little bit later, we'll also be Macey Bakes, Macey Baker, who is gonna be giving us a vibe coding challenge.
So this is, we call, also call this a vibe coding relay, right? Neither of us has [00:03:00] seen this challenge before, we're both gonna be using completely separate tools. I'm gonna be using BASE44 and Cursor Joe, you're gonna be using?
Joe Holdcroft: Bolt and Windsurf.
Simon Maple: Bolt and Windsurf.
Amazing. And Macey's gonna provide us with a challenge that neither of us have seen. We're gonna have 10 ish minutes perhaps to do some live vibe coding that needs a name. What is that? Live coding?
Joe Holdcroft: Yeah
Simon Maple: live coding.
Joe Holdcroft: I'll workshop it.
Simon Maple: We'll get it working. Live coding and yeah, then we're gonna swap code bases.
We're gonna have an additional feature to code and we're probably gonna go less from a prototype style tool which is the kind of Bolt and BASE44 tools and more into one of those hands on, a little bit closer to the code with Cursor and, windsurf. Cool. So let's see how this goes, Joe. I'm gonna click my fingers and you're gonna turn into Macey via the power of editing. Are you ready? I'm ready. Ready? 3, 2, 1. Wow. Macey you, you've appeared.
Hey, that was so not impressive for people only on the audio only, but I know. Yeah. Joining [00:04:00] us is Macey Baker. Now Macey, this is less stressful for you 'cause you're passing over the challenge versus coding it.
Welcome back. This is your third time on podcast.
Macey Baker: As I keep saying, I do work here, so
Simon Maple: Yeah. Yeah. And if we had a third time, like gift, now would be the time I'd be passing that over to
Macey Baker: This is my gift, because I just get to watch you two struggle with this. Oh, no, it's not gonna be hard.
It's gonna be fun. I'm excited. I'm excited.
Simon Maple: Not gonna be hard for us to struggle. Yeah.
Macey Baker: Let's see.
Simon Maple: So
Tell us a little bit about this challenge then, Macey, or are you gonna pass that over and
Macey Baker: Yeah, so this is a surprise. This is a request that I have, it's not a full fat prompt. I've left it intentionally a little bit vague because I'm really curious how you both interpret it.
So I'm excited to see, see what you do.
Simon Maple: Awesome.
Macey Baker: So I'm gonna give this to you. You have a few minutes to think if you need that time, I have some note paper for you. Otherwise, ten-ish minutes to get going. Okay.
Simon Maple: Awesome.
Macey Baker: There you go.
Simon Maple: Thank you. So let [00:05:00] me open this up. Take a look at the challenge within.
Okay. I was expecting this to actually be a lot a lot bigger in terms of how much information there is. Build a tiny town simulator you have 10 minutes. Yeah. So build a tiny town simulator. My mind goes to do you remember that game, SimCity?
Macey Baker: Yeah. Huge fan.
Simon Maple: Huge fan. I used to love that. I'm thinking, okay, so there's gonna be a number of pieces here.
There's gonna be the simulator engine itself. There's also going to be the UI, which is gonna need to display that. And something I've only got 10 minutes, so something to actually keep a time check as well. So that every day or every hour of every day, something happens, almost like the, kinda like the life gen style thing where it recognizes how many people, if it's too busy. So something to display, some kind of time check. I would say we're gonna I'll probably stick with a SimCity [00:06:00] where we have a number of different things. So we have a residential, we'll have a work industry. And what was the third thing?
Can you remember what the third thing was? There were three things.
Macey Baker: It's quite a lot going on in SimCity, to be honest.
Simon Maple: It was like entertainment or something like that.
Macey Baker: It's like municipalities, hospital, transport,
Simon Maple: Oh, geez. Yeah.
Macey Baker: But this is totally up to you.
Simon Maple: I'm gonna start small. We've only got 10 minutes.
I'm gonna start small,
Macey Baker: I think that's wise.
Simon Maple: Let me, Share my screen and I'm gonna, I'm gonna go over to BASE64.
Macey Baker: BASE44 is it?
Simon Maple: Base? What did I say? BASE64 BASE64 Oh dang. Old school goes to show my security background there.
Macey Baker: What made you wanna try this? Where did you hear about it?
Simon Maple: I've used a lot of Bolt.
In the past, I've heard BASE44 described as Bolt but better. So I'm actually really keen to have a play with this. For the record, I've not touched this before, but when I look at the screen it, to be honest, it looks like a, it looks like a non dark mode of Bolt which [00:07:00] I'm absolutely happy with.
I am a big dark mode fan, but we'll see how this goes. So yeah, I just essentially have a box that I'm gonna say build a tiny town simulator. Let's just do that and see what happens. 'cause that'll be funny if it just builds me SimCity. And this is the wonderful thing about these kind of prototype style apps that it knows obviously about a SimCity and these other tiny, these other town simulators, so it could potentially create a lot of this for me without me even needing to ask.
Macey Baker: Yeah, I think this feels like the path of least resistance to me also is just see what it has in mind and kind of play along with that, like these prototyping tools. Their iterating on a very specific vision can be a bit tough.
Simon Maple: Yeah. And I think the more detailed the prompt, the more detailed the challenge, probably the harder it is for a tool like a BASE44 or a Bolt to then be able [00:08:00] to create that for me. Let's see what it's doing. It's created a building entity a town entity, a building catalog component, and a town grid component.
Okay, so this feels a little bit UI based. Wow. You see this is it. It's creating so much. Interesting. I haven't asked here. It's creating now town stats.
Macey Baker: Town stats, okay. Interesting.
Simon Maple: Which I expect a new town dialogue. This is basically creating SimCity for me.
Macey Baker: Yeah. I'm interested in, I can't really remember what role did people have in SimCity?
You don't necessarily work with specific people. It's more like no crowds as an entity, using things.
Simon Maple: The Sims allowed you to have an individual person where you can click on them and get information about them. SimCity
Macey Baker: much more of a Sims girl.
Simon Maple: Oh really? Yeah. Okay. I never really played that too much, but the SimCity, it much more kind of said, you've got this many people in your city and cared about the balance between population versus, like you say, the police or the [00:09:00] fire stations and things like that.
Macey Baker: Now, I wonder what the relationships are between these entities and like how it decided on this order. It seems to me that it's going from the bottom up. So now it says it's editing the simulator page and I'm wondering if that means. It's getting towards the end.
Simon Maple: Yeah it's done everything from building records to town records and things like that.
Okay, so it says, is it pretty much done? Created a tiny simulator, tiny town simulator where you can build and manage various buildings, earn income and, grow population over time. Some errors were detected, it's gonna try and fix them automatically. Let's have a look. There's no upgrade icon and loose side React library.
So it's chosen JavaScript as I would expect, a lot of these use that kind of like React based thing. Claude, Claude Code did that first, or not code, Claude artifacts, did that first. The way it created that, that React component, Bolts very similar.
Macey Baker: Yeah, we're seeing a lot of similar behaviors even in the [00:10:00] initial interaction.
Yeah. So this is interesting. So it's responded to itself.
Simon Maple: Yeah,
Macey Baker: you're right. I'll replace the non-existent upgrade icon. That's funny.
Simon Maple: Okay, so it said it's it's fixed. It. I've not used this before so where is it?
Macey Baker: So for those just listening, it's said, there's an error, I'll fix it, and then it, and then nothing happened.
Simon Maple: I clicked off and I clicked back on and now look. Oh wow. This is it.
Macey Baker: Oh wow. Here we go. Geez,
Simon Maple: this is insane. Okay, so it's given me a population of five a happiness a treasury. So I've got a budget. Didn't even think about that. An income. Okay, so yeah, this makes sense in the sense of me being able to to be able to, charge people for rent or whatever it is, have an income.
I can create a new town, I can save. I have a building catalog with residential, commercial, industrial, special park hospital school. Oh, wow. Look, this is it.
Macey Baker: Oh, wow, cute. It's gone for like a, a grid layout. Oh, look,
Simon Maple: that's better. Oh,
Macey Baker: and it's very responsive, love that.
Simon Maple: What if I click on workspace?
So this is my, okay, [00:11:00] this is a, oh no, this is, so this is data. So these are my, these are the tables and things that it's added. So I've got a building table and a town table in my data. Wow. I've got a bunch of code. So this has got, so this is the, yeah, here's my code. So this is not, it's funny how we didn't realize where the difference was, where the line was between the editor and the actual app
then. But this is the, this is more of the editor. So I can see my code, I can see my components. I've got a building catalog, a town grid, town stats and new town dialogue for as in components from my page, I have two entities. One is a building, one is a town. So let's go back to editor. So what I would want to do, I think, I feel like, interestingly this is too complex for what I want.
So what I want is I'm gonna say make the following, following changes to this app. I want, I want there to be a timer, which ends the day automatically after one minute. Okay, let's make [00:12:00] these things that I want to change. The second thing I want to change, let's see. I don't want the new town option to be available or to be visible.
Let's make this nice and simple. I want auto save to happen on changes. Please and always say please because we dunno where this is going, in the future we need to be kind to our overlords. Please remove the save button. I can add houses, I can add apartment buildings, so what I don't want, let's keep residential.
Let's actually play with it a little bit. Let's add a house. Look at that. I can add that there. Then it reloads the town. I can add an apartment building.
Macey Baker: Oh, and your income changed when you did that and your treasury
Simon Maple: and my treasury went down.
Macey Baker: And your happiness.
Simon Maple: Happiness has gone up at a luxury condo. I want to add roads and let's send that as an example. So do you know what's super interesting? This is, this has allowed [00:13:00] me, basically, if you look at the request that you had build a tiny town simulator. You have 10 minutes. I needed two minutes to do that and that's insane. That's ridiculous.
Macey Baker: That is ridiculous.
Simon Maple: And I think it filled so, so much in for me, the task of building a tiny town simulator is just with this type of prototyping software, it's just way too easy. I think the thing that was interesting was when I requested it because the ask was vague. My ask to BASE44 here could be vague.
Yeah. And what it gave me wasn't actually what was in my mind, but there's pros and cons of that, right? The pro of that is I can create this super quickly and actually it'll create me things that I hadn't even thought about.
Macey Baker: Yeah.
Simon Maple: The problem with that is though, I just wanted something very simple. I had in my mind as SimCity, which this is a little bit like, but also not quite like.
Macey Baker: Yeah, I'm curious like how much this deviates from what you had in your mind.
Simon Maple: Yeah, changing things are very easy though. I dunno what the next step is, what the next feature request is [00:14:00] gonna be, but I feel I could probably do that quite easy. Probably more easy in this than I would in Cursor, which I've used a fair bit as well.
But yeah, we'll see how this goes. So I can add roads now as well.
Macey Baker: I'm curious about the, this must just be like a known dynamic because each of these objects has a defined amount of happiness and cost and whatever. Is anything negative happiness, because your happiness is a hundred percent.
Simon Maple: I added four roads, which the UI sucks by the way, on this.
And it's added me. It's gone. It's gone up to a hundred percent happiness because I've added roads.
Macey Baker: Everyone is freaking out about the roads.
Simon Maple: So I'm gonna say everyone is way too happy. I want there to be a more realistic balance on happiness. Oh, did you see that? It's switched to day two now. Oh, look.
Macey Baker: Oh, your timer works.
Simon Maple: I've got a timer top right. Oh, cool. So added the timer top, right? It's telling me what day it is. I've got daily income, which now means my treasury increases. Yeah, [00:15:00] so I've gone from 400 now to 427 because my daily income's gone up to 27. Actually, I just realized where does my daily income even come from?
Oh, it comes from
Macey Baker: coming from the building. Oh,
Simon Maple: Yeah, look, everything adds happiness, but nothing removes happiness. Oh, no roads. Oh, road. Oh, look at that.
Macey Baker: Roads cost you money.
Simon Maple: My roads cost me money every day. So obviously for wear and tear. Small factories reduce happiness. A power plant reduces 10 happiness.
Macey Baker: Wow. Why don't the people like power?
Simon Maple: Yeah, I was gonna put, I was gonna put a power plant by every house, but that doesn't seem to be a, a thing now. So I want, there's be more realistic balance on happy, happiness and there we go. We're on day three now, and I got 454. And I also wanna say roads suck.
The images need to make the square look like a road, and [00:16:00] if adjoining squares are both roads, they should join. My sons just started playing a ton of Jurassic World. And this is what I'm thinking I wanna see now.
Macey Baker: Speaking of timers, by the way, how am I doing?
Yeah. Three, three minutes.
Simon Maple: Three minutes. This is, do you know what's weird is it's amazing. I've only been seven minutes and I've already got way more than what I thought I, I was gonna get in this
in this app. Yeah.
Macey Baker: So now it becomes, keep in mind, the next phase is gonna be, Joe's gonna get this same prompt.
Simon Maple: Yeah.
Macey Baker: And then you're gonna have to edit. Yeah. Joe's work and he's gonna have to edit this. Oh, this is interesting. So I wonder if you wanna do anything with that in mind?
Simon Maple: Absolutely. Anything. I'm gonna, I'm gonna change the code to make it more complex. I want, I'm just gonna say obfuscate the code.
Would that be really mean to Joe?
Macey Baker: You free to do that.
Simon Maple: What's he gonna do to me?
Macey Baker: That is the question.
Simon Maple: You see, I'm trying to make this simpler. I'm giving Joe an easier, [00:17:00] an easier next round, aren't I? The bottleneck for me now isn't the coding. It's actually you're the bottleneck, Macey. I need more information now as to as to, to the spec in order for this to actually go further. So what's it doing now? It's editing the building catalog component for some reason. Oh, for happiness. It's editing the town grid component that will presumably allow the roads to actually look like roads and adjoining squares to to look like roads as well.
Macey Baker: I do really like the what do you call it, like the little circle, the loading indicator seems silly, but like on the, so many of these prototypes, yeah, on the actual components, but so many of these prototyping tools, they're just you shoot into the ether and
Simon Maple: Yeah,
Macey Baker: who knows what's going on.
Simon Maple: And if I was to actually just spend a minute while this is doing this, to compare this with Bolt, which I've used a lot. Yeah. This is loads, it feels loads slower than Bolt. In terms of, I put in a prompt, it takes a lot longer for me to actually get something back. But what I have got back, it feels way more complete than if I was to [00:18:00] ask Bolt for the same thing.
I have this feeling that it would be nowhere near as capable as what has been shown already.
Macey Baker: Interesting.
I have to say, I'm a big fan of the workspace page once I understood what exactly it was. So this is like all of the controls, for this app.
Simon Maple: Absolutely.
Macey Baker: In one place, including the data stores and everything, which
Simon Maple: yeah,
Macey Baker: is really nice. And there's even a place there for custom domains if you wanna just go ahead and publish this, which is very cool.
And this is one of the other things that I think is gonna be interesting with when we look at the next set of tools, when we look at Cursor and Windsurf, I haven't, I, since I clicked on workspace, which is really to understand what workspace was, oh my God, that road looks awful.
For those who, for those who are watching, you'll know what I mean for those just listening to the audio, it's just basically colored these, the square is just now a color, a solid color. So that just looks ridiculous.
It's like a giant obelisk in the city.
Simon Maple: Yeah. And I think do roads?
What do roads do? Roads, oh, there's zero happiness. Oh yeah. I also asked [00:19:00] it to be more grumpy, didn't I? Apartment buildings are
Macey Baker: You did.
Simon Maple: Oh look, apartment buildings are minus two happiness. Oh, how rude.
Macey Baker: That's rude.
Simon Maple: Yeah. But a small house is plus two happiness.
Macey Baker: Oh. What they really want is a shopping mall.
Simon Maple: Oh. How do you know that? Oh, I see. Yeah. Yeah.
Macey Baker: Plus five.
Simon Maple: Oh, one thing I would change is I would say give me advice on, give me as a user of the app, advice on what I need to do next.
Macey Baker: Interesting. What are you hoping it'll say?
Simon Maple: I wanted to say actually we didn't, we haven't actually got much here on needs, like if there was a ton of houses, I would obviously need more commercial stuff, more industrial stuff, very similar to SimCity.
But, so I would want it to kinda prompt me to say, actually, yeah, you've got too many houses, you need more industry, or something like that.
Macey Baker: Like these things also should be progressively changing, I feel, the population, the happiness, et cetera, like it's very fixed.
Simon Maple: Yeah,
Macey Baker: right now to these objects. Kind of interesting.
Simon Maple: One thing I did notice is that state [00:20:00] remained over my republished then, so I went from day six to day seven.
Macey Baker: Yeah.
Simon Maple: And oh, interesting. Have you noticed since it actually made those changes. Interesting. Yeah. So it's made that change now is there advanced
Macey Baker: and the same with same with the objects, like the houses that you put.
These don't get reset. Yeah. The data is static, which is really cool.
Simon Maple: Yeah. Yeah. Okay. I've got tips now, which is absolutely useless.
Macey Baker: Oh, okay. So it's interpreted your question as I'm gonna add tips. See, that has, and this is what I've spoken to you about before, the over eagerness to just code.
Simon Maple: Yeah.
Macey Baker: It's like sometimes that's not what's required.
Simon Maple: It doesn't required doesn understand what I want. It should have asked me questions.
Macey Baker: It totally. It should have asked you questions. And what would you do if you wanted to go back a version, for example? It has got a little revert this.
Simon Maple: Oh yeah.
Macey Baker: Button on your chat, which is interesting.
Simon Maple: That is interesting. So let's see if I revert. Oh, I didn't even read that. I just clicked something. What's it revert?
Macey Baker: Vibe coding.
Simon Maple: Okay, so tips. That was quick. It just, it reverted back. But
Macey Baker: okay. So it's obviously got some kind of versioning.
Simon Maple: It doesn't [00:21:00] feel like there's a huge version control in here, but,
maybe single user revert stuff looks more like a state style thing. One interesting thing though is I've never, since clicking workspace, I've never clicked back. All I've really been doing is yeah, talking to it and looking. So it's very vibe coding.
Macey Baker: Very much that
Simon Maple: I think I'm done there. I think, yeah.
I think that's my 10 minutes, I's try and I wanna pass that back over to to Joe to see what, to see what happens with Joe.
Macey Baker: Can I ask before we move on? Yeah. What did you think of BASE44?
Simon Maple: In terms of rapid acceleration from idea 1, 2, 3, 4, 5 words that I posted in build a tiny town simulator to what seems like a fully working, fully working reasonable click tested app that does certain things that I expected it to do.
Macey Baker: Yeah.
Simon Maple: Really amazing. It would take me well over a week to do something like that with my very limited front end skills. Joe is much, much more of a front end developer, so he's probably gonna look at this and feel like it's absolutely [00:22:00] bastardizing his his question. But for me, yeah, this is amazing.
I'm not looking at the code, so I dunno anything about the quality, the testing, the, anything like that.
Macey Baker: Sure, sure.
Simon Maple: But but yeah, for me this is magic that this has happened.
Macey Baker: Okay, great.
Simon Maple: Let's move to Joe. Let's click our fingers and then Joe will appear.
Macey Baker: All right, Joe.
Joe Holdcroft: All right. Thanks very
much.
Macey Baker: Thoughts for you?
Joe Holdcroft: Lovely envelope. Okay. Build a tiny town simulator. You have 10 minutes. That is pretty open-ended.
Macey Baker: Thoughts? What comes to mind?
Joe Holdcroft: Tiny town. I'm imagining like a sort of dumbed down version of SimCity. It's a pretty complicated game. But
Macey Baker: it is
Joe Holdcroft: probably not all of those aspects or, those iOS games that you get advertised on if you're on the cheap Duolingo plan, which I know for a fact that you're not, but they're all build a farm and farm carrots and things like that.
Macey Baker: Yeah. Like those, like the farming ones where it's more modular and
Joe Holdcroft: Yeah. Something like that. Yeah. Interested in this like SimCity route, like you are, you're not a player necessarily, [00:23:00] you're like a God designing a town and building houses and resources and things like that.
Macey Baker: Like what are the objects, or what are the main things that must be in the town?
Joe Holdcroft: Yeah. What makes up a town? So you've got residences, houses, apartments, things like that. I feel like you need some public amenities. Hospital is always good to have.
Macey Baker: Nice.
Joe Holdcroft: A fire station and police. What happens in this town? Maybe they can
Macey Baker: The first things on the list are hospital and fire stations, so I feel like lot.
Joe Holdcroft: There has to be some jeopardy here. Great. Not a lot of good stuff. Yeah. But yeah, maybe there's like a events that come up.
They could be like positive events or bad events. I haven't used Bolt before. I don't know how good it's gonna be at making a game. This might be incredibly ambitious.
Macey Baker: Let's see.
Joe Holdcroft: I'm worried about making it a little bit too over complicated, so maybe I should not add too many types of event or too many types of thing.
Macey Baker: Yeah, I think that's probably a good idea. This is [00:24:00] also for those listening Joe's first time using Bolt, which is very exciting.
Joe Holdcroft: My first time using Bolt, very excited. So I'm interested to just see like where I get to, 'cause I'm, I'd like to find out quickly whether I'm like barking up the wrong tree and this is just, it's not gonna get anywhere close to what I'm trying to do.
So I think I'm gonna move to a prompt and see what I can come up with. So build a mini game that simulates a tiny town. The player is tasked with designing their town, which comprises of the following features: residences, hospitals,
Macey Baker: hospitals,
Joe Holdcroft: fire station, police station, and let's say, let's, something more positive maybe like a community center or like a, an events, an event space. Let's say a community center.
Macey Baker: Yeah. You need a place where people can get hurt so they can go to hospital.
Joe Holdcroft: That is true.
Macey Baker: Yeah. I'm in like when I think of a game, like
Joe Holdcroft: it's not really a game, is it? Yeah. It's more
Macey Baker: you have able to win.
Joe Holdcroft: Yeah.
Macey Baker: I guess it's
Joe Holdcroft: maybe I'm gonna.
It's like a, it's more of a [00:25:00] simulator than a game.
Macey Baker: Sure.
Joe Holdcroft: I guess you could say the same of like SimCity, like people call it a game, but you can't really win it.
Macey Baker: Lose
Joe Holdcroft: or lose, it's just,
Macey Baker: In Sims you can die. I don't know. 'cause does your town
Joe Holdcroft: well, but in the Sims you don't die. You like a character dies.
Macey Baker: Wow. Speak for yourself,
Joe Holdcroft: but you,
Macey Baker: it's very painful for some of us.
Yeah. Okay. Fair.
Joe Holdcroft: So build a mini town simulator at random intervals events will take place to test the setup of the town and its efficiency. Is that what we care about?
Macey Baker: Okay, interesting. What are these like black swan events? What kind of events are we talking?
Joe Holdcroft: Okay. Events, examples of events that you can expand.
It's not an exhaustive list. Maybe there's some sort of like a community event, like something in the community center happens. So like a, let's say, let's just say a music event in the community center, a fire takes place [00:26:00] somewhere. Oh. What about new people move into town, they need a residence.
Macey Baker: Oh, wow. Housing crisis.
Joe Holdcroft: Yeah. I'm already thinking that the scope of this is too large and I have no idea what's gonna happen when I press this button. And I haven't used Bolt before, so I don't know whether this is woefully underspecified or not.
Macey Baker: Let's see,
Joe Holdcroft: but let's find out. I'm seeing some reasoning. Is it thinking,
Macey Baker: oh wow, that's a lot of thinking.
Joe Holdcroft: That is a lot of thinking. It's, but it's way more thinking than I've put into this.
Macey Baker: It's very IDE.
Joe Holdcroft: Yeah. Yeah. So I'm dropped into a sort of IDE environment. I can see that it's building what looks like a React application.
Macey Baker: Yeah.
Joe Holdcroft: As far as I can tell, it's starting to build some components now and some state management.
So if I was building this in React myself. I, I would be very angry at myself for giving myself a task like this. I don't wanna be building a complicated SimCity style game in React. But that's fine, I have an LLM to do that for me. Oh, I see. It's it's inferred some sort of statistics about the town.
There's a treasury. We have money in the town.
Macey Baker: Oh, that's cool. 'cause we [00:27:00] didn't really say how we wanted it to be.
Joe Holdcroft: Yeah.
Macey Baker: Scored or even happiness. Any timekeeping or anything.
Joe Holdcroft: I assume when there's fires, the happiness level is low.
Macey Baker: That would be
Joe Holdcroft: emergency response.
Macey Baker: Like that would be important to test.
Are there any tests? There's not gonna be any tests I don't think
Joe Holdcroft: it is not generating tests currently. But that's fine. It would only make Simon's life easier when we get to the iteration.
Macey Baker: Yeah, that's the thing.
Joe Holdcroft: So this is seems to be the state man. Oh no. This is where random events,
Macey Baker: Custom events.
Joe Holdcroft: So where does the event take place? Need to find a building. Pick a random set. Okay. So you can have parties outside of buildings. That's cool. Oh crime, I forgot about crime.
Macey Baker: What's a health emergency? Oh my God, do you know what? It's too soon. Way too soon.
Joe Holdcroft: Health emergency is worse if the hospital is far away.
That is true. Oh, okay. Crime is worse if the police station is far away. That's a philosophical point.
Macey Baker: Yeah. Interesting. Is it, okay, so we've got severity for events. Is there any other [00:28:00] property? Oh.
Joe Holdcroft: Looks like we have an application straight into preview. Okay, cool.
Macey Baker: Wow. Okay,
Joe Holdcroft: so now I have to understand a game that I've just designed.
It's not a game. A simulator.
Macey Baker: A simulator.
Joe Holdcroft: So it's given me $10,000 to start with, which doesn't seem like enough to build it town, but I'll give it a go. And 70% for the happiness, health, safety and health.
Macey Baker: $10,000. Yeah, that's a little tight, I would say.
Joe Holdcroft: So let's see if I can build, I'm gonna put row of houses here.
Row of houses here.
Macey Baker: So it actually made, it did make everything that you asked for. It doesn't seem like it's missing anything.
Joe Holdcroft: Hasn't missed anything. It wasn't super well specified. Yeah, and it has added a bunch of things as well. Like it's added this concept of money.
Which I realize, I think I'm getting these houses for free, the treasury, I still have $10,000.
Macey Baker: Oh wow.
Joe Holdcroft: Unless that happens when I move the next day, I don't know. Okay. So that's
Macey Baker: okay. So that's a little janky, right?
Joe Holdcroft: Yeah. Okay. Fire [00:29:00] station.
Macey Baker: Yeah, you should be well broke by now.
Joe Holdcroft: Let's see what happens. I'd love this bug though. It'd be great if life works like that.
Infinite, infinite money. Day two begins. Income $0, but that's fine 'cause I've got infinite money anyway.
Macey Baker: That's fine. 'cause yeah. Rosebud hack,
Joe Holdcroft: and now it seems like nothing's happened, but am I waiting or.
Macey Baker: That's a good question. I feel like the time
Joe Holdcroft: Do I just keep advancing
Macey Baker: is funny.
Joe Holdcroft: Should I'm gonna advance the next day again.
Day three begins income $0. Nothing's happened still.
Macey Baker: How are you supposed to get income? That's a question.
Joe Holdcroft: Good point. Taxes, maybe. People come.
Macey Baker: Taxes,
Joe Holdcroft: pay taxes. Yeah.
Macey Baker: Also, when are these events gonna happen?
Joe Holdcroft: It doesn't seem to be doing much of anything. The sort of the design for this grid system thing is kind of nice there. Works.
It's fine. I've maybe evolved the emojis into some incredibly great and detailed little hand drawn icons, but so it seems like nothing happens in this town. Nobody comes into the town.
Macey Baker: No money is spent,
Joe Holdcroft: no money is spent, no events [00:30:00] happen
Macey Baker: and the stats never move, which is interesting.
Joe Holdcroft: Yeah, the stats never changed. Nothing is happening basically. So I guess I'm gonna go into the prompt and tell the LLM that it has not delivered on its promise. So this is where I find out how Bolt is at iteration.
Macey Baker: Yeah, and bug fixing
Joe Holdcroft: game doesn't seem to do anything as I move through the days, nobody comes to the town.
Population stays at zero. And no events happen. Also, I seem to be able to spend infinite amounts of money, prefer it didn't fix that, but it would be good if it did. Let's see. The main problem are in the event system timing and the game logic for population growth and money management. That would make sense.
Macey Baker: Okay. So it has diagnosed that really quickly,
Joe Holdcroft: but it, has it diagnosed it because it's just said the main problem is that the stuff doesn't work. That you have said doesn't work. It's not like the root cause is this particular bug. So it's rewriting, at least it has the appearance. Oh yes. It's [00:31:00] rewriting some of the files, but not all of them.
Macey Baker: Okay.
Joe Holdcroft: So that's cool. Event system. Let's see if any of this is reduced to 10 seconds for more frequent events. That seems to indicate that I should leave it, which is this a real time simulator? This is not,
Macey Baker: but then it says you, you have to press to advance.
Joe Holdcroft: But maybe within the day it's. Surely I don't have to wait 24 hours before I click the button.
Macey Baker: Yeah.
Joe Holdcroft: Okay. Let's see. Okay. There's still this bug, and I still seem to have infinite money. Two hospitals next to each other for some reason to
Macey Baker: change.
Joe Holdcroft: There's no one in the, there's no one here but there but who, but the sentiment of happiness has dropped significantly.
Macey Baker: Why are they so unhappy?
Joe Holdcroft: Nobody is very unhappy. Day three. Aha. This is new. Day three begins income zero maintenance minus zero, population zero. So it still doesn't seem to be,
Macey Baker: yeah,
Joe Holdcroft: doing anything.
Macey Baker: People aren't moving here because the happiness is 30% and there's nobody even there.
Joe Holdcroft: What if I just put loads of community centers [00:32:00] everywhere? Will that bring joy? No. Seems like it will change the statistics once and then nothing happens. Maybe I've given it too complicated of a task, but let's see. It seems that nothing happens still. The main issue seems to be that population never grows, so the other statistics get stuck oh wow. The fire causes significant damage.
Macey Baker: If fire station distance equals infinity, I suppose if you don't have a fire station, that's a real problem.
Joe Holdcroft: Infinity far away. Yeah.
Macey Baker: Infinity far away.
Joe Holdcroft: But this seems like it has some nice like feedback for the user and some, it was pretty basic, but. Nobody went to the music venue.
Macey Baker: Yeah. The logic for these events is really quite cool.
Joe Holdcroft: It seems sound, I get my main intuition is that there's probably just a small bug somewhere that's making nothing work. Which has, yeah, the appearance of less stuff working. Okay. I've already spent all my money, so yeah.
Macey Baker: You only have a couple minutes left.
Joe Holdcroft: Oh [00:33:00] gosh. Okay.
Macey Baker: Keep in mind that Simon is gonna take over this code base and expand it.
Joe Holdcroft: Interesting.
Macey Baker: Is there anything you want to change? In anticipation of that,
Joe Holdcroft: I could trip him up. I could obfuscate the code or, make it more difficult to work with, which feels a little unfair because it already doesn't work.
Like I, I cannot get anyone to move into this town no matter what.
Macey Baker: You could just pretend that you did that on purpose. There we go. Job done.
Joe Holdcroft: This is my town. It's like an a, an abandoned town, from,
Macey Baker: it's a ghost town. It's a ghost town.
Joe Holdcroft: It's been like designed and no one's moved in. It's immediately become a ghost town.
Macey Baker: Brutal.
Joe Holdcroft: So how long have I got? I wanna give one more go at trying to get it to actually work and then I'm interested to obfuscate the code a little bit and make Simon's life a little tricky.
Macey Baker: Two minutes.
Joe Holdcroft: Two minutes? Okay. Let's do
Macey Baker: see if we can do both.
Joe Holdcroft: Okay. Please fix the population growth a random but sensible number of new town folk.
Macey Baker: Town [00:34:00] folk
Joe Holdcroft: will arrive every day. This can also be zero.
Macey Baker: I like that. I feel, honestly, I have a huge amount of trust in LLMs for defining what sensible means.
Joe Holdcroft: Can't tell if you're being sarcastic there or not. No. Okay.
Macey Baker: It wasn't always the case, but now I'm like, I can just say don't make it insane, and it has some idea of what that is.
Joe Holdcroft: Okay. I think I'm in a stuck state. This message didn't complete its response and it's spinning.
It's nice having, yeah,
Macey Baker: That's how you would go back is just by clicking undo. Not that you should do that.
Joe Holdcroft: Oh, I see. Going through the version. Oh, undo each individual change that you made.
Interesting. Yeah.
Macey Baker: Oh, I guess it's kind a nightmare though to do one thing at a time,
Joe Holdcroft: but I wonder if you can 'cause it, I see the undo's diabled on the previous ones, but,
Macey Baker: oh, interesting. Maybe it's only got like previous and current as versions. Oh, interesting. Okay. So the Game Reducer getting a lot of action.
I feel like this has been edited quite a few times. Yeah, at this point
Joe Holdcroft: this appears to be where all the state [00:35:00] management stuff is happening, which makes sense 'cause that's clearly where the bugs are.
Macey Baker: It's also just quite long and I'm always, I'm so curious how they do like context management for these things.
Joe Holdcroft: No, I'm not getting any population growth. So at this point, I guess I probably need to jump into the code, which I really don't want to do. Why not? Especially if I'm gonna obfuscate it.
Macey Baker: It's so readable.
Joe Holdcroft: Yeah.
Macey Baker: It seems like totally defensible code, but there is a lot of it, and I wonder how much of it is being actually used.
Joe Holdcroft: If these are all different state management changes that can happen, it doesn't appear that any of these are someone new comes to town. Unless that's an event. What is the town of? Okay, so it's a shame I can't jump around in this IDE.
Speaker 2: Oh yeah.
Macey Baker: You can't command click.
Joe Holdcroft: Yeah.
Macey Baker: That is a bit of a shame.
Although, can you, not that you probably are motivated to do this, but you could export.
Joe Holdcroft: I could, but I'm gonna make some more changes to it, but maybe I could just export it at this point just before I mess everything up and make it really [00:36:00] hard.
Macey Baker: That was a lighting fast download.
Geez.
Joe Holdcroft: Okay. Event types. So there's no event for new, oh no, there is new residents. It's just not happening, it's just not happening. So the severity of new residents is positive. Okay. Okay. I don't know. Interesting. I don't know where it, okay. Resolve event, new residents has residents okay. So there's some feedback for dealing with the residents.
The new resident, but where's the code that actually makes Okay. Trigger random event. Try to find a building for the event.
Macey Baker: Oh, it's literally just highlighting it for the chat. Yeah. It's
Joe Holdcroft: like narrowing down the context.
Macey Baker: Fun.
Joe Holdcroft: I tried three times to get it to fix it now. So I don't have super high hopes.
Macey Baker: That's fair.
Joe Holdcroft: That it's gonna do it again. Like what actually does the triggering of the random event, the event system component. Okay. So it is actually, maybe I'm playing the game wrong, but it's not a game. It's a simulator, but it does seem to have a, every 10 seconds an event should be happening.
Macey Baker: [00:37:00] It seems, we have definitely looked at it for more than 10 seconds,
Joe Holdcroft: does seem that way, doesn't it?
Macey Baker: I don't believe that's happening.
Joe Holdcroft: Yeah. Okay. Let's try one more time.
Macey Baker: Okay.
Joe Holdcroft: Events are not firing. Maybe we should simplify it, like maybe the event should happen when you advance the next day, rather than sitting there staring at a screen. Can we instead make events happen when the user advances to the next day?
Multiple events could happen on a single new day. There should be no set interval firing events throughout the day. Only when I've said the same thing two or three times. Here there's a bad prompting. Only when you advance to the next day.
Macey Baker: This is not bad prompting. This is very this is an actual professional software engineer prompting a tool like this.
Okay. I feel but like this, the LLM behind this is not a software engineer because it's just not thinking about things in the [00:38:00] same way. So it's interesting. Yeah.
Joe Holdcroft: So it's updated the event system and the reducer where the state management is, which makes sense. So what is the event?
Okay, this is emergency at, so this is interesting because I think this is going to say that unless there's some logic for this elsewhere, it's gonna say that New town folk coming to town is an emergency, which I guess if they need a house could be conceived, it's an emergency for them.
Macey Baker: No, it's,
Joe Holdcroft: it's possible that I've made it worse because it's possible that the game did work before when we were waiting.
So I might actually undo this. Maybe it simplified it. Can I see like a diff? Don't think so.
Macey Baker: Yeah, there is no diffing is there? And as you say, it can only go back like one, one request. It seems.
Joe Holdcroft: I will revert that because I have even less faith that is doing anything. If it simplified and still didn't work
Macey Baker: sad,
Joe Holdcroft: It could possibly say that if we just sit and wait here, something might happen, but not clear to me.
I guess what I'd [00:39:00] need to do now is I'd start like attaching a debugger or putting some console logs in there and seeing like what's actually going on.
Macey Baker: But you'd actually have to get in and diagnose what's happening because yeah, the tool itself is not really giving you loads of help.
Joe Holdcroft: No, I could, I suppose I could ask rather than say fix it.
Say, why is it not working? I wonder if that might help. Why are no events firing? My population never goes higher than zero.
Macey Baker: I see the issue. Okay.
Joe Holdcroft: Event system isn't properly treating the dev. Oh, this is interesting. The dev server is running. That's that's the whole point of Bolt here, right?
Is that it's showing me, it's running this code and showing me the output of it. That's how, it's funny that it doesn't.
Macey Baker: How funny. Wait, so it wasn't running the server before?
Joe Holdcroft: It must be because this is the output of running the server here. So here we go,
Macey Baker: so why is the saying
Joe Holdcroft: NPM run Dev.
But I guess the LLM doesn't understand that I'm in this context of [00:40:00] using Bolt, essentially.
Macey Baker: I just noticed that you burned through quite a lot of tokens.
Joe Holdcroft: Oh yeah. Interesting.
Macey Baker: 250 K.
Joe Holdcroft: Wow.
Macey Baker: That's like quite a lot. And unfortunately, quite a lot in this loop of like just
Joe Holdcroft: No progress.
Macey Baker: Please fix this thing.
Joe Holdcroft: Yeah. I haven't, I haven't realized the value yet, although the initial scaffold, I'd say was pretty impressive
Macey Baker: for sure.
Joe Holdcroft: The actual sort of getting it working. Less
Macey Baker: it even gave you a copyright if you go back to the preview.
Joe Holdcroft: Oh yeah. Copyright. Tiny town simulator.
Macey Baker: Congrats. Okay.
Joe Holdcroft: Okay, so maybe I'll just wrap this up. We'll use my, some of my little remaining tokens to make this a little. I don't, should I make it more complicated for Simon? It's already fairly, it's fairly obtuse in some parts. Maybe I'll do something a little bit more approachable, replace the function and variable names with funny and somewhat difficult to understand names to confuse the developer [00:41:00] who has to work with this code base, which is not an instruction that I'd often give at work.
Macey Baker: Yeah.
Joe Holdcroft: I'm curious what it'll come out with. If it's too, if it's too unfair, then maybe we'll just use my downloaded version. But I'm interested to see what it comes.
Macey Baker: I'm curious. Okay, so I was curious if you could even do that.
Joe Holdcroft: So it hasn't actually updated the core code by looks of it. It's just importing them as like aliasing, aliasing them to a different name. So the chaos outcome is called the YOLO meter, and the town vibes is called town mood, which if anything sounds,
Macey Baker: tweak town mood. That's not even that confusing.
Joe Holdcroft: Initial chaos. YOLO prices, money drain.
Macey Baker: Money drain.
Joe Holdcroft: I, I wonder if this is fixed. It's
Macey Baker: probably not confusing. I like how it changed initial state to initial chaos. Yeah. Very edgy. The
Joe Holdcroft: initial chaos is nothing. There's no, no one here. Everything's fine.
Macey Baker: Yeah. The chaos is, nothing's happening.
Joe Holdcroft: Okay. So this hasn't really had the desired effect.
That's fine. I think he's probably gonna struggle with it enough. And it looks like I probably [00:42:00] haven't got enough tokens to really I'm what I'd like to do is put a bunch of comments throughout the code to mislead the developer, but perhaps that's unfair. I probably haven't got the tokens for it.
Macey Baker: I feel like he'll have some trouble with it, as is, but let's see. Fair enough.
Joe Holdcroft: Okay, cool.
Macey Baker: Okay, cool. That's some good fun. Nice job.
Joe Holdcroft: Thank you.
Simon Maple: Okay, and that pretty much wraps up part one of this pretty fun experiment where we are now at the stage where both Joe and I have created two tiny town examples of an application whereby Joe used Bolt.new, I used BASE44. And the next step of that challenge is for us to take each other's creations. I'm gonna be using Cursor and Joe's gonna be using Windsurf to add a new feature that Macey will provide us once again. So look out for that next week. Thanks for listening, and tune into the next episode.
Bye for now.