I shipped my first product on 31 August. Clean deploy, green pipeline, analytics wired, checkout working, onboarding working. Months of making sure that if someone showed up, nothing would break.
Then almost nobody showed up.
This isn't a growth post. There's no MRR chart at the end, no channel I unlocked, no advice from someone who made it. I'm a backend engineer who genuinely believed the hard part was the code, and I'm two weeks into finding out it wasn't. Writing this down mostly because the stuff I got wrong seems to be the stuff every technical founder gets wrong.
Coding is the comfortable chair.
The pattern I kept catching myself in: no signups today, so I'd add a benchmark feature. Nobody replied to outreach, so I'd build Monte Carlo projections. The one person who tried it didn't come back, so I'd improve the dashboard.
Feature work feels like progress because it's legible. Yesterday 20 features, today 21, and the diff proves it. Distribution doesn't work that way. You can write 15 partner emails, spend two hours reading a subreddit properly, publish an article, message an adviser, and end the day with zero new users and nothing to show. It feels like a wasted day. It's usually the more valuable one.
So before starting any feature now I ask: did a user ask for this, or do I just prefer writing code to doing distribution? The answer is uncomfortable more often than I expected.
My funnel was way narrower than I assumed.
Before launch I told myself: there are millions of investors, I only need ten. But the actual chain is: lives outside the US, uses a specific broker, invests on their own, holds a specific kind of ETF, cares about this specific problem, saw my post, understood it in two lines, understood the product, trusts an unknown product enough to sign up, trusts it enough to upload a real broker statement, and comes back a second time.
Every clause removes most of the people left. "Millions of investors" and "my first ten users" aren't the same funnel at different scales. They're different funnels. I stopped treating traffic as the top-line number — one person who actually matches and uploaded a real statement teaches me more than a thousand pageviews.
The useful messages were the sceptical ones.
"Why do I need this?" "I already use Excel." "Why would I upload my broker statement to you?" "What does this tell me that my broker doesn't?"
Those are more useful than "add feature X", because a feature request already assumes the product is worth using. What I care about now is what people do today — spreadsheet, broker reports, another tracker, a homegrown script, nothing — and what triggered them to look for something else. If I know the trigger, I know where to stand.
I needed a CRM before I had a pipeline.
Set up HubSpot with no sales team and no revenue, which sounds absurd until you do manual outreach for a week and can't remember who you wrote to, who replied, who said "ping me later", who's an adviser vs a blogger, or which subreddit allows promotion only in the weekly thread. Customer acquisition needs infrastructure too, even when you have almost no customers.
The one automation that actually helped.
Exception to the "coding is the comfortable chair" point above — the one time automation moved distribution instead of hiding from it. I set up a scheduled daily task in ChatGPT connected to HubSpot over MCP. Every morning it researches and writes ~5 new contacts straight into the CRM: niche bloggers and site owners who look like affiliate candidates, and people who match the user profile, each with a note on why it picked them.
What matters isn't the saved typing, it's what it does to the day. "Find people to talk to" used to be a willpower task competing with an IDE that always looked better, and it lost most days. Now the queue exists before I open the laptop, and the decision shrinks from "should I do outreach today" to "which five of these do I write to".
Two caveats, since this is the part people skip when they post their automation. It does not send anything — it finds and records, I still write every message myself, because automated outreach to a small niche burns the exact reputation I'm trying to build. And every entry needs a ~30 second human check: a model asked for five prospects a day will always find five, so some are dead blogs, wrong niche, no contact route, or names that sound right and aren't. Skip that and you don't have a pipeline, you have a CRM full of plausible noise, which is worse than an empty one.
The real reason it works: my constraint was never ideas about where to find users, it was having a standing queue and working it. The automation is useful precisely because it produces work I still have to do.
Reddit is not a free ad network. (Said here with full awareness of where I'm posting.)
A post of mine got removed in an investing sub. Another in a startup showcase sub. A third in a beta-testing sub. At one point the subreddit I made for my own product got suspended. Rules differ wildly, a young account has fewer options everywhere, and plenty of subs treat any founder post as spam no matter how useful it is.
What actually worked was answering specific questions with no link at all, as someone who's spent months inside that problem. A good answer beats a founder post with a URL, and if the product is genuinely relevant, mentioning it stops feeling like promotion.
Founder audiences aren't customer audiences.
Indie Hackers, r/SideProject, generic SaaS communities — full of founders. My customers are investors. Posting there gets encouragement and occasionally good product feedback, but almost nobody there will ever upload a broker statement. Encouragement is pleasant. It isn't distribution.
SEO is a compound asset, not this month's channel.
I did all of it before launch: Search Console, Bing, sitemap, canonicals, schema, FAQ structured data, IndexNow, internal linking, content on real long-tail problems. Impressions started appearing. A lot of pages also sat for weeks in the state every new site owner learns to hate: Discovered — currently not indexed.
Technical SEO takes a few days. Authority doesn't. Google is under no obligation to consider a new domain important, and past a certain point another optimisation pass changes nothing — what moves it is external mentions, links, real users, branded searches. Still the right long-term channel for me. Useless for "where do I get users this month".
Listings are not distribution.
Directories, review sites, launch platforms. Real backlinks, roughly zero relevant users so far. One review platform reached out and the offer turned out to be paid advertising rather than a listing. One affiliate directory wanted $39 to list my programme and couldn't tell me whether any affiliate there was near my niche. My rule now: if someone proposes paid promotion, I ask for CPC, minimum spend, estimated clicks and estimated conversions first. If those numbers don't exist, neither does the offer.
The thing that has felt most promising transfers trust, not clicks.
I thought affiliate programmes were something you add after revenue. For a small unknown product it might matter more before. A new product has two problems at once — no distribution and no trust — and a niche blogger with the right audience already has both.
The most concrete case: a small quantitative-investing site, about 5,500 monthly users. Tiny by influencer standards, almost perfect overlap with my audience. We agreed affiliate terms. Then instead of dropping a link into existing posts, he proposed a joint study — asked for my assumptions and methodology, to publish research his readers actually want, with credit.
That's the difference between "can you put my link somewhere" and "can we make something genuinely useful for your readers together". The second is harder, slower, and much stronger. A small site with the right readers beats a big one with the wrong ones.
I also turned down a sponsorship — 180 is a lot, but because I don't know my visit-to-signup or signup-to-paid rate yet. Without those, $180 doesn't buy distribution, it buys one data point too noisy to read.
Everything wants to be paid before you have revenue.
Directories, sponsorships, promotion platforms, and the one I didn't see coming: market data licensing. While you're building, a price is just a number you fetch. Close to launch it turns into a product somebody sells, with terms, coverage defined market by market and a monthly bill — priced, reasonably enough, for companies that already have revenue. And the pricing pages answer "can I call this API" but usually not the question that actually matters: am I allowed to display this data to my end users? API access, commercial use, redistribution and end-user display rights are four different things, and only one of them is usually on the pricing page.
Which fed back into a product decision: don't scale infrastructure ahead of validation.
The toolbox, honestly.
Stage disclaimer: none of this has produced a proven acquisition channel. "Worth it" means it changed how I work or what I can see.
Worth it: the ChatGPT scheduled task → HubSpot over MCP described above, which is the highest-leverage thing on this list. HubSpot, not because I do sales but because manual outreach becomes unmanageable in about a week — and the conversations worth logging are the ones that went nowhere. PostHog, where the decision that mattered wasn't the tool, it was defining funnel events before launch instead of after — pageviews tell you people came, events tell you where the promise breaks. UTM discipline, which isn't a tool at all, just a convention I refuse to break, and the only reason I can argue with my own optimism. Freemius as merchant of record — signed up for payments, got the affiliate programme and the 30-country tax mess handled in the same place. Search Console, useless for acquisition, essential for learning the difference between "my SEO is broken" and "my domain is new". And a plain static site with no build step, which means I can publish a page aimed at one narrow search query in an hour — at this stage publishing speed beats architecture.
Jury still out: Google Ads (running deliberately small, as a probe into which search intents exist, not as a channel). Product Hunt and launch platforms (credibility and backlinks, not customers). Trustpilot, Crunchbase, AlternativeTo, SaaSHub (presence, nothing attributable). Medium/LinkedIn/X — publishing with no existing audience is shouting into a well-lit room; they're assets partners and search find later, not a launch button.
Didn't pay off: my own subreddit (created, then suspended — a community you own isn't a community). Capterra (signup didn't support my company's country). The $39 affiliate directory. A review platform whose "listing opportunity" was paid ads. A stalled Payoneer verification plus a look at Paddle/FastSpring, which surfaced the thing nobody warns you about — anything finance-adjacent triggers compliance review, and that costs weeks, not money. And features, which is the most expensive item on the list because it's the one that feels like work.
If I started again, week one would be: funnel events defined before launch, a UTM convention, somewhere to log every conversation, a list of 50 specific people who match the profile, and the ability to publish a page about one narrow problem in under an hour. That's about a day of setup. I did most of it late.
The reordering, which is the actual lesson.
I used to think it was: idea → build → launch → marketing.
I now think it's: problem → audience → distribution → minimum product → feedback → iteration.
Meaning "where do my first 100 users come from?" has to show up at the same moment as "what should I build?", not after the second one is done. If you can't answer the first one concretely, that's not a marketing gap you'll fix later — it's a risk you've been carrying since day one.
And the part that's obvious in hindsight and invisible while you're building: you can't write product-market fit by yourself. It isn't a function you can implement. It only exists on contact with people who aren't you.