Logo
Back to podcasts

Vibe Coding SimCity: Prototyping Tiny Towns with AI Dev Tools

with Joe Holdcroft

Chapters

Introduction and episode overview
[00:00:00]
Vibe coding relay: BASE44 vs Bolt
[00:01:00]
Challenge revealed: Build a tiny town simulator
[00:03:00]
Simon builds a town in BASE44
[00:05:00]
Unexpected complexity and auto-generation surprises
[00:10:00]
Timer, income, and happiness mechanics
[00:14:00]
Comparing BASE44 with Bolt
[00:17:00]
Joe starts the challenge with Bolt
[00:22:00]
Logic issues, debugging, and iteration struggles
[00:28:00]
Wrapping up and what's next: Cursor vs Windsurf
[00:39:00]

In this episode

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.

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

Chapters

Introduction and episode overview
[00:00:00]
Vibe coding relay: BASE44 vs Bolt
[00:01:00]
Challenge revealed: Build a tiny town simulator
[00:03:00]
Simon builds a town in BASE44
[00:05:00]
Unexpected complexity and auto-generation surprises
[00:10:00]
Timer, income, and happiness mechanics
[00:14:00]
Comparing BASE44 with Bolt
[00:17:00]
Joe starts the challenge with Bolt
[00:22:00]
Logic issues, debugging, and iteration struggles
[00:28:00]
Wrapping up and what's next: Cursor vs Windsurf
[00:39:00]

Resources