Parker Rex
All videos
Parker Rex

How I Made Cursor 99% More Effective (Task Master is The Move in 2025)

April 11, 2025

Watch on YouTube@parkerrex

Parker Rex pulls back the curtain on Taskmaster, showing how to fuse PRD-driven planning with automated task decomposition to make Cursor dramatically more effective. He demonstrates a 15-minute sprint to build a client contact form that posts to Google Sheets, illustrating a repeatable workflow for AI-assisted product work.

Why Taskmaster and the workflow advantage#

  • Taskmaster acts as “a product manager in a box” on the developer’s shoulder.
  • It enforces a disciplined, PRD-driven path through feature work, keeping AI output aligned with business goals.
  • Core concept: write the plan first (PRD), then let Taskmaster break it into executable tasks with clear dependencies.

Prerequisites and what Taskmaster creates#

  • Quick setup
  • Install globally:
    npm i -g taskmaster
    taskmaster init
  • You’ll need an Enthropic key and you’ll configure a project; the run creates:
  • Cursor rules (MCPs) you must not edit
  • A scripts folder with a starter JS to run Taskmaster
  • An example PRD and an enhanced PRD with RCA and roadmap
  • A task complexity report
  • A ready-to-run task JSON workflow
  • Practical tip: screenshot the MCPs/rules and keep them intact to avoid mis-commands later

From PRD to plan: how the author structures work#

  • Domain-based architecture approach
  • Write data types and map them to the data store (Google Sheets in this example)
  • Define a minimal schema for the contact form (names, email, phone, project details, etc.)
  • Capture the sheet ID and exact column mappings (A–M) to ensure clean writes
  • Crafting the PRD with AI
  • Use Whisper Flow to narrate the required UI and data flow
  • Generate a first draft with Gemini 2.5 Pro
  • Iterate: refine goals, audience, and constraints; ensure the PRD specifies where the feature lives (the contact page) and what success looks like
  • Finalize the PRD
  • Switch from “ask mode” to “agent mode” to produce a production-ready PRD
  • Include open issues, exact button/link copy, validation rules, and a precise replacement strategy for the existing form

The real-world build: contact form that posts to GSheets#

  • Project goal: replace a simple “Get in touch” form with a new project inquiry form
  • Data model (example fields):
  • firstName, lastName, contactEmail, phoneNumber
  • referral, projectType, projectDescription
  • ongoingProject, projectDetails, projectState, budget, projectScopeDetails
  • Data flow: form data writes to a Google Sheet (via a service account) with a defined tab (e.g., “website leads”)
  • UI scaffolding
  • Use Shad CN components for a modal/dialog and a link-style button
  • Form fields mapped to the PRD data points
  • Integration notes
  • You can mirror the pattern to other DBs later (Postgres, etc.)
  • The example uses Google Sheets as a lightweight DB for SMBs

Task decomposition in action: what Taskmaster spits out#

  • After feeding the PRD, Taskmaster generates a task table with:
  • id, title, description, status, dependencies, priority, details, test strategy
  • Tasks are broken into bite-sized chunks; you can “expand” to split large tasks further
  • Research and expansion paths
  • If a task is too big, trigger a deeper dive (e.g., create form components, wire up Zod validation, server actions)
  • Practical notes
  • You can set up dependencies across tasks to enforce correct sequencing
  • A dedicated “research” step helps when venturing into new patterns or architectures

Implementation details Parker highlights#

  • Frontend and UI
  • Replace the existing contact form with a new “Project Inquiry” flow
  • Form includes mobile-friendly UI, responsive sizing, and accessible labels
  • Backend and persistence
  • Google Sheets as the data sink for the form submissions
  • Service account key and exact sheet mapping are integral to the implementation
  • Validation and quality
  • Introduce Zod-based validation for form fields
  • Implement server actions to handle submission and feedback (success/error toasts)
  • Testing and polish
  • Validate timestamps formatting, input validation messages, and UI contrast (contrast checker)
  • Ensure the form height and scrolling are friendly on smaller devices
  • Iterate based on test results and edge cases

Costs, tools, and practicalities#

  • Enthropic usage
  • The workflow can incur costs; Parker notes it’s affordable in practice (example: around 50 cents in a day for heavy use)
  • Tooling ecosystem
  • Taskmaster (core engine)
  • Whisper Flow for rapid PRD drafting
  • Gemini 2.5 Pro for drafting and refinement
  • Shad CN for UI components
  • Google Sheets as a lightweight DB
  • Community and learning resources
  • Discord community for updates, automation feeds, and discussions
  • Treasure chest of UI patterns and starter patterns (Pattern references for Next.js, TypeScript, etc.)
  • Turbo Kit: a starter pack with a batteries-included setup for accelerating AI-powered coding projects

Actionable takeaways#

  • Use a PRD-driven approach to harness AI effectively
  • Write the target outcome first; let AI populate a concrete task list with dependencies
  • Treat Taskmaster as a repeatable workflow
  • Install, initialize, define your PRD, generate tasks, and expand as needed
  • Break big work into small, testable chunks
  • Use the expand feature to decompose tasks into unit-level work and clear acceptance criteria
  • Validate early with real data flows
  • Map data points to your persistence layer (Google Sheets, DB, etc.) early on
  • Iterate on UI and UX with accessibility in mind
  • Test contrast, responsiveness, and error messaging
  • Leverage the community and templates
  • A PRD library, sample patterns, and starter kits can accelerate future projects

If you want access to the PRD templates Parker mentions (including RCA and roadmap variants), drop a comment referring to “PRD templates,” and he’ll share a version in the comments.

Transcript

Hey there, I'm Parker Rex. I led tech for a startup that sold for 23 million bucks. After that, I tried my hand at building Airbnb for music. It didn't work and I decided I was going to go all in on programming. Did that for about a year and then chatb came out. Obviously, that changed everything. I decided to go full-time turning down every other opportunity in my life to go and learn how to leverage AI in marketing, in coding, and in general productivity so I could get leverage on it and be better in business. So, I want to always be at the forefront of what's going on. And today, we're talking about a tool that I just have been blown away by. It will change the way that you're working. That sounds like clickbait. It's actually legit. So, it's called Taskmaster. And we're going to try to do this in 15 minutes. I'm going to show you the primitives of it, cutting the fat of what you don't need to care about. So, there's a tool and like I said, Taskmaster, but there's only a few things that you need to know about it because it has MCPs under the hood. It has things that you don't need to care about. So, take a screenshot of this. You're going to need it. This is the magic. But what it allows you to do is keep your AI in check. So, if you're used to using these AI helpers, you're used to it being really good for a small period of time. And then it's always about finding the next alpha, finding the next trick to keep it on track. Now, having been a product manager for, I don't know, five years, and then a UX designer and then a programmer for a few years, you know a thing or two about task management. And this is what it is great at. It's basically like a product manager in a box that's sitting on the developer's shoulder and just saying, "Hey, this is what's next. Hey, is this done?" And you already do that as a developer, but it's even more helpful. And so, I think this will be really nice for you to hear the product management portion of this because that skill, that's the muscle that you can't let atrophy. A lot of the details on the fundamentals of coding, you need to know so that you can understand what it's outputting. But the actual plan that's going to become more and more and more important in the era that we're coming into. So, we're going to be doing a real client project and it is for a high-end design studio where they care a lot about design obviously because that's what they do. And this is See, I clicked the wrong one. Oops, I should reset the build. But what we're going to do is we're going to add a contact form. Really simple. They are not caring about anything beyond that. So what we're going to do in this video is take the contact page and then update it so that you can send inquiries and it'll just post back to a G sheet. Now the next level of that is I wouldn't actually post it to a G sheet. That would kick off a nurturing sequence, freebie, all those sorts of things. But for this build, that's not the case. So what do we do? Well, whenever we start something new, we need to figure out all the different components, all the different things that are involved. You can do domain based architecture, which is just where you write out the types. You write out the things that you're going to need, the data structures, and then you work up from there. I really like that method. We do kind of a hybrid of that so that we can see what exactly it is that we need. So let's grab a whiteboard and I'm setting a mental timer for 15 minutes. So, I'll come in here and there's going to be a couple different pieces, but I'll pull up the inspo they had for what they want to get done. Really simple, but it'll show you exactly how to replicate this process. So, definitely focus on the PRD part. So, if I go in here and I go into contact, you'll see they have a couple things in here. They want this, which is a shad CN side drawer, and they want a new project inquiry, which has this big old form in it. So, we need to figure out what are the data points that we need. So, I just jump over here and for speed sake, I'm actually gonna type this because on my daily uploads channel where if you're interested, check that out. It's just Parker Rex Daily. I would normally draw this, but because we're on a timer, it'll be basically interface and let's make some types for this. So, first name be a string. Last name will be a string. Contact email be a string. contact. Let's just do phone number string. And you wouldn't have to do this for something so small, but it's nice for you guys to see how I would do this because it will be helpful for larger scale things. We have this referral option. That seems a little overkill, but let's do one. And so that will also just be a string. We could do it as a type, but that's overkill for this type of project. So project type string description project description string these will all map to the things in RDB which in this case is a G sheet but normally I do Postgress are you working with an architect that would be a bool but I'm trying to think ongoing in if yes please advise company names so that'd be company details string ongoing project details project stage page will be a string budget string and then really just like a catch all but do project scope details string. Cool. So this is helpful, right? Because then each one of these will map to our spreadsheet. So let's go make that real quick. If you were doing this with Taskmaster, then you would just jump in and you'd make that a bunch of SQL statements. But you you'd take the same exact thing, right? You take the same exact kind of format that I just did. So, let's do that. And then first name, last name, contact email. Of course, I hit conditional, so I'll have to undo that. Phone number, project address, referral, project type, project description, ongoing project, project details, project state, budget, project scope details. Great. We have all that in there. This is important because when we're writing a server action or if you're using React Query or whatever, Axios, anything, you need to have the specifics of a few things. This is using a service count. So, if you're familiar with working with G Drive, a lot of like SMBs will just use this because they are unfamiliar with database. They don't care about it and it's overkill. So, this is like the easiest DB ever for something that's simple. but making sure that you have the sheet ID and then the name and it's case sensitive. So those are all details that you're doing ahead of writing the PRD which is what you're here for. So now we have that we have the sheet. Let's jump into Taskmaster. So what I did before this was I ran this command. Now if you use npm then drop the P. What that will do is it'll install it globally. Highly recommend that because you're going to use this in every project moving forward. It's that good. And then you'll run taskmaster init. It's initialization of said taskmaster. You're going to need an enthropic key before you panic and think it's going to be expensive. I've used this non-stop and I've spent a dollar over four days. You once you've run that, it's going to run you through a config. You'll answer a couple questions around what the project is and it's pretty much it. And it will then create a few files. So let's take a look at what it creates when you do it. After you run step two, you'll see the cursor now has a few rules in it. These are MDC's. This is what your cursor is going to fire when you do different actions. So this is their best practices. Do not change these. Do not touch them. This is what it gives to the system so it understands when you say things in natural language what it needs to call. So you'll never have to type those again. It's crazy. I only type these first two and then I never type any of these. But I wanted to give you those in case you want to run it in the CLI, but it's just one more thing to remember. So then you'll see those. And then under scripts, you have a new scripts folder. It comes with a JavaScript that runs the thing. An example PRD, which we'll use as a part two, but I have a PRD that I've used and crafted that's been metaparrompted and run through the gambit and works fantastic. So drop the word PRD below and I'll share that in a comment reply. And if you don't want it, that's fine. Just use this one. But I find it more effective. I've also modified it to have an RCA which is root cause analysis. So leveraging this not only for net new feature creation but if you're debugging something really good for that has a read me in here a road map. I've added this myself because they're the things that I need to do next that need to be broken into a PRD. What is sad? Oh that's right. I made another additional one. You don't need to worry about this. This is for a solution architecture document. I'm just trying to see how far I can push this thing. You have a task complexity report that quickly analyzes the complexity of all the the tasks that are created when we run the first command. So again, we would have already installed this globally. We would have initialized it. These will start to show up in here. You won't have this yet. You won't have this test. Google sheet says it's a test that I had it write because I want these to have tests around everything. It's part of its completion criteria. And then finally, you have tasks. Yours will be empty. But this will be the output. So you'll have one through 10. It's 10 by default. You can ask it to recursively go through the task. So find where things need to be broken out because if you have a very large chunk of work, it's just like developing in the real world. You need to break those things out so that they're easier to understand and you don't work on one out of order, out of sequence because there's a dependency. So if it reaches a threshold where something is a little too challenging as well, then you can ask it to do additional research. that would require a perplexity key. So you you have the option for that. You always need the enthropic key. Definitely want to use sonar for additional research. I find it very helpful. And then a best practice having spent time in the discord with the core team. They say do not touch your task to JSON. Leave it. Then I have a cursor rules. It'll install that. And then what else is in it that it comes with? I believe that's it. So let's get started on our PRD. I'm going to take the idea that we were talking about and I'm going to use Whisper Flow, which is a fantastic workflow tool to yap about what we need to build. Always use voice. This isn't a bar trick. This isn't so I'm flexing that I'm talking. There's a barrier between you and your keyboard. And the compression and data is what matters to communicate. We go faster when we talk. We don't omit any detail. So I will start to talk by holding down my function key and I'll explain everything that I need to get done inclusive of that interface. And then I'll try to include snippets. I'll try to include areas of the code. We need to create a projects inquiry form on the contact page. We will have a small block of text and a link text button using our shad CN button link variant. When the user taps or clicks on it, it will open up a modal using shad CN and have the following questions. So that's part one. And I'll just wrap that. So in here, I'm going to now go through and I'm going to link these. So I know that it's in source app components. Oh, sorry. Source app source components. Dang it. Just grab it. Main silly. Let's grab the button. And we'll grab the relative path. Cool. And then I'm going to tap or click on it. Which one do we want to use? It's not called modal. It is called dialogue. We'll copy the relative path for that. I using the shad CN dialogue located here and have the following questions. And now scoot this over and I'm going to use an OCR screenshot which I believe let me see did that work? Did not work. I need to rebind that key. So then I'll open up an assistant and I'll say give me the code block or the TypeScript code for this. Let that run. Now let's continue on the PRD. Cool. That's done. I'll wrap it. And now we will use the same method for posting the data as we did for our email signup form. Okay. So now let's grab that code. It's obviously much more helpful if you've done the thing before. If you're having trouble figuring out what the thing is, use TypeScript or sorry search operators on GitHub and find something. I found an example of this and it was just Nex.js Ge, right? So very simple and I'll grab this relative path. The pattern uses Google service account access. It uses the next JS server actions. It uses a submit or subscribe input. It's here. Let's grab that one. Okay. A subscribe input for the formutton. Okay. What else does it use? I need to bring in that key. So that would be here. Added the service key. I think that is it. That should be pretty simple. And now we've written this basic draft. It's got a little bit of code reference in it. If it was something net new, like I said, it's your responsibility to go and find a similar pattern where it's done. Documentation is another way of doing it. Now, we're going to come in here and I'm going to flip this into ask mode. This is where we're actually writing the PRD. So I'm going to use a text expander and I'm going to do exclamation point F1. That's going to open this up. I'm going to paste this inside. So you'll see there's a temp variable or a prompt variable here. So inside of PRD instructions, I'll paste that. I'll be on ask. And I always want to use Gemini 2.5 Pro. So what that's doing is it's writing out our first draft of the product requirements document. Now you might be thinking this is overkill. It is not. It is going to elevate the quality of all the work that you're doing. I've done this same process or something with way less involvement, like literally just a gallery of images, but it forces it to brute its way to a better quality product, which is just like sick. Like it'll be like, "Oh, hey, we need a optimize for page loads, but you don't have your screen reader semantics." Like, I never I never really think to do that. So, that's nice. And so now let's come back and I'll take a look. I'll read through it. That's important. Cool. Here's our goals. We want to streamline this. This is the audience. Okay. It's going to be a designated text block explaining the process. It's going to be here. What I noticed is I did not put in the contact page. So it doesn't know exactly where it's going to live. So I just want to clarify that. We'll do something similar and it will exist on the contact page. So that's forc contact.tsx. Cool. Great. Now let's open up the project so we know exactly where it's going to live because we're looking for that one shot. This is where the work is is actually this part because it'll just take it home. It's absurd. So let's take a look. Where's local host? Got it. So this is going to replace the get in touch. And so that will our new feature will replace the existing get and touch header or the existing form below the get in touch header. Great. So let's run that again. And after this I flip it from ask mode. Ask mode is always read only. I flip it from that into agent mode. So that's writes. And so what I'll do is I'm going to grab their example because the team has everything optimized around this. But because we did one before it, it's going to be a higher quality PRD. So let's grab this. And as soon as this is done, we're going to look through it. Make sure we didn't miss anything. I caught the contact page. It's very important in order to make sure that you nail it. So let's take a look. Link style button. Okay, great. Implement the dialogue. Yes. Creating the form. I'm already thinking ahead. Are they making sure that it's mobile friendly? Are we following the break points of tailwind 3, not four? We're going to have this new add email to sheet similar to that. Yes, we're going to store it using those credentials. We're going to replace existing form. We're going to provide user feedback upon submission or error. Great. So, out of scope is creating an interface, sending email notifications upon form submission. Yep. Or integrating other things. I love this. This is good. Cool. Has all of our things that we have already outlined. These are all the functional requirements. This mentions the common device sizes. And what I noticed is at the end with this prompt in particular, it asks if there's any opening open issues. So let's see what is the exact introductory text to display above the inquiry button. Well, let's just take a look. Let's find some. So again, we're saving ourselves time by just doing it right the first time. So we're going to say this answer here are an are the answers to the open issues. take those in and reddraft the PRD to make sure it is complete. So one is that here is the exact text. Two, exact text for the link button. Let's take a look. New project inquiry exact text. Three, specific validation rules around that specific validation rules. Let's use best practices for this and use zod error or validation text should beige to follow the same styles of our add subscribe input.tsx or should project state and budget be free text inputs? Great question. These should be let's see for state. Let's look at state stage. That's state. Okay. So, we're going to grab that and let's Whoops. These are going to be different, right? So, this is so beautiful because it would just it would guess these things and just ram through and you wouldn't get what you want. Uses radio buttons with the options of construction commenced, DA town planning approval, pre-da town Planning and approvals not yet started. Initial inquiries and research. Great. This is saving us so much time you won't believe it. Cool. So that is for the project state uses radio buttons. Cool. And I want to number these. 4.1 uses radio buttons. And then I'm going to grab radio button. Radio group. Is it the correct one? Let me make sure. I believe so. Set of checkable buttons. Yes. Cool. radio buttons. Grab that. Paste that. Cool. 4.2. And what is it? Project state. And then budget uses a dropdown, which I believe is selector. Let's just double check. Select. Yep. Cool. Let's grab this. I do like Let's You know what? For the ease of it, project state and budget, use radio buttons because I know the client is really obsessed with this particular thing. So, make the client happy. The options for each are in 4.1 for construction or for project state. It seems redundant, but you just want to make sure you get it right. And 4.2 for budget. No budget as yet. Seeking guidance. Less than 500K. 500K to 1.5 mil. 1.5 mil to 2.5 mil. 2.5 mil plus. and other great so now let's look at five what is the target sheet ID great five target sheet ID is found here let's grab this the same exact process would be used for a Postgress DB based on really any sort of DB but you probably already have set up a singleton for that target sheet ID rack wrap it with ticks and specific tab tab name is website leads and we want to just make sure we don't mess up the case sensitivity and I'd lock this afterwards. Great. Now, what else is it asking? What is the exact mapping between the form fields in the Google sheet columns? The exact mapping is columns A through M M. Yeah, M. I got to make sure that all of these actually are good. Yep. It shouldn't be case sensitive here, but not in camel case. They are just as you would read them in an email. Example, first name. Cool. Seven, specific success error messages. Use common UX patterns. Eight, confirm replacement strategy. Does an entire existing form section get removed? Yes, the entire existing form section gets removed. Now, that is seeming like it's a lot of stuff. It's well, it's it's because it is, right? And it's great because we didn't miss anything. So, when you're doing something simpler, it won't be like that, but this is like a bunch of random forms and things that I tried to just get in that first draft. But this is again, this is the sauce. So, now it's coming back. It's putting in the validation. It's putting in the messaging. It's adding new styling. It's using all of the relative paths that we pasted in there. Great. We have some user stories. Very, very helpful. Everything in here that we need to be successful. Great. Great. Now, take this draft and finalize it in the following format. Example PRD and write copy and write it to PRD. Great. This is the last step. Now, when I do that, I flip it over to agent mode and make sure that our existing PRD is empty. We don't need that anymore. And we're off. It's going to start writing it into there. Awesome. That completed. Now, we are on to using Taskmaster. So, what I typically do is I'll pop open a new one. I want to make sure I'm in agent mode. I want to make sure that I'm using Gemini still. I'm going to say use Taskmaster to parse the tasks from our prd.txt. txt. Let's clear this just in case it was trying to pull something else. I also cleared the relevance of the previous task history. I always like to start fresh. And that will rip. Now, under the hood, it's using the stuff that we spoke about at the top of the video. So, it's calling stuff. It is making sure that it gets the right thing. It's looking at the wrong one. Let's see. It doesn't look like there's in scripts. So, we fire that off. It's because I didn't. So, we wrote our first thing to taskmaster. So, I said, "Hey, use Taskmaster to parse the tasks." We didn't even have to remember all this stuff. We ran into a little issue where I didn't define where to write the thing. So, I was looking at the wrong space, but now we're off and it's generating the tasks underneath the hood. So, as I scroll down at the end of the process, what will happen is your task folder will be enriched. It's going to overwrite the previous things. And then you get the fancy table, which if you haven't seen, it looks nice. This is clawed under the hood doing its job right now. So, while it's going, let's take a look at some of the coolness. I scroll to the bottom. There's not any screenshots. Not even a single one in here. That's crazy. You get a nice table. So, it parsed them out. Now, I have task JSON. And you can see all the different parts. We have the project and inquiry form. We have implement implementing client side form validation. It starts at the top, right? And then you have a status. So these are all structured where you have the ID, the title, the description, the status, the dependencies as an array. Things can have dependencies on multiple other tasks. You have the priority, you have the details, and then a test strategy. So very, very cool. And all these are here. These all look good to me. This is simple stuff. The only tedious part was just getting the actual pieces of data that we needed and then each of them are in here. So next I'll just say let's start and there are MCPS that they're going to be releasing in this next version. They're a little bit buggy. I don't use them. Cool. So it says I've list the tasks. The output shows 10 pending. Cool. So it ran on the taskmaster list. Yes. Let's start. You can see it's referencing what the CLI command is. So you could run taskmaster next or taskmaster list from your CLI if you wanted to. I don't prefer that. I think it's just more stuff to do. So it's going through. It's looking. It found that it couldn't find the right path. It found the right path. And make sure you have your cursor sounds on, but now it's off to the races. It's doing its thing. See what it's done. It says that it completed it. Let's go read. So did it import the button? It did. It's replaced that previous stuff. Now we have a link text with new project inquiry. It's exactly what we wanted it to do. Right. So now I have it set to yellow mode. So it's starting on to task number two. Pretty cool. This is it. This is the whole thing. By the way, there's more to it if you wanted me to. Like I could show you, hey, I guess one of the use cases would just be does this task look like it's too vague or too big? Then you didn't break it down enough. And the keyword for that is you just say use research. But as you can see, this thing's off to the races. Let's see. This test seems quite large involving setup of many different input forms. Let's take a look at number three. It's getting scared. So into number three, we can see create the form component and let's wrap that. Has all the different details in it. It wants to break it out. So I would be fine without doing that, but let's have it break it out. s expand because this is a good use case for you guys to see. So now it's expanding on three which means it's another call and as it's that going let's pull up our enthropic console so we can see the costs. Been using this non-stop. So yeah 50 cents for a day. Pretty ridiculous to have this level of workflow. Great. It went ahead. It broke them out into let's see how did it break these set up the form structure implement the details and address fields then do the next ones. So because it has those bite-sized chunks it's going to improve the outputs. So let's open up the form. Let's see how it's doing. It's setting the state. It's starting out with just the ones the structure. Okay. Now it's coming back in. It's adding the new ones. Great. It's done with 32. It's done with 33 is adding the remaining forms. See how it does this which is kind of ridiculous. This is it. This is the setup. I'm going to pause this and I'm going to come back when it's done and we'll review. Look, it is kind of just going. Look at this. This is coding now. So, what you do now is you eat a piece of toast. Oh, no. Now I have to talk to it. Let's take a look at four. All this looks good to me. Big beefy form. We're going to hit accept because we like it. Task four involves making the ZOD schema, defining the required fields, doing the validation, integrating that client side, making it have the styles that we want. What else? Blocking it for fails. So, because it has distinct parts, it wants to expand it. So, again, we're going to run expand because I don't want to have to touch form code. That should have been the hook for the video. Honestly, no one likes forms on the whole planet. If you like forms, can you explain why? That'd be be nice to hear. By the way, while that's going, I launched a Discord and it's pretty cool because OpenAI is going to launch a new model today if they haven't already. It's 3 o'clock Eastern on a Thursday and I only know that because I just live online, but not everyone lives online. So, our community, I basically rolled out a Discord that has feeds that do automations to pull for all the news rooms for Enthropic, OpenAI, Gemini, XAI. It's pretty helpful because then that hits a classifier. So, it'll pull out the pithiest three to five bullets and all the members seem to like it a lot. Pretty cool. Plus, we just hang out in channels in the app, which is nice. I did it free, but free doesn't work. You get all these just like randoms that don't care. So, okay. Wants to refactor on 42 to have the Zod resolvers, which is, as you guys know, the validation stuff. What I'll say too with this is if it is forced to hit a 10 task threshold, it'll think that it'll think of things that you wouldn't think of, which is really nice. 43 is done. Good refactor. Good job. This thing's doing such a good job. You guys are going to love it. Okay. Can you imagine doing this not with this now? Like you just would hate it. You wouldn't be eating toast. I'd be sitting like a shrimp in my chair, upset, sad, wondering what I did with my life. But instead, I mean toast. It's good. That's a real girl, by the way. Okay. Test five. Server action. Yes. Let's expand it. Why not? Maybe that'll be the name of the video. Guy eating toast makes form. No butter on keyboard. Watch to the end to make sure he doesn't get butter on his keyboard. Make butterfly. Make butterfly. Habachi joke. Wow. Now we have the server action written. And it's verified. It's validated. This is so much better. Then when I first started using these tools, so I was coding before chat GPT, that's when I went all in. Then it came along. I was like, whoa. But it'd be a trick because it wasn't always right. So anyways, let's take a look at six functionality to write form data. Use the package, write a test. Oh, no. Let's write yes. I just want it to be right. All right, I'm going to pause this and come back because this is probably pretty boring watching this thing just dominate for so long. So, I went for a little walk because this thing's just kind of doing my job now. But I'm back and it is doing a great job still. It's optimizing the element sizing and spacing. It's making sure everything is responsive. Then it'll get to 10. We will do some testing and that'll be the end of the video. It's just absurd. just ran a contrast checker to tell me that maybe I should consider making a darker beige. When's the last time you ran a contrast checker? Never. It's crazy. Now it's refining the animations and the transitions. Nuts. So, let's test it out. We can see it removed the previous one. You can see it has this nice form. You can see it has the nice animation. When we click on it, it's a little too tall. So, I would say that we'd want to have a scroll. But if I just type in stuff, how did we have it for type? We could make some changes. I'm going to make those changes. It looks like I forgot about the options here. But alas, house big house. YouTube. Is it an ongoing one? Cool. Test. We're planning. We have this much test. Inquiry submitted. And a nice toast. Great. Now, did it right? Sure did. Great. So, we have a couple things in here. We can see that the time stamp replaced the first name and we have they're one off by each thing. So, what I'll do is I'm going to go back. This is part of the testing, right? Is instead if you weren't using a Google sheet, this would not be an issue by the way, so to be abundantly clear. But I would add this in. And then next I would just come back into here and I would take what I should have done, which is make the radio groups for the others. But you get the idea. This is awesome. I would go back into the existing check or what's it called? the existing chat window and instead of doing it in this same one, I'm gonna hit start a chat for new results or for better results. And when I do this, it actually bundled up the previous conversation, right? So very, very cool. We have a few usability issues. When we submitted the timestamp, we passed took the place of column A and was in a format that's hard to read. So, we'd say modify the format to follow the same timestamp as the email action. That'd be the first one. The second one would be we need to add the ability we need to modify the height on the form so it doesn't go off screen and is responsive slashful or responsive to smaller screen sizes we need to modify and then I'll go on and I'll write the radio groups but I'm going to wrap the video here because you don't need to watch me go through that again with forms if you made it this far that is absolutely awesome. And I appreciate you guys watching this video. Drop a comment below if you want access to my treasure chest, which is this has all the things that I like. It has examples of really good-looking UI that I've then reversed. I like the way that the Vzero signin buttons look. I like the way that the clerk stuff looks. It's got a bunch of different pattern related things in here. It's mainly for Nex.js, mainly for TypeScript, but there is some other things in here on Spa. So that's pretty cool. different data fetching patterns. It's a really nice thing. And then we also have a turbo kit that we're going to be releasing very very soon. That is a batteries included starter for all the things that you need to start vibe coding or leveraging AI in your own projects. And this is put together by myself and a member of our school, Hari. He's helping us out and we have a lot of fun in the school and on the Discord. So, make sure you check that as well. We are just growing, so we're giving a deep discount for early folks. But this is not just a school. This is like this long-term thing, media and community, AI age. Thanks so much for watching and I'll see you in the next