Watch This Overlooked AI Tool Build Me a Business in 23 Minutes

Chris Koerner uses Replit Agent 3 to build InvoiceFreely, a full invoicing app for contractors, in under an hour. The MVP includes OpenAI for processing, Stripe for payments, and Resend for email, with the domain costing around $11. He shows how to get Stripe checkout working and fix email delivery issues through DNS setup.
Questions this video answers
September 12, 2025
Up to 200 minutes
Claims about 10 times more autonomy than version 2
Stripe fee cited: about 2.9%; proposed markup/charged fee example: 3.5%
invoicefreely.com; about $11
Chapters
Replit is the granddaddy of all vibe coding apps out there. And they just released a new Update. It's called Agent 3. Agent 3 will go for up to 200 minutes on your behalf. Troubleshoot, debug, solve problems on your behalf in the background. I had to try it out. And I know that you guys love the videos where I find a business idea, I validate a business idea, and then I launch a business idea all in one go. So that's what I'm going to do today. And I'm going to show you a new method for finding business ideas that is so obvious, so stupidly simple, right under your nose every single day that you're going to kick yourself. This one's a certified banger. All right, what should I build? Well, let's go to the world's Most visited website, google.com now, as a business owner, I know that invoicing software can be a pain. And it's hard to find invoicing software that is specific to a certain industry. Let's start by going to Google Trends and type in invoicing software. Okay, I'm going to go back the last five years. Boom. Look at that. Up and to the right. Especially over the last year, for whatever reason, invoicing software is surging, so we know there's demand for it. Now, I'm going to go to google.com just to the homepage and type in invoicing software for. Okay, now, the autocomplete tells us where the demand is. It's giving us a combo of which of these keywords have the highest search volume and which of them are trending in the right direction. So the first thing it says is small business. I like that. That's kind of what we're thinking here, but it's too broad. Way too broad. If I read down the list, it goes small business free. Freelancers, contractors, mechanics, Mac large business, sole traders, yada, yada. I think it's very interesting that before freelancers, before contractors, it's small business free. That shows me there's demand for free invoicing software. Now, this is a very tricky word. Free to them doesn't necessarily mean unpaid to you or to me, because with invoicing software, Stripe is going to charge about 2.9% to process that credit card payment. But we can mark that up, and the business owners that are using our invoicing software can mark that up if they want. So maybe our credit card processing fee is 3.5%. So then we can make half a percent of every Single cent pushed through our software and then our customers can mark it up or they can just pass it on if they want. It's a win win all the way around. So now I'm going to change this and say free invoicing software for small business freelancers. Yeti. Okay, cool. Let's do. I'm gonna go all the way down here to contractors because that is a massive industry that could be a home service business, it could be a home builder, it could be a roofer, general contractor, subcontractor. You get the idea. So let's make free invoicing software that's AI enabled and built with AI because we don't know how to code for contractors. Cool. Okay. So as luck would have it, Replit just released what they're calling Agent 3 now. What is Agent 3? It's basically replant on steroids, vibe coding on steroids. Instead of it thinking for a few seconds or a few minutes, it will think and go and act on your behalf. Search the Internet for solutions, problem solve, troubleshoot for up to 200 minutes straight. It claims to have 10 times more autonomy than version 2. If you build an app, it will self test the apps in a real browser and then it will fix any issues it has automatically before even consulting with you. It can generate other agents for you and basically it just allows you to be hands off for hours at a time while it just works and grinds. So this is going to be my first time using it. Let's see how it goes. Here's my prompt. Build me a free invoicing software for contractors where my customers can use natural language either via SMS or a chatbot window. I'm actually going to change that either via email or a chatbot window to create and send invoices that have a stripe link attached. I only need a Stripe and Resend API and I'll get to that in a minute. It should be very simple. So the functional version should enable my small business customers to email or use a mobile friendly chatbot window. Something like send an invoice for $800 to Mary Smith for tree trimming services. We're going to check the box for web app because that's exactly what this is. We're using Agent 3 automatically and we're going to go, okay, now while this is working, we're going to go to Resend. Resend is basically an infrastructure layer that powers email marketing services or transactional emails such as sending an invoice from a business. I've never used Resend. I don't have an account. I just heard that it's a good solution for transactional emails like this. This is not an ad. Get started. Login with Google. Wow. I like that. One click and I added an API key. And it makes sense because this is not a publicly facing email marketing service like Beehive or mailchimp. This is meant to be the plumbing for sending emails, Mostly transactional emails. You would never use this for a newsletter or for your Shopify store. Believe it or not, just because you're watching this doesn't mean you're subscribed to my channel. YouTube's going to show you stuff even if you're not subscribed to it. Over half of people that watch my videos are not subscribed. It would mean the world to me if you just hit subscribe. Thank you so much. Okay, so easy enough with a few clicks. We already have our Resend API. I'm pretty sure under their free plan we can do what we need to do. We still need our Stripe API. So I'm going to go into Stripe now. I need to create my Stripe API key. I'm going to go to Stripe, click on developers, click on API keys. Create secret key for building my own integration. I'm going to type in invoice Biz Create. Boom. There's my key. Those should be the only two API keys I need for this. Let's go back to repl dot. Okay. It says I'll include the following features. Natural language processing to extract invoice details from text input. Mobile friendly chatbot email interface that processes incoming emails to automatically generate invoices. Invoice generate yada, yada yada. It says it's going to take 20 plus minutes to build the entire app. Yeah, I don't care about design. Let's go for it. Let's one shot. Prompt this bad boy. I'm going to see if I can give it my API keys early. Where can I submit my API keys for both Stripe and Resend? They are ready now. What replit will do now is put your prompt into a queue. It used to get tripped up because people such as myself would ask it to do like seven things all in a row. Boom, boom, boom, boom. And they would only do like two. And then we get mad over here like what are you doing? You're hallucinating. And as Louis CK would say, it has to go to space. In other words, be grateful that we have this miracle that will build apps for us. We're asking it to do too much. So repl it has gotten ahead of that and it doesn't really let us do that anymore, which honestly is a good thing because it helps better set our expectations. Now, an SMS or a texting integration for this would be perfect. That way, if you're out on a job site, you just cut down a tree, you want to send them an invoice. Instead of logging into your CRM, filling out their name, their phone, their email, their address and all that, you can just text a number and say, send Mary Smith an invoice for $800 for tree trimming services. Boom. And then Mary just gets it just by you sending a text. Okay. Or you just open your chatbot window and you say the same thing. And then you tell the chatbot what Mary's phone number is. And then Mary will get a text with a link to an invoice that has a stripe checkout link. Now, here in the United States, they have what's called a 2P registration that takes about two weeks. And that's a regulation enforced by the government that requires dirty marketers like myself to go through this long, arduous process to register a phone number to make it legal to text people, whether it's a marketing text or a transactional text such as this. So can we do that? Yes. But for the purposes of this video, that's going to take a couple weeks. You're going to do it through Twilio. You're going to create an API key in Twilio, you're going to buy a phone number in Twilio for $1 a month. Then you're going to go through the A2P registration. But in order to get something launched, we need to launch an mvp, a minimum viable product. So if we're building a car, instead of starting with wheels and then adding a body and then adding an engine, that's not an mvp. If we're building a car, we need to start with a scooter, because at least with an mvp, you can move around from point A to point B. Then you upgrade to a bike, then you upgrade to a motorcycle, then you upgrade to a car. That's the right way to build a business. So instead of waiting till we have everything Perfect, we've got a 2P registration, we have the perfect design, we have the perfect logo, we have the domain name, we have the marketing plan, business plan, and then maybe we can launch. By the time we get to launch day, we're probably never going to be to launch day because we put so much friction, so many roadblocks between US and launch day that we never launched. So we're in the business of launching fast, moving fast and breaking things. Launching with an ugly product that we're kind of embarrassed about. But that works. It works at least a little bit. Because if you're not at least a little bit embarrassed by version one of your product or service, then you probably waited too long to launch. Okay, we need a domain name for this thing. I like the name invoice freely. It's four syllables. It's easy to spell. It says what you do. I'm not pigeonholing myself into only home services or into only plumbing. Any business that sends an invoice could hear the name of that, know how to spell it, and think, this is for me. Or at least this could be for me. So this domain name is unregistered. It's 11 bucks. I'm going to go ahead and buy it. Now the haters out there will say, invoicing software is such a crowded market. There are so many solutions to invoicing software. And to them I would say, I know, but you know what? There's 33 million small businesses that all need invoicing software, and most of them are not happy with it. So I don't care. I don't care. Huge market means huge demand and more surface area for being able to stand out. More opportunity to stand out. Even if we had 100 customers on this business, that could be a thousand dollars a month. That's awesome. With almost no cost. Okay, I'm back on repple it. And it's telling me it needs my 4 API keys. I almost forgot about my OpenAI API key because we're going to be using natural language to ask OpenAI through our app, through the API to go do things for us. So we're going to click this plus button right here. Then we're going to go to secrets. This is where we store our secrets. We're going to click new secret. We're going to type in resend underscore API key and go back here. Boom. Copy. So just to confirm, I asked replit, hey, I added my resend API key to my app Secrets. Did you see it? And it's like, yes, I see it. It already has my OpenAI API key. It should have my stripe key. Nope, it doesn't for some reason. So repl it needs two stripe API keys from me. Here's a pro tip for you. The stripe secret key starts with sk and then the byte stripe public key starts with pk. All of those are in the API keys tab within the developer section of your Stripe account. Don't get intimidated by this stuff. ChatGPT can walk you all through it. So, new secret vite Stripe public key value public key is in PK now. It should have everything. Continue building. You should have all four API keys now. Please verify that they all work. Okay. It says it has all four of my API keys and it's going to verify that they're all working properly. Okay. All four are working perfectly. There it is. There's our preview. There's our dashboard. It's right there. Let's give it a shot. Send an invoice to mary Smith for $800 for tree trimming. Her email is. And then I'm just going to type in my email. It even added a dashboard that shows how many invoices I've sent out, how much I've paid this month, how much is pending, how many customers I have. I didn't ask for that. Super cool. All right, perfect. I've extracted the following invoice details. Customer mary smith. Amount 800. Service tree trimming, due date. Should I create this invoice and send it to the customer? Yes. Now, if I wanted it to not prompt that back to me, I could ask it to do that, but I kind of like confirming it. Okay. I did not receive the invoice. The dashboard updated. It shows I have one invoice and one customer, but no invoice arrived. Now, this is cool. Very, very cool. All right. I can click this eyeball and I can see the invoice that it created. This is as Mary will see it, I assume. And I see a stripe link. Let's see if that works. Okay. All right. That is cool. It pulled up stripe like. It's right there. Stripe. There it is. Boom. In case you can't see it, it's right there. That is impressive. I could pay that right now and it would work. I just click send again. I'm going to ask it. Everything is working great, except the email is never arriving to the customer. I told the chatbot to send the invoice to chris@co founders.com okay, while it's working, I'm going to go ahead and publish this on the custom domain that I bought because that can take a few minutes to populate. Let's. I want to be efficient with our time. So I'm going to click Publish. Then I'm going to click Publish. You can't publish to a custom domain until you publish to the repl.it domain first. So the reason that My email didn't send is because of the from email address. The email service is trying to send from the email address invoicesourcompany.com because there's no from email environment variable set. But this domain isn't verified with resend. That makes perfect sense. If I owned YourCompany.com and I went into resend and verified my domain name, which basically gives me the authority to send emails from that domain name. So resend knows that I'm not a spammer or a scammer, then it will send it. But I haven't done any of that. So it's now telling me to add a from email in my secrets. So I'm going to go in here and put a different email of mine in there. Now the question is, am I going to have to validate that domain name from resend? All right, it's going to retest it again. Okay. Yep, I'm still bugging out. I think I need to go into my resend account right here and add a domain. Use a domain you own to send emails. So, okay, so in order to send any emails through Resend, transactional marketing or otherwise, they need you to add your own custom domain name. Now, I don't need to go pay Google Workspace for like an actual email address that I use actively that where I receive emails. This is going to be a no reply email. Like when you get the marketing emails and it says no reply. I'm just going to use one of the hundreds of domain names I own to send these transactional emails from, even though I won't be receiving any incoming emails at those addresses. So I'm going to click add domain. Then I'm going to go into my namecheap account and I'm going to pick just one of these many domain names that I'm not using for email. This one's called ChrisGPT AI. I'm going to go to Advanced DNS. I'm going to click Custom MX. Then I go back to Resend ChrisGPT AI ADD Domain. Okay, this is telling me what to make those custom MX records. Don't be intimidated. It's very simple. You're just going to copy this. This is going to be send. The value is going to be this. The priority is 10 save all changes. Okay, back here, text send and then that. Now the text record is going to be up here. Add new record, text send, paste that, go back here, text that, and then that, text that and then that. Boom, boom. Now DMARC text, DMARC and this basically tells the inboxes that this is a trustworthy email. I'm not spoofing. I'm not impersonating someone else. Text underscore demark that. Boom. Now we're going to click. I've added the records. This can take a little time. That's cool. Right here we can check these boxes to enable click tracking and open tracking so we can see if someone's looking at our invoices or clicking on the invoices. That can help us know if we should get aggressive with them or not. Okay, let's go back into repl. Dot says everything's ready. We want to connect this to our new domain. Now, this doesn't have to be connected to ChrisGPT AI. We're just using that domain to send these transactional emails with the invoices. We want this domain to live on, the one we just bought. Invoicefreely.com right click domains. Manually connect from another registrar. Invoice freely.com okay, now you already know how to do this. We're going to go back to our domain list. We're going to go find it. Manage advanced DNS. Add new record. A at that. We're going to add a at that. Boom. Go back here. Text at that. Add new record. Okay, this is also going to take a few minutes. All right, let's go back to resend. Boom. All the DNS records are verified. You are ready to start building and sending emails with this domain. Amazing. So if I can do it, you can do it. We're going to go ahead and enable click tracking. Open tracking. It says not recommended. It can produce inaccurate results and decrease deliverability. Okay, we'll turn it off. That's fine. No risk to click tracking, however. So now theoretically, repl it should work. My prompt was okay. I added a send from email in resend. Try to send that last email again. Go back to the preview. All right, so before I told it to use the send from email. Chris send dot com. But that's not the domain name that I verified in resend. So replit was getting confused. So I said, ignore that. The domain I verified in resend is ChrisGPT AI. So the send from email can be noreply@chrisgpt AI. Now I have to update that secret. Right Here I go here. Boom. Edit. Update to secret from underscore email. No Reply@Chris GPT AI AD Secret. Okay, done. We have a pod in TK owners for people, vibe coding apps. And a pod is just a group of people that all share a common interest. They're all vibe coding apps, troubleshooting together. So if you're serious about building a business or growing a business, go to tkowners.com and join us. I myself do a weekly Ask me anything. I'll help you grow your business. I'll help you start your business. We have a second weekly Ask me anything with smart people that I have on the podcast. You're going to love it. So come check it out. Let's freaking go. Oh my gosh, there it is. I got to show you what I just discovered. Go over here. Look at this. In my junk mail right freaking there. No reply@chrisgpt.AI sent to my email invoice001 from your business name. I can change that. I can fix that. Boom. Dear test customer, thank you for your business. I literally have tingles right now. Like, this is silly. This is silly. I have tingles. The amount's not right, $150. But I don't care. I don't know why it's $150. The email worked and that was the broken part. I click on the link and it's $150. This is a test invoice. That's okay. We're going to get it to work. I'm freaking amped right now. This never gets old. Okay, I republished. Now I'm just going to go ahead and use this chatbot again. And would you look at this friggin thing right here? When I go to invoice freely.com boom. Look what you get. There it is on this custom domain name. Does it get any more beautiful than that? I can use the app right here in my custom domain name. Make an invoice for John Smith for $400 for gutter cleaning. Let's go ahead and throw it a curveball. Let's add in his address as well. His address is 123 Maple Dr, Dallas, TX 75443. And you can email the invoice to him at. This is one of my personal email addresses that's getting blurred out. See if that works. Now. I don't even know if the fixed version published yet. Okay, John Smith, Gutter cleaning. Due date, yada yada yada. Yes, create invoice. All right, well, two steps forward, one step back. It's hosted on a custom domain name, which is awesome. But I didn't get the email, so I basically told replit I prompted it to make an invoice for John Smith, yada, yada yada. And the email never arrived. Not Even in spam. Okay, okay, now here's something interesting. When I go into my resend account and I go to the first tab emails, I can see that it sent these emails. Or at least it's queued. It's queued up to send. That's interesting. Okay, if I click on this, there's the invoice and it's 400. It's not 150. So I'm going to go tell Repl dot what I learned in resend. I said these emails show as queued in resend. Does that help? If I go into my app here and I click the eyeball, I can see it. I click it, it opens a stripe link. $400 gutter cleaning. Perfect. We're almost there. We're so close. Oh, oh, oh, oh. Look at this. Look at this freaking thing right here. I was just impatient. I was just impatient. Entire screen, boom. It's in my spam. But there they are. $400 right there. Pay now. It worked. It worked. It went to my spam. We can fix that. I'm not surprised it went to spam. It's this shady noreply AI email that's pretty easy to fix, but it works. It's on a custom domain and it freaking works. So now I better get some sort of a lead capture email capture lead magnet on this because once this video goes live, you might. You guys might want to use invoice freely. Am I planning on making this a business? No. But it's really hard to create a business via a Vibe coding app and then not have it go public, especially since so many of you people are going to see it. So. All right, to wrap this up. I feel good about this. I feel confident about this. The app works. We Vibe coded it in under an hour. Replit Agent 3 is legit. It's absolutely legit. I've never had Repl.it work this good for me, period. End of story. And I've had it make very, very similar apps to this, and it just broke a lot more. So last time I built a similar app to this, it didn't have a dashboard in there. It didn't automatically add things that it thought I might like. So this is probably as about as simple as tasks can get for Replit. It can do much, much more than this. But I'm super impressed. I love it. And it works. All the APIs just work. OpenAI works. It just works. So, big fan of Relet Agent 3, and I hope this video is as much of a banger for you as it is for me. Join us at TK Owners. Share this with a friend. Please subscribe. We'll see you next time on the Kerner Office.










