Tools & Tutorials · Xiaohu's Take

A Solo Developer's Guide to Getting Users: AI Made Building Cheap. Getting Noticed Is Now the Expensive Part.

How to find users for your product. Before you rush to redesign your landing page, a high bounce rate usually means you're fishing in the wrong pond.
The 60-second read
  • AI has made building things almost free, but getting noticed now costs more than ever. The hard part of the job starts after the product is finished.
  • When your bounce rate looks terrible, your landing page is usually not the problem. There's something more fundamental to check first.
  • Borrowing another audience comes down to seven channels, from $0 to the $2,000 tier. Platforms and prices listed below.
⚑ This guide is by solo developer George Field, who builds Splitsense, a website analytics product, and links out to his own blog for further reading at several points. The two analytics tools he tells you to install, though, are open-source projects — not his own products.
The funnel

How a Stranger Becomes a Paying User

The urge is almost always the same: you get an idea, start coding, and only after the product ships do you realize the real problem—nobody knows it exists. The guide's first piece of advice is to fight that impulse.

The argument is a simple accounting: AI has made building dramatically cheaper, and getting people's attention dramatically more expensive. The easier something is to build, the more products appear, and the higher the price of attention goes. So by 2026, distribution matters more than development. That little SaaS you could have built on weekends and sold for a few thousand dollars in 2022? AI makes it even faster to build today. The hard part is getting it seen — and that's harder than it ever was.

So the guide has one job: break the "after the build" half into steps you can actually follow. The whole journey looks like this:

An article A forum post A short video An email Pay Become a user Stay Keep using Touch points Funnel Paying users Retention Each stage can be diagnosed and fixed on its own
Four stages, each with a job: touch points pull people in, the funnel pushes them through, and retention keeps them around. Chart by best.xiaohu.ai based on the guide.

Touch points: where people first see you outside your own site

Here's a way to think about it:

The internet is literally a web. Every day, millions of people crawl across its strands. Your job is to spin more strands that people might bump into. Each strand is a touch point — an article, a forum post, a short video — any place where someone first encounters you outside your own website. The more strands, the more bumps.

A touch point has only one job: pull people into the funnel. For a fresh start, the five most common are Reddit, friends, niche forums, communities, and emailing your network. The Reddit piece deserves its own callout because it's counterintuitive:

Don't post in r/saas and places like it. Those spots are great for finding beta testers and bug reporters, but they won't give you your first real users, because your actual target customers aren't there. Post in the subreddit related to your product.

For the other four: if you're building a consumer app, feedback from friends is gold. If you run a self-storage SaaS, go to self-storage forums. Small communities like Facebook groups and Discord servers beat big platforms. And emailing your network is the least glamorous, most effective move of all.

A product introduction post in a Facebook group for dividend investing.
The first touch point looked like this: posted in the "Dividend Growth Investing" Facebook group in October 2022 to round up the earliest users for Heydividends. The post leads with who he is (a software engineer, five years investing in dividend stocks), then the problem he's trying to solve, and only shows the product screenshots at the end. Image: George Field / freeCodeCamp

The funnel: The Gates Between "Interested" and "Paying"

Here's a way to think about it:

A funnel is a corridor with doors. 100 people walk in the first door, 80 make it through the second, 30 through the third. You don't need to watch every door — you just need to find the one where the most people drop off. That door is what you fix this week.

A typical SaaS funnel looks like this: landing page → browse around → click signup → run the onboarding flow → first product screen → poke around more → either leave or pay. It doesn't matter if it's pretty. Its only job is to tell you what to fix. If people sign up and run, something in between is broken. Fix the broken part, and the project grows.

The fourth stage is retention: you keep people by talking to users, watching session replays, and looking at heatmaps to see what they're actually clicking.

A diagram showing the four steps: touch points, funnel, paying users, and retention.
The guide's own overview diagram, with all four stages laid out. Image: George Field / freeCodeCamp
The roadmap

The guide's roadmap: eight steps in two halves

Before you dig in, here's the whole path: eight steps in two halves. First, fix the funnel. Then, go get people.

Half 1: Fix the funnel first 1 Set up analytics 2 Check five metrics vs benchmarks 3 High bounce rate? Check traffic source 4 Find the narrowest funnel step Half 2: Then go get people 5 Borrow someone else's audience 6 Build your own channel 7 Post for 20 straight weeks, no gambles 8 Content exists to create value The order matters: driving traffic to a leaking funnel is pouring money into a sieve.
The sequence of the eight steps. The first four solve "people come but don't stay"; the last four solve "nobody comes at all." Chart by best.xiaohu.ai based on the guide.

Why this guide is worth reading

Most articles about distribution stop at "make content" and "be consistent." This one stands out because every step leads to something concrete—and that concrete thing is copy-pasteable:

Benchmarks for five metrics, with average / good / excellent tiers A three-level troubleshooting sequence for bounce rate Seven channels for attracting people, with prices and target sizes 21 platforms for finding podcasts, publications, and influencers Which platform to start with for ten product types Three-step OpenReplay integration code An 8-item landing page checklist Five CTA variants ready for A/B testing
One caveat worth stating upfront: this guide is about software products, but the whole framework holds for ebooks, newsletters, and courses too. As long as your product is a series of steps with the potential to lose people at each one, the funnel, the diagnostic order, and the seven outreach channels all translate directly.

One more thing to be clear about: the money and time go into the second half, but whether you survive long enough to get there depends on the first half. So start at step one.

Tools

Step 1: Set up analytics so the funnel is visible

A funnel doesn't exist until you can see it. The guide skips Google Analytics — the out-of-the-box experience is rough, and it's missing features you actually need. The paid alternatives have the features but aren't open-source. If you want to own your data, the open-source stack is two tools, each covering a different side:

The numbers

Plausible (or Umami)
Where visitors come from, bounce rate, and how many complete a goal. Tells you "how many people you lost at step N."

The visuals

OpenReplay
Records and replays every click, hesitation, and scroll. Tells you "what those people were actually doing."

Here's a way to think about it:

Session replay is a security camera. The numbers tell you "45 people dropped off at step 3." The video tells you what those 45 people were doing on that screen — whether the button didn't respond, or they just couldn't find it. You need both to close the loop.

Three steps to install, four events to track

OpenReplay is an npm package. Installing it in a Next.js app takes three steps.

Step 1 · Install the package
@openreplay/tracker
Use whatever package manager you normally use.
Step 2 · Create .env in your project root
NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY=your_key
NEXT_PUBLIC_OPENREPLAY_INGEST=https://openreplay.yourdomain.com/ingest
Two values: your project key and the ingest endpoint for your self-hosted instance.
Step 3 · Initialize in lib/openreplay.ts
const tracker = new Tracker({ projectKey: process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY!, ingestPoint: process.env.NEXT_PUBLIC_OPENREPLAY_INGEST!, });

export default tracker;
Then mount a client component in your root layout and call tracker.start() inside a useEffect. Recording begins.

But installing it only gets you halfway. Replays alone just let you watch one session at a time — you can't see patterns. Events let you stitch those sessions into a funnel.The code is one line: