A complete beginner's guide to coding with AI: From PRD to generating your very first lines of code

A complete beginner's guide to coding with AI: From PRD to generating your very first lines of code

How I AINov 5, 202545m

Claire Vo (host)

“Safe space” approach for non-codersStarting from a PRD to improve promptingToolchain: ChatPRD, v0, Cursor Agents/ComposerScope creep and when to pivot workflowsScaffolding a minimal Next.js app locallyGitHub Desktop for visual version controlAgents/rules files for repeatable doc generationPrototype generation from PRD without databases/authIterating UI/UX quickly with AI promptsREADME and repo hygiene

In this episode of How I AI, featuring Claire Vo, A complete beginner's guide to coding with AI: From PRD to generating your very first lines of code explores beginner-friendly workflow: PRD to local app with AI coding tools Claire Vo walks complete beginners through creating their first AI-assisted codebase live, aiming for a “safe space” where mistakes are expected and progress is the goal.

Beginner-friendly workflow: PRD to local app with AI coding tools

Claire Vo walks complete beginners through creating their first AI-assisted codebase live, aiming for a “safe space” where mistakes are expected and progress is the goal.

She starts with a PRD in ChatPRD, tries to prototype in Vercel’s v0, then abandons it due to scope creep and errors—using that failure to teach workflow selection.

She pivots to Cursor, where an agent scaffolds a minimal Next.js app that manages Markdown docs and simple prototype routes, then runs it locally via npm.

She adds GitHub Desktop for visual version control, creates a reusable PRD-writing agent file, generates a sample PRD and a clickable prototype from it, improves UI/README, and recaps the repeatable end-to-end loop.

Key Takeaways

Start with a PRD to get better AI build outputs.

Claire uses ChatPRD to draft a minimal requirements doc first, then feeds it into build tools. ...

Get the full analysis with uListen AI

Vibe-coding platforms can overbuild—be ready to walk away fast.

Her v0 attempt adds features she didn’t ask for (sandboxing, file management) and surfaces errors; she treats it as a low-cost misfire and pivots rather than “debugging the wrong path.”

Get the full analysis with uListen AI

Cursor can scaffold from an empty folder faster than you think.

Starting with a blank directory, she uses Cursor’s Agents flow (Composer 1 model) to generate a working Next. ...

Get the full analysis with uListen AI

Design the app around two simple primitives: docs and prototypes.

The hub is intentionally minimal: Markdown docs stored in a docs directory with live preview, and prototype pages created as routes in a prototypes directory that auto-appear in the UI.

Get the full analysis with uListen AI

Ask the agent for “how to run it” and “explain it,” not just code.

Claire emphasizes that beginners don’t need to parse code immediately; they can rely on the agent to provide npm run dev instructions and to add homepage documentation that explains usage.

Get the full analysis with uListen AI

Use GitHub Desktop to learn version control visually.

For non-technical users, she recommends GitHub Desktop over the CLI to understand diffs (green/red), commits, discarding changes, and basic history—making iteration less scary.

Get the full analysis with uListen AI

Create reusable ‘agent instruction’ files for consistent PRDs.

She adds an agents/prd. ...

Get the full analysis with uListen AI

Prototype from a PRD while explicitly avoiding real infrastructure.

When generating a task-scheduler prototype, she tells Cursor it should be clickable but not require databases/auth. ...

Get the full analysis with uListen AI

Iterate UI bugs and polish with tight feedback loops.

She spots gray placeholder text in login fields, shares a screenshot/description, and has the agent fix styling quickly—demonstrating practical, beginner-friendly debugging via observation and prompts.

Get the full analysis with uListen AI

Document the project once it works, then keep extending.

She asks Cursor to update the README as a “stop point” habit, then does a quick homepage redesign (“prettier and cuter”) to reinforce that personal projects should be functional and motivating.

Get the full analysis with uListen AI

Notable Quotes

We don't call questions dumb questions, we call them safe space questions.

Claire Vo

We are not gonna stress out about the quality of the code right now.

Claire Vo

I wanted it very simple... and it's building me a bunch of stuff I don't need.

Claire Vo

This is a bust, and that's okay.

Claire Vo

Do you want to look at files when you are building an app? No, you wanna look at apps when you're building an app.

Claire Vo

Questions Answered in This Episode

When v0 started adding “sandbox” and file management features you didn’t ask for, what exact constraints or prompt changes would you try before deciding to pivot?

Claire Vo walks complete beginners through creating their first AI-assisted codebase live, aiming for a “safe space” where mistakes are expected and progress is the goal.

Get the full analysis with uListen AI

In Cursor’s Agents vs Editor views, what beginner-specific behaviors made Agents the better choice here (and when would you switch back to Editor)?

She starts with a PRD in ChatPRD, tries to prototype in Vercel’s v0, then abandons it due to scope creep and errors—using that failure to teach workflow selection.

Get the full analysis with uListen AI

You recommended Python or JavaScript for AI-assisted coding—what’s a concrete decision rule for choosing Next.js/JS vs a simple Python app for a first project?

She pivots to Cursor, where an agent scaffolds a minimal Next. ...

Get the full analysis with uListen AI

Your hub auto-discovers docs and prototypes from directories—what file/folder conventions would you enforce to prevent the repo from becoming messy over time?

She adds GitHub Desktop for visual version control, creates a reusable PRD-writing agent file, generates a sample PRD and a clickable prototype from it, improves UI/README, and recaps the repeatable end-to-end loop.

Get the full analysis with uListen AI

The PRD agent produced a PRD that felt too long—what edits would you make to agents/prd.md to consistently generate shorter, more “solo founder” docs?

Get the full analysis with uListen AI

Transcript Preview

Claire Vo

[upbeat music] Welcome back to How I AI. I'm Claire Vo, product leader and AI obsessive, here on a mission to help you build better with these new tools. Today, I have an episode that so many of you have asked me for, which is, "Claire, if I have literally never written a line of code, I have no idea what I'm doing, I do not know how to run anything locally, how do I get started with AI-assisted coding, vibe coding, so I can just learn the basics?" And in today's mini episode, I'm gonna show you exactly how to do that, or exactly how I would do it, and I'm doing it completely live. So we have a couple hiccups, but we eventually get to a personal project hub that can be run locally on your machine, that lets you generate docs via AI, and prototype designs that you could share just with yourself or with your team. I hope this is what I'm calling a safe space episode, for you to really get started as a beginner using some of these coding tools, and learn how to leverage this technology to build interesting things for yourself, and eventually, for your team. Let's get to it. Today's episode is brought to you by ChatPRD. I know that many of you are tuning in to How I AI to learn practical ways you can apply AI and make it easier to build. That's exactly why I built ChatPRD. ChatPRD is an AI copilot that helps you write great product docs, automate tedious coordination work, and get strategic coaching from an expert AI CPO. And it's loved by everyone, from the fastest growing AI startups to large enterprises with hundreds of PMs. Whether you're trying to vibe code a prototype, teach a first-time PM the ropes, or scale efficiently in a large organization, ChatPRD helps you do better work fast, and we're integrated with the tools you love: v0.dev, Google Drive, Slack, Linear, Confluence, and more, so you don't have to change your workflow to accelerate with AI. Try ChatPRD free at chatprd.ai/howiai, and let's make product fun again. There's this concept I have in teams that I run, where we don't call questions dumb questions, we call them safe space questions. [chuckles] And the number one safe space question I still get is, "How do I actually get started coding with AI if I have never written a line of code in my life?" And we've had a couple episodes kind of giving you one-on-one on vibe coding and creating prototypes, um, we had Lee at Cursor walk through some of the components of Cursor, but still, we have not shown you how to go from zero code, no files, nothing, to a code base that you can start to work on locally, and learn a little bit more about these AI-assisted engineering tools like Cursor, like Claude Code, or even just create a little space for yourself to experiment. So today's mini ep is gonna be a building episode, [chuckles] and we are gonna do it live, and there might be some rough edges, because I don't have anything baked right now. I'm gonna show you how I would do this if I was starting completely from scratch, and we will see how far we can get in terms of standing up a little personal app on your desktop to code with using AI. And I'm gonna try to make this accessible for people who are not software engineers in your day-to-day, but this is a great episode for software engineers who wanna share this with their PMs on their team, designers on their team, or their friends looking for a way to go zero to one with coding. Caveats here: again, I did not plan this out, so we're doing it live. Two, we are not gonna stress out about the quality of the code right now. What we wanna start with is, "Can I get something running locally that's useful, that I understand some of the components of?" And we're gonna do it really fast, so it's not gonna have tons of functionality, but it's gonna get you started. And for everybody listening, I'm gonna use a couple tools today. I'm gonna use ChatPRD really quickly. I'm probably gonna prototype a little bit in v0 by Vercel. I'm gonna bring it in to Cursor. I will show you how to optionally or additionally use Claude Code, and we might bring in some other exciting tools along the way. So, um, this is one where if you wanna [chuckles] get the YouTube up on one side and your screen up on the other and follow along, I will try to make it as simple as possible to get started with nothing, and then have a AI-coded code base by the end of this... We'll see if we can do it in 30 minutes! Okay, to get started, I'm going to share my screen. And like all good products and like all good founders, [chuckles] I am gonna start with, um, writing a requirements document, and we're gonna make this really simple, and I thought, "What would be a good use case that's pretty accessible to everybody?" And I thought this idea of kind of a personal product hub would be really useful, especially as folks that have followed along our recent episodes with Dennis from Chime about AI-powered product management, some of our prototyping, um, with Cursor episodes, with Elizabeth Lynn. I think just, like, kind of this personal hub where you're gonna play with AI stuff is the way to go. So I'm gonna say, "Help me write a document in ChatPRD," and I'm just gonna say, "personal project," so it doesn't think I'm working on my own product. "A minimal, simple hub-"... for working on two things. Oops! Pressed Enter. So it's gonna be really anticip- [chuckles] anticipate what those two things are. The two things are going to be the documentation, PRDs, and ideas. The second thing is small interactive prototypes. I want a web app with basically two navigation items on the left, um, docs and prototypes, and I will turn this into a Next.js app, where I can write docs in Markdown and vibe code little prototypes. Okay, so this is what I'm imagining. I'm imagining I'm gonna make Claire's hub for product work. It's gonna be a super minimal web app. I want docs, where I'm going to, like, basically use AI to write PRDs and other docs and ideas, and then another folder where I write prototypes and maybe show you how to use Cursor or these other tools to, like, vibe code little prototypes in this folder that then you can see over time. And the core audience is myself, so this is just for me, um, so I can build something simple. [typing] You can hear my typing 'cause I have nice nails today. But it's going to write me a quick PRD, um, for my personal project, um, and really outline what I wanna do. The reason why I like to start with PRDs is really you just get better results out of the next step, which will be a kind of like vibe coding, prototyping step. And so while this is a little bit of time, I think it's really worthwhile to do, because then in our next step, we're not gonna be spending so much time on prompting and other aspects of this work. So this is gonna generate a PRD. We'll probably, like, spin through and come back when it's ready and send it over to v0. Okay, my document is done. I'm just gonna just read the top. I'm gonna be the laziest PM, 'cause again, this is a mini episode, not a big episode. And my general goal, I want to quickly draft out product ideas in Markdown format. I want to simple- seamlessly switch between writing PRDs and coding prototypes. I wanna organize my documents. I wanna see a live preview. Okay, sure. Why not? This looks great. So then I'm just gonna open this in v0, which is my preferred, um, prototyping app for this particular use, use case. The reason why, um, I like v0 for my initial prototyping is, one, the UI tends to be pretty, like, streamlined and nice-looking and pretty. Um, two, it's gonna be really easy to take this into the next step of getting it in GitHub, getting it in Cursor, and actually deploying it, and I find that people often think that the scariest part is actually connecting their vibe coding, um, their vibe coding prototype with an actual deployed experience. And I think Vercel's done a nice job, shout-out to my friends over there, um, of setting that up. That being said, like, pick your vibe coding platform of choice. Lovable is lovely. Bolt is lovely. Replit is lovely. You know, all of them are lovely. Um, I'm just gonna prefer this one for this workflow, 'cause I'm actually gonna pull this into code and show you some alternate ways you can deploy this app at some point, and I know that's a part that a lot of you have questions about or are curious about. So it's gonna help me build this personal project hub. Um, a couple kind of like keywords for you all as you go down this, um, vibe coding path is Vercel is definitely gonna build this in Next.js, so it's gonna be, um, JavaScript-focused. I always tell people, if you're trying to get started with coding with AI, you pick one of two languages. You pick Python, 'cause it's easy to read, um, or easy to write and read, and you pick JavaScript, because it's easy to see. Um, I don't think JavaScript is actually the most readable language. Python, I think is, like, really easy. You can literally read it and understand what's happening. Um, JavaScript's a little, little, little more fancy, um, has a, a couple, um, syntactical things that are pretty unique to that ecosystem. But JavaScript, you can, like, get a website out of, which, [chuckles] which we all, all really like, and there's a couple extra hops, uh, and steps with Python. So this is gonna generate basically a Next.js, um, app and repository for you that I'm actually eventually not even gonna use in v0. I'm gonna pull into Cursor. So you can see here, it's building a lot of these components we talked about. Again, for people who are like, "I have no idea where to start. I downloaded Cursor. I opened it up. What do I do?" There really are two steps. You could do this whole step in Cursor, start from zero. It will definitely scaffold out a repository for you. But I like for beginners to start in a vibe coding kind of platform like this, because you can really see it first. They have this web-based browser that you can look at. You don't have to worry about running it locally, and you can really focus on the things that I know some of you non-technical people care about, [chuckles] which is, like, how it looks and how it works, and then we'll, we'll worry about the code. And I feel like somebody like starting with an IDE, like Windsurf or Cursor or VS Code or whatever, you really start worrying about the code too early for somebody who is not technical. So let's let this generate, and then I will come back and show you how I will pull this into Cursor. This is still generating, and one of the things that I wanna call out for people, again, we are doing this live, so I'm gonna show you exactly the pros and cons of following a flow, flow like this is-... It did make a pretty good PRD, but I did try to tell it to keep it simple. And what I've noticed as a lot of these, um, AI-assisted coding platforms try to take more, more of the end-to-end application building and are s- trying to compete on the complexity and completeness of the applications they can generate, what I have noticed over the past couple of months is that I've seen a lot of scope creep, um, be built into how these more agentic implementations of these coding tools work than maybe we want. And so again, I wanted it very simple. I wanted a place for my documents. I wanted a place to prototype code. Um, I wanted it in Markdown, and it's building me a bunch of stuff I don't need: file management, um, a sand- I, I saw it had a sandbox, um, for coding. Like, all sorts of things that I didn't actually say I wanted, and is far beyond, I think, the complexity of the product I wanted to generate for this use case. So we're gonna see what we end up with, otherwise we'll take a different path. And again, I'm just showing you this so you all can understand what you're gonna get out of these tools, and how you may have to back out of a current path in order to find the right path for you moving forward. And so it may have been a mistake to generate this, because the app, the v0 app, went like ham on [chuckles] on the requirements and built me something very fancy, which is nice, but is maybe beyond what I wanted to start with. So I'm gonna see here, documents. Okay, we got errors. Already off to a bad start. Let's go back to the home, prototypes, but no, I don't want this. I don't want this code here. I just wanted the code to be generated normally. So you know what? This is a bust, and that's okay. Even for a mini app here, having this be a bust just shows you if you play with these tools, you can figure out the right workflow for you, and then it's pretty cheap to walk away. I've spent... I'm looking at our recording timing. I've spent 10 minutes so far on all of this, including mostly waiting time on loading, and it didn't end up what I wanted, and guess what? Totally fine. So we're gonna back out. We're gonna give up on our Vibe Coding platform, 'cause it's gonna take too much back and forth to get to the simple thing I want, and I am going to start this from scratch directly in Cursor. Okay, so that was a total bust. We made a PRD. We tried to Vibe Code it. The Vibe Coding was way too complicated. I don't actually want it to be that complicated for the sake of this quick start tutorial, so we're gonna go directly into Cursor and see what it looks like in that direction. And so I have opened Cursor. It is, um, opened to a empty directory. That directory is actually named Civo, 'cause this is gonna be my personal project. There are no files. There's nothing in it. So all you have to do is go into your file browser, create a folder that's empty, open that folder in Cursor, and then I wanna share a couple things about Cursor 2.0 that has been, um, released in the last week. One is they now have two different views, an agents view, which is much more focused on what you're going to build and, um, instructing the agent or multiple agents that are working in your code base, and then an editor view, which is very similar to what Lee showed us in a couple episodes ago, which is your files on your left, I have z- zero files, your code in the middle, and then your chat or agents on the right. And I'm actually gonna use the agents flow for this, because, again, I'm trying to get started for beginners, and I wanna show you how easy it is to run. So I'm gonna go to agents, and I will zip back to my- I will zip back to my PRD. I am actually just going to copy it as Markdown, 'cause I'm feeling super lazy, and I'm gonna say, "I want a very simple Next.js app set up where I can keep a repository of Markdown docs, PRDs, and code in different directories, little, um, prototypes that will be displayed in the app. Here is a PRD, but keep it super basic." The other thing I'm gonna show here is I'm gonna use, um, Cursor's new model, Composer 1. The reason why is this is a mini app, and Composer 1 is so freaking fast. It is fast. You guys did a good job there. Um, of course, you could switch what model you wanna use, but we're gonna use Composer 1 for the sake of this and see how far we get. Oh, I should also say up here, "This PRD, c- keep it super basic. We're starting from scratch, so give me all, all the steps I need to set up and run this." Okay, so let's see what, um, this Cursor agent does. It's gonna run a bunch of install files. So it's gonna create a Next app. It's gonna install TypeScript, Tailwind, ESLint, a bunch of stuff, um, essentially just a couple libraries that will be very useful for you to use. Um, TypeScript will be the typing language, and the types will be the types. Tailwind is a really nice CSS library that makes things look nice. ESLint, make sure you write good code, and it's creating the project structure. It's double-checking it. It's also installing a couple libraries, including displays of Markdown and GitHub flavored Markdown, which is GFM, if anybody's curious about that, and it's starting to write a couple pages for me. And so again, look at this thing. It is-... blazing fast. Rumor on the street is it's a, uh, a trained Chinese model, so we'll see what kind of [chuckles] non-English language characters we can force this thing to, to show up. But, um, why I like Composer 1, again, this is not the most complicated app in the world that we're building. It is not super fancy. I just wanna show you how fast it is. So again, maybe this was the right way to do it for beginners, which is, you know, if your vibe coding tool is just going too far in terms of how to, uh, what features are in your app, just go to Cursor and start from scratch and use Composer 1. It'll keep it very simple. Now, I have in the editor a bunch of files. Does this help any of you that are new to coding? Absolutely not. Do you know what these files mean? No way. Do you wanna look at files when you are building an app? No, you wanna look at apps when you're building an app. And so you can just really just go into the agent and say, "Cool, but how do I run this?" [chuckles] And it will actually give you the instructions on how to run this. So this is running a camp- uh, this is running a command, npm run dev runs a local server for your, um, app. Okay, and we can pull this up, and now I have running locally on localhost:3001, I have my personal project hub. You can see this welcome document. Perfect, this is exactly the level of complexity I wanted, and then prototypes, which is just a little, um, hello world prototype. I don't actually want the HTML, CSS, and JavaScript exposed here, so I'm gonna go back to agents, and I'm gonna say, "You got this almost right." "You got this almost right, but I don't need the code snippets, snippets in, um, the prototype section. I just need to be able to put routes," routes are like page paths, if you don't know. "Routes in this app that I can fill with code, components, and display to my colleagues." So again, it thought that I wanted, like, a real prototyping tool. Um, v0 thought I wanted a very real prototyping tool. I just want literally a place to show, show some things, and so it's generating an update, and so now you can create and edit Markdown documents. You can, um, show prototypes and routes, and let's see if it has improved what I want to see. Yeah, switching, storing component code directly in the rou- route files, which is exactly what I want. Again, you don't have to read this code. Maybe I'll release this repo, and you all can fork it and try for yourself, but it's moving very fast to create a second part where I can put some code in. And the reason why I wanna do this is I wanna show you how you can manage documents in a Cursor repository like this, and then I wanna show you how you can manage code in a repository like this. Again, I am not going to explain to you what this code means. You can use the Cursor chat to read all the code, explain what it means. We're just gonna trust that it shows up in the web app, and it's what I want. We're running it locally. There is very little minimal risk here, for the most part. Um, it's a pretty simple thing, and so I just wanna give you all a couple ideas on how to get started, zero to one, with something that's really simple in Cursor. Okay, this is exactly what I want, which is I don't want the app to, like, let me create prototypes. I literally just wanna be able to code them and show them to you all, and so I just have to create directories in this directory, in my code base, and show them. With documents, it's really cool how it works. So one of the things I would do once this is done is I would say, "This is exactly what I want. Please explain to me how the two, um, user-facing functions work, and actually put some instructions on the homepage." So again, I'm not gonna read the code. We're doing this fast, but I do want to make sure I understand how it works, and so it's going to put in some documentation directly in the, um, homepage of my app to explain how it works. So okay, let's read how documents work. I click a new doc. It creates a Markdown document. Files are stored in the docs directory, which is great, can be edited directly in the browser with live preview, which is exactly what I want, and prototypes, I just manually create them in my code editor. Any directory I create in the prototypes will automatically appear here, and I can create a demo page app, and it will go. Now, this is exactly what I wanted to start with. Again, about 10 minutes to get this going, and it's a much simpler place for us to start working on our personal project hub. And so while I had a misfire with a vibe coding tool, does not, does not really matter. All that matters is that I got to the thing that I wanted to get to. So let's talk about next, how I would actually use each of these kind of flows, how I would set up some Cursor-style rules and agents to kind of manage what, um, how my work happens here, and I'll show you how to create a document and how to create a prototype in vibe code along the way. Okay, so I was a lazy girl and did not initialize a GitHub repo, but this is a very important step for any of the technical, non-technical folks out there. I know for software engineers, Git is sort of secondhand on how we manage our code projects, but again, this is a safe space episode, so we are gonna tell you, um, how to initialize a GitHub repo and what you could use it for. And-... again, this is an episode for non-technical folks just use the GitHub Desktop app. It will make the primitives of Git in terms of files, change tracking, diffs, pull requests, so much easier to learn if you visually use the downloaded GitHub Desktop app, versus trying to understand this through the command line. So it's one of these things that, um, sure, you can have your AI agent sort of, like, vibe code you commits and things like this using Git in the CLI, and I just think the visual of the GitHub Desktop app is really gonna help you understand what's going on in your code. And so we're gonna add this repository to GitHub. I- it is in my projects, and it's called Civo. Um, and we're gonna create that repository. We're just going to, yeah, add some stuff to the gitignore file, create the repository. Let's see what's happening. It should be creating this in my GitHub app, and it has, and [chuckles] you can see my initial commit has all the original files, and then, um, gitignore, which is what files are gonna be ignored by Git. I'm just going to commit everything, and we should be good to go here. We'll see how, how it goes. Um, you can see how Git works by, if I added something to this new doc, new headline, saved it, and I switched over into my GitHub repository, actually, and I, I- you, you can't see me point at the [chuckles] screen here, you can actually see this change here. Green means added, red means removed, and as you can tell, it's a great way to track the changes that are happening in your application. I'm actually gonna discard those changes, and you can see here, they are discarded here in my code. So now that I have GitHub running, what's great is I can start actually working in this app. And again, if you all, um, don't remember, it does sort of two things. My app does two things: it tracks documents, and it helps you create prototypes. So we're gonna go through how I would set up a personal project hub to do both of these things, showing off some of the use cases of, um, Cursor, and then maybe we'll show a little bit of Claude Code as well. So if I were creating a personal hub for documentation, one of the things that I would do is actually create some rules, and I would create those rules in an agents folder, because I want a documentation agent. And so I'm gonna create a new folder called agents, and I'm gonna create a new file called prd.md, and that agent is going to, um, help me create PRDs. And I'm gonna say, in this chat, "Can you fill out p @prd.md?" This is a blank file, "to be agent instructions to write a great PRD in the @mentioned docs?" Let's see if it's showing the folder. "In the docs folder. Um, PRDs should be in Markdown, and the instructions should be less than five hundred lines long for our AI agent to follow." Okay, so this is just a unique, um, way to define... You know, in Claude Code, it's called a skill. Here in Cursor, you can make it a little agent instruction, and what's nice is you can have the AI actually create it for you. So this is my PRD writing agent instructions. Um, it tells it who you are, here's the purpose, here's the structure, requirements, et cetera. Now, what I'm gonna say is, we're rolling solo. I don't need an executive summary, because I just don't care about executives, [chuckles] right now, and I want my PRDs to be much more functional. So what I would say is, "This is fine, but make the template much more functional around technical requirements, versus business requirements," for right now, for this use case. Um, so again, it's gonna refactor this file and give, um, some improvements on the template, and you will see those improvements be shipped into this file. And then what I'm gonna use is, I'm gonna use this file to then write PRDs moving forward. Um, you can see it's, it's going very, very fast. I'll let it finish up, then I'll show you how I'd use it. Okay, so this agent file is done, and you can see here it gives it a role, some core principles on its purpose, a PRD structure, and then it should give, at the end, if it's a good, um, agent, a f- uh, a checklist of steps to follow. And so this is just gonna be additional instructions that I'm gonna be able to feed into Cursor when I write a PRD, and this is saved in this agents folder. This is where I like to put my instructions, just a really easy way to @mention them, keeps them organized, and you can create as many of these as you want. Okay, so since I've written this code, I'm just going to bop over to GitHub Desktop and see that that code was added, and then I'm gonna commit this to main. Don't tell the engineers. We're just gonna commit to main today. Um, I will talk about branches another day, but today we're just committing to the main branch, 'cause I'm just running this locally. And so I'm gonna commit this agent's PRD, and I'm just going to select this file and say, "Create prd.md." That's a perfectly fine placeholder, um, commit, and now that code has been committed to my repository. Now, what's really nice about this is, if I go in my history, I can actually undo the commit. I can amend the commit. I can do a bunch of stuff, and this just lets you check in step by step the, the changes you've made to your files.... Okay, and then how would I use this agent? So really easy. I would say, "Great, now write me a PRD for..." What do we wanna prototype today? Oh, I'm working with my kid. [chuckles] So this, again, it's a very personal, uh, personal repository. I'm working with my kid on helping him do gardening, and, like, weeding, and sweeping work for our neighbors in the city. And so I'm gonna do, "Help me write a PRD for a little scheduling app, where my kid can have our neighbors schedule help with weeding, taking out trash cans, and sweeping their driveways." Okay, but this is very important stuff. And what it's gonna do is it's gonna read that PRD, uh, Markdown file, that agent instructions, and then Cursor can actually follow those instructions to create a document in the right folder. And the reason why I give this example is, of course, you could just straight write a PRD in that docs folder, or yes, of course, you could use some other template. But what I really like is just showing you how you can define a workflow in agents, reference that workflow, and then use that to create different assets in this code base that we've created zero to one. So now I have this neighborhood task scheduler PRD. Very cute, um, PRD here. Now, the magic will be, will it show up in our app? And I think the answer is yes. Let's refresh. Neighborhood task scheduler PRD. Here in the app, I can actually read it, um, here, see how it looks. It's very long. This is too long for a solo founder. So what I might do is go back to that agent's PRD and add a step that really reduces the length of those documents. Okay, so what's the benefit of something like this? Not only can I have this nice little web app where my PRDs are displayed, I can store those PRDs or documents in a local code repository that I can edit with AI directly with Cursor or whatever my AI preferred code is. I can create an agent that gives instructions on how to actually create those consistently over time, and I can do code and change tracking to see when I added new documents and how I added them. And so, while this may seem like overkill, you could just do a Google Doc or something like this, I think this document creation, and storing, and display workflow is a really nice one for anybody looking to get started with coding with AI, but needs kind of a practical application. And what I can imagine product managers do with this is start to just brainstorm in Cursor. The reason why I think it's good to do that, as you saw in Dennis from Chimes episode, is it just gives you a way to understand a little bit more about how these tools actually work, get more comfortable with these code editors, and then as you move into more code experiences, you then kind of have a sense of how all these tools work. And so just to re-summarize this piece of the app, we've created half of our personal project hub app. It displays documents that we store in this Documents folder in Markdown in a web app. Um, and I've created an AI agent to actually create those documents, which is defined in this PRD Markdown file. Next, we're actually going to code, so I'm gonna show you how to code something like this, show it in the frontend, and then we'll put a couple bows on the end and send you off at the end of this little episode. Okay, great. So I've created a PRD with, um, for a little scheduling app for my kid, where he can have his neighbors schedule help with weeding, taking out trash, and sweeping their driveways. Now, I wanna build a prototype for how this works. And if you recall, in my original requirements and in the web app, the instructions, basically how it works, is I'm gonna create routes, which are little subdirectories or folders of functionality inside the prototypes page. Um, and it will show up here in this list for people to see. Now, I'm giving a simple, silly example, but what you can imagine is at work, you could start to create just a repository of your own prototypes that you're playing with, that you're looking at, and you're learning to code with. So I'm gonna go back in Cursor, and now that I've created this, um, PRD, I can say, "Great, use this PRD to create a prototype, clickable, but does not have to be totally functional, um, with database, et cetera, in the prototypes folder, so that I can show a little of how this might work." Super simple, easy-peasy. Again, I wanna make it a prototype. I don't want Cursor to go off and, like, ask me to set up a database or any of those silly things. I really just wanna create a clickable prototype. Again, I think this is a tip or trick for the product managers out there. When you're creating your own local repository, like, you can avoid stuff like figuring out auth. You can avoid stuff like figuring out databases, especially if you're just trying to use this for prototyping, which is the exact example I'm gonna give. So I'm gonna let it run. Um, it's gonna build different files in... You can see it created prototypes, task scheduler, prototype-... it's creating a page. I'm gonna keep all those changes. I'm gonna bop over to the web app. I'm gonna refresh. I see task scheduler in here right now, and it has a sign in. Now, I don't know how this works, so I'm going to ask the chat [chuckles] do I sign in with something? How do I sign in? And it's probably gonna tell me just to click the button, so use any email and password. Perfect, easy. So I'm gonna do hello@chatprd.ai and password, and I can see that the text is gray. I'm gonna actually take a little screenshot of this bad boy to fix later. Oh, okay, and then we have neighborhood tasks, and you can create a task. You can see all the different tasks. This is exactly what I wanted. So again, it's not the prettiest app. It's probably [chuckles] not the best code, but if you're just trying to get started with how do I start to use Cursor in real code to drive value, I wanna skip these vibe coding tools, I wanna go straight to the code, I can actually see this and understand how this tool might work, and then I can go back and forth in Cursor and explain to it what I want, how I want it to be fixed, um, all that kind of stuff. And so I'm actually gonna drag that screenshot in and say, "It seems like fields have gray text. Please fix." And I can go back and forth and iterate on this code. If I'm feeling fancy, I can actually go into the code itself. I can read it. I can ask Cursor to explain this code. Again, I'm just trying to give you inspiration as a non-technical person, how you could use something like Cursor really to do very basic things in code but that have high payoff in terms of what you see and what you learn. And so let's see if this fixes our little login. We're gonna sign out. Oh, look at that! Now it's fixed. It looks so much better. So we're really happy with our prototype, and you can imagine now you can just go into Cursor to say, create a new prototype in a new folder, and it will create it for you. And again, of course, we're gonna go to GitHub. We're gonna check in, um, scheduling prototype and commit it to main. I'm gonna publish this repository in my, um, personal repository. I'm gonna call it personal project hub and publish it. That's just gonna push it to the cloud so you have a place to access it online. It's not just local. And let's see. It's all looking so much better, so I'm really happy with this. Now, I'm gonna show you a couple other things that I might do in this app to make things better. One, I'm gonna start a new agent and say, "Can you update the README for this repo?" The README is generally, like, the front page instructions and walkthrough of how the repository works, so I highly recommend when you get to a starting point or a stopping point with your functionality to update your README file. This is something that agents as well as other engineers could use to understand how your code works, and so this is gonna tell us what the features are, how to install it, what all the files are that we created, how to use it, et cetera, and that was created in just a few seconds, so that's something I highly recommend. And then again, we wanna just go ahead and commit these README changes. The second thing that I would probably do here is make it look nicer, so I think we're gonna wrap this mini episode with Claire's guide to making things look nicer in Cursor. We'll see if we can do this in just a couple minutes. So I would start a new chat here. Again, we're gonna use Composer. It's fast. We like it. Um, and we're gonna go back... I don't actually care about the prototype looking nicer. I care about this homepage looking nicer. This is really, really, really sad. So I'm gonna open Cursor. I'm gonna say, "I don't like the baseline design of the home page of this app. Please uplevel the design to be prettier and cuter. Rename it to, uh, let's call it Civo Personal Hub, and make it less basic." Again, terrible prompting, but we're gonna see what it does. It's gonna review the homepage. I think prettier and cuter is great instructions here [chuckles] , so we're gonna see what I end up with when I prompt it to look a little bit nicer. Oh, it's gonna be a cozy workspace for documents. This is... I don't know. It makes me happy. It's stupid-looking, but it's cute. And so again, when you're working on something locally, who cares? Make it fun, make it creative, play with stuff, add dark mode, all those things. I love it. You know I love a gradient. You know I love a pink. I'm gonna check in these changes. I'm gonna call it pretty and cute and call it a day. So this was my walkthrough of how to create zero to one, a code base that helps you consolidate documents, including PRDs, and helps you build out prototypes, and I think this is just a really good baseline repository for anybody, especially product managers, who are wanting to get started with writing using something like a Cursor and coding using something like a Cursor. And again, you can continue to extend this, add more prototypes, add more documents, and get started. So what were our steps? We created a PRD in ChatPRD. We attempted to send that PRD to v0.app. We got way too much functionality. It was too smart for its own good, so we started all over. We created a clean folder on our desktop. We opened that folder in Cursor. We instructed it to make a Next.js app that does these two things. Then we created an agents file to write our PRD documents, and then we vibe coded or AI-assisted coded our first little prototype that also gets displayed in this app. Um, we made it prettier. We added a GitHub repository. We checked in our code, and we added a README. So I hope this was the safe space episode you all were looking for. I get asked for it all the time, and if you have never written a lick of code in your life, I hope this gives you a place to get started playing with your own personal space. There are lots of other episodes of How I AI that can feed into this workflow. This is just a good one to get started, and I hope you've enjoyed this mini episode of How I AI. Thanks, y'all. [upbeat music] Thanks so much for watching. If you enjoyed the show, please like and subscribe here on YouTube, or even better, leave us a comment with your thoughts. You can also find this podcast on Apple Podcasts, Spotify, or your favorite podcast app. Please consider leaving us a rating and review, which will help others find the show. You can see all our episodes and learn more about the show at howiaipod.com. See you next time. [upbeat music]

Install uListen to search the full transcript and get AI-powered insights

Get Full Transcript

Get more from every podcast

AI summaries, searchable transcripts, and fact-checking. Free forever.

Add to Chrome