Everyday Hustle Jeff

Watch the series →

Stories from the hustle — composite, dramatized, and not financial advice. What this is.

The AI Tool That Almost Had a Second User

It was a Tuesday night, around ten, and I had a working demo open in one tab and a DoorDash notification I was ignoring in another. The tool did one thing: it took a short text prompt and generated a punchy 30-second script formatted for vertical video — the kind of thing you'd use if you were trying to turn a car-seat idea into a reel without spending twenty minutes staring at a blank Notes app. I'd built it mostly for myself. It worked well enough that I kept using it. That felt like a sign. It was not a sign.

I'd already shipped a couple of these small tools — the kind of thing that lives at a weird URL and does exactly one job. One of them actually has two users. One of those users is John. John uses everything I make, partly out of loyalty and partly because he believes I'm somehow adjacent to the surveillance apparatus and he wants to stay on my good side. I appreciate both reasons equally. Anyway, the reel-script tool was different. This one, I thought, might actually reach a third person. A stranger. Someone who didn't owe me anything.

I was wrong, but I was wrong in an interesting enough way that I'm writing it down.

IBYOK

Stop juggling LLM API keys across apps and environments. IBYOK securely manages keys for 60+ AI providers in one encrypted vault—start free today.

Learn more

How a HeyGen Demo at 11 PM Convinced Me I Had a Product

It started because I was watching someone on YouTube use HeyGen to create 30-second reels with an AI avatar — drop in a script, pick a face, get a video. The whole pipeline took maybe four minutes on screen. I sat there in my desk chair eating cold lo mein thinking: the script part is the hard part. The part where people stall. Nobody's solving that specifically.

So I built a little wrapper. It wasn't fancy — a text box, a dropdown for tone (casual, punchy, informational), a character counter, and a button that called an API and handed back a formatted script with a hook, three beats, and a soft close. The whole thing ran in a browser. No login. No database. No payment layer. I told myself I'd add those later, which is what I always say about the things I never add.

I used it to generate scripts for my own content for about three weeks. It saved me real time. I started thinking about the gap between "saves me time" and "someone would pay for this," which is a gap I have fallen into before and apparently needed to fall into again. The tool was good at one specific thing: turning a rough idea into a script shaped for short video, fast. That's it. That was the whole product.

I posted it in two Discord servers I lurk in. Got four responses. Three were bots. One was a real person — a woman named Danielle who made content for a small landscaping company in Tennessee and said, and I'm quoting from memory here:

"Wait this is actually useful, how do I get it to do more than one at a time?"

I told her I'd add batch mode. I meant it when I said it.

The Part Where Danielle Almost Became User Number Two

Danielle and I went back and forth in the Discord thread for maybe twenty minutes. She had real use cases — her client needed three or four short scripts a week, she was doing them manually, the tool would cut that down significantly. She asked if there was a way to save outputs. I said not yet but I could add it. She asked about pricing. I said I hadn't figured that out. She said she'd probably pay something small for it if it worked consistently.

"Something small" is not a contract. I know this. I treated it like a contract anyway.

I spent the next four evenings adding features I thought Danielle needed: a save-to-clipboard button, a history tab that stored the last ten outputs in localStorage, a second tone option I called "brand-friendly" which was really just slightly less chaotic than "casual." I did not ask Danielle if she wanted any of these things. I just built them and then sent her a message in the Discord saying the new version was live.

She never responded. Not that day, not the next. I checked the Discord three days later and she'd left the server entirely. I don't know if it was related. It probably wasn't. But the timing was the kind of thing that makes you sit with a reheated cup of coffee and stare at your own URL for longer than is healthy.

The tool still works. John used it once to write a script for a video about chemtrails that I am confident will never be made. That's the whole user base.

The Actual Bill: API Calls, Four Evenings, and One Very Specific Regret

Direct costs: somewhere around eleven dollars in API usage over the life of the tool, most of it from my own testing and John's chemtrail script. The domain I threw it on was one I already owned, so I'm not counting that. Hosting is folded into something I already pay for. So: eleven dollars, roughly.

Indirect costs: four evenings I could have been dashing. On a decent Thursday night in Montgomery I can clear enough to cover the week's gas. I did not do that. I built a history tab that one person has never seen.

There's also the cost that doesn't show up anywhere, which is the Slack message I drafted to Danielle and then didn't send for two days because I wanted to wait until the batch feature was ready. By the time I sent it, she was gone. I don't know if a faster reply changes anything. Probably not. But I keep thinking about other times I've let a maybe sit too long and watched it quietly expire, and this has the same shape.

I'm not going to pretend I know what the right number is for something like this — what it would have needed to cost to make sense. I don't do that math out loud because I don't trust where it leads me. What I know is: eleven dollars and four evenings for zero new users is a specific kind of outcome, and I've had worse.

What I Kept, What I Didn't, and Why the Tool Is Still Running

I still use the tool. That part I didn't expect to admit, but it's true. When I'm trying to put together a short reel and I don't have the energy to write a hook from scratch, I open it, type a rough idea, and let it give me something to react to. That's a different use case than "product people pay for," but it's real use. It sits somewhere in the same drawer as the other small things that pay in time instead of money — not nothing, not a business.

What I dropped: the idea that building features without talking to anyone is product development. I know this lesson. I've known it for years. I apparently need to relearn it on a rotating schedule, like a software update I keep dismissing.

I didn't add the batch feature. I've thought about it maybe six times since Danielle left the server. Every time I think about it I open the code, look at it for a while, and then close the laptop and go do something else. I'm not sure if that's wisdom or just tiredness wearing wisdom's jacket.

The history tab is there, though. It works great. Nobody uses it.

The tool still lives at its weird URL. If you somehow find it, the tone dropdown has three options and the "brand-friendly" one is a little bit of a lie. John knows where it is. That's two of us, which is one more than most of my projects ever get.

Note: Everyday Hustle Jeff is the written side of a digital series. These accounts are composite and dramatized. Any figures are what they were on the day, for one person, and are not a projection, a track record, or advice.

Seven desks, one guy, a lot of things that did not work.

Start from the top