How to get your first 1,000 users for a vibe-coded app
You shipped the app. You prompted it into existence in a weekend — Cursor open, a few well-chosen sentences, and now there's a real thing running at a URL. The demo works. Your mom is impressed.
Now: zero users.
The gap between "it runs" and "someone uses it" is the actual product. Vibe coding closed the build gap to a weekend; it did nothing to the distribution gap, which is still months of unglamorous work. Here's how to do that work for an app you built fast and cheaply, without wasting the speed advantage on the wrong channels.
Start with one user who is not your friend
Your first user has to be a stranger, because friends lie. They'll use your app once, tell you it's great, and never open it again. That tells you nothing.
Find one person who has the problem your app solves, who doesn't know you, and get them to use it. Where do you find them? Where the problem is already being discussed: a subreddit, a Slack, a Discord, a niche X community. Don't post a link. Post the thing you learned building the app — "I built a tool that does X because Y was broken" — and let the link be in your profile. People who have the problem will click through. The ones who don't, won't, and you've wasted nothing.
Do this ten times. Ten strangers. Watch what they do: where they get stuck, what they ask you, what they ignore. Ten users is the entire job until ten users have used it twice.
The channel that works for tiny apps: where the audience already is
You have no audience and no budget. The only channels that work at that stage are the ones where the audience already gathers:
Niche communities. A subreddit for the problem space, a Discord for the stack, a Slack for the industry. The rule: contribute for a month before you mention your app. Then mention it as a thing you built, not a thing you're promoting.
Directories. Product Hunt, Hacker News, BetaList, the relevant "awesome" lists on GitHub. One-time, low-volume, but they can produce a spike of 200–2,000 visitors in a day. Most bounce. A few stick. That's the point.
Content where the problem is searched. One well-targeted blog post or short video answering a question people actually Google. "How to do X" where X is your app's job. This is the only channel that compounds — a post that ranks keeps sending traffic for years. (See why your GA4 numbers don't match your ad spend for why this traffic is the honest baseline to measure against.)
What does not work at this stage: paid ads, SEO on a brand-new domain, a launch tweet with no followers, a newsletter you don't have. These all need either money or an audience you haven't built.
Turn the first 100 into a feedback loop
The first 100 users are not a growth channel. They are a product team. Your job is to learn what's broken, fix it, and watch the second-visit rate. A user who comes back is a user who found something worth coming back to. A user who doesn't is a signal that the app isn't sticky enough yet — and no amount of traffic fixes that.
Track one number: the week-two return rate. Of the people who used it in week one, what fraction used it again in week two. Under 20% means the app isn't ready for more traffic — you'd be pouring water into a leaky bucket. Over 40% means the bucket holds, and you can start pouring.
The 1,000-user transition
You hit 1,000 users when one of three things happens:
A community post finally lands. A subreddit post hits the top of its niche for a day. The directory submission gets picked up by a newsletter. This is luck meeting preparation — you've been submitting for weeks.
One piece of content ranks. The "how to do X" post you wrote two months ago finally enters the top 10 on Google. Now it sends 5–20 visitors a day, every day, for free.
You start paid traffic with a number you trust. You know the week-two return rate, you know what a user is worth, and you spend a dollar you can defend. (See did your Meta ads actually pay back for how to know that dollar came back.)
The third one is where most vibe-coded apps die — the founder runs ads before the app is sticky, the spend doesn't pay back, and they conclude "ads don't work." Ads work when the bucket doesn't leak. Measure the leak first.
What to build while you're doing this
While you're doing the unglamorous distribution work, keep vibe-coding the parts that retain users, not the parts that add features. The app that retains 1,000 users is worth more than the app with 10,000 features and 100 users. Every hour on onboarding, on the first-run experience, on the one thing the app does, is worth ten hours on a new channel at this stage.
FAQ
How long does it take to get 1,000 users? For a real app solving a real problem, 2–4 months of consistent community + content work. For a toy app, never — the problem isn't distribution, it's that the app doesn't solve a problem anyone has.
Should I run ads to get my first users? Almost never. Ads optimize an existing funnel. With no funnel, you're paying to find out your app doesn't convert, which you could have learned for free by watching ten strangers use it.
What if my app is free and I have no monetization plan? Get users first. But read how to monetize a vibe-coded app before you scale traffic — the monetization model changes which traffic you should chase.