I'll start with the uncomfortable version: my last project didn't fail because it was broken. It failed because I'm good at the wrong thing.
It's called TrackAura — an independent encyclopedia of what consumer electronics actually cost in Canada. One canonical entry per real product, full price history, no ads, no paywall, no sponsored placements. Over 45,000 tracked entries across 26 categories, refreshed daily. I'm proud of it. It's clean, it's accurate, it's genuinely useful.
And it's a reference site nobody was waiting for.
That's the trap with a standalone catalog: it only works if you can drive traffic to it — SEO, content, the long grind of getting found — and it monetizes on thin affiliate pennies. I built an excellent thing and then had no channel pushing it in front of anyone. The whole time I told myself the next batch of entries, the next category, would fix it. It wouldn't have. The product was never the problem. Distribution was, and I never treated it as real work.
That's the lesson I keep seeing technical founders learn the hardest way: building is a commodity. Getting in front of people is the scarce skill. I had the first one and kept hiding in it because it's the part I'm comfortable in.
So for the thing I'm building now — Price Engine, a Shopify app that monitors competitors' prices and stock automatically — I changed the decision before writing a line of code:
I picked a channel that distributes for me. Instead of a standalone site I'd have to drag traffic to, the App Store puts me in front of merchants already searching for exactly this. No cold outreach, no SEO grind — the parts I'm worst at and avoid.
I picked a category where demand is already proven. Incumbents charge hundreds a month and have years of paying customers and reviews. I'm not gambling on whether people want this — only on whether I can win a slice.
I'm letting behavior validate it, not my own optimism. Installs, activation, paid conversion. The market votes with clicks; I don't get to argue with it this time.
(The irony isn't lost on me: TrackAura is a price-tracking encyclopedia I built for readers, and Price Engine is price tracking I built for merchants — same core skill I'm good at, finally pointed at a channel that can actually reach people.)
Honest current state: live on the Shopify App Store, first organic install landed this week, $0 in revenue. Very early. But for the first time I'm treating distribution as a first-class deliverable with the same weight as the engine — not something I bolt on after launch and hope for.
The real question I'm sitting with, and I'd love to hear from people further along: if you're a builder who'd rather code than market — how do you actually force yourself to do distribution? What made it stick?
The move from TrackAura to Price Engine isn't just a channel switch — it's a business model switch. TrackAura was asking you to create demand. Price Engine is stepping in front of demand that already exists and has proven willingness to pay. That's not a small difference.
On your actual question about forcing distribution when you'd rather code:
What worked for me was making it ungameable. You can lie to yourself about "almost shipped," but you can't lie about whether you talked to 5 potential users this week. So I made outreach a time-block, not a goal. Monday and Wednesday mornings, first 90 minutes. Not "if I have time" — before anything else. You do it badly at first and that's fine. The habit matters more than the quality of the early reps.
The second thing: I stopped separating building and selling mentally. Every user conversation is product discovery. Every sales call is market research. Once I stopped treating them as different activities, the resistance dropped significantly.
The Shopify App Store is a smart pick specifically because it won't let you hide. Your listing copy, screenshots, review responses — that's all distribution work the channel forces you to do. The infrastructure makes the habit harder to skip.
The founders I've seen break through on distribution didn't become marketers. They just picked environments where distribution is unavoidable, then got competent through repetition. Sounds like that's exactly what you're doing.
This is a strong signal of builder bias: optimizing creation experience over user outcome.
The gap usually appears when internal satisfaction (clean code, elegant system) diverges from external value (actual user behavior change).
The code surviving the product is actually a great asset — means you can pivot without rebuilding from scratch. What are you doing with it now?
Very relatable, and I'm glad that you were able to recognize the pattern and made the pivot before it was too late and would have wasted a lot of your time.
It's often important to note whether you are building a hobby project or a real business. Real businesses need to make money, so even if a product sounds really useful, unless it solves a customer problem enough where they are willing to pay for it, it shouldn't exist as a business. That's what I follow for every single one of my recent projects after making those similar mistakes in the past.
The "hide in the comfortable thing" pattern is worth naming because most founders do it more than once, just in different disguises. First time it is hiding in code. Second time it might be hiding in onboarding optimization, pricing experiments, or redesigns. Any task that feels productive but does not put you in front of a stranger who might say no.
The Shopify App Store choice is smart for the reason you described: someone else built the traffic. But the next version of the same trap shows up there too. App store discovery is dominated by reviews and install velocity. New apps with zero reviews sit at the bottom of search results regardless of quality. The distribution work does not disappear, it changes shape: now it is getting the first 20 merchants to install, use it long enough to care, and leave a review. That is still founder-led sales work, compressed into a shorter window.
One thing that helps with that cold start: find 5-10 merchants who are actively paying an incumbent and unhappy about something specific (price, complexity, missing feature). Those people already have the budget line item and the pain. Converting them is a conversation, not a pitch.
Felt this. For me the code and data pipeline carried straight into the next thing — but the audience reset to zero, like it does every time. The App Store fixes that for Price Engine, except it's a rented audience too: it won't carry to whatever you build after this. The one thing I've seen actually compound across projects is an audience you own. Are you capturing the merchants who install — even just an email — so you're not renting the whole funnel from Shopify forever?
"The code was the best part" is the most common indie-founder post-mortem on this whole site, and the pattern underneath it is almost universal: the founder optimized for the part they enjoyed (building) and under-invested in the part they didn't (distribution + customer development). The code is shippable in weeks; distribution skill takes 6-18 months to build, so by the time you realize you needed it, the runway is gone.
The reframe I've adopted for the next product: spend 50% of the first 30 days on distribution experiments BEFORE writing any production code — landing page in week 1, traffic test in week 2, paid-pre-order or waitlist in week 3, only then commit to the build. If you can't get 100 qualified emails or 10 paid pre-orders in 21 days with just a landing page + a clear pitch, the product is unlikely to find its market regardless of how clean the code is.
The good news: the codebase from this product is now your portfolio + a starting point. Most of the "wasted" engineering work compounds into your next project anyway.
Distribution finally stuck for me when I stopped treating it as a separate "phase" and made it a daily gate: no opening the code editor until I'd done one outreach thing — a reply, a DM, a cold note. I build a tiny iOS memo app solo (a Captio replacement), and my first ~30 installs came from two Reddit replies, not from a single feature I shipped that month. The fix wasn't more willpower, it was removing the choice — code became the reward for doing the part I avoid, instead of the escape from it.
Currently running into the same issue of solving distribution. With AI, you can build software quicker if you have features laid out, but getting reach to people in this competitive attention economy is challenging. What other channels are you using yto get your product out?
The self-diagnosis is sharper than most post-mortems I read, and it's the right one. But I'd refine 'I had no channel.' For a reference site, the content IS the channel, you just never shipped it as one. 45,000 canonical price-history pages is a programmatic-SEO asset most people would kill for, but only if each page is built for the exact query someone types ('iPhone 15 price history Canada') and aimed at the moment of intent, right before they buy. The miss wasn't distribution as a separate task, it was treating SEO as a passive side effect of having good data instead of as the product surface itself. One thing I'd do differently next time, and I've learned this the hard way: run the distribution experiment in week one, before you build 45k of anything. If you can't get 100 people to the first 50 entries, the next 44,950 won't save you. The skill isn't wrong, the sequence was.
This is the sharpest reframe in the thread — "I treated SEO as a passive side effect of having good data instead of as the product surface itself." That's exactly the mistake, named better than I'd named it. And "run the distribution experiment in week one, before you build 45k of anything — if you can't get 100 people to the first 50 entries, the next 44,950 won't save you" is the rule I wish I'd had taped to the monitor. The skill wasn't wrong, the sequence was. Keeping this.
"Building is a commodity. Getting in front of people is the scarce skill." This is the line that should be pinned at the top of every dev's monitor.
On your question about forcing distribution: the only thing that worked for me was treating it like a bug to fix, not a personality trait to overcome. Scheduled it like a task, gave it a definition of done. When it's vague it disappears. When it has a deliverable it happens.
Still not natural. But it's no longer optional.
"Treating it like a bug to fix, not a personality trait to overcome" — that reframe is the whole thing. Vague, it disappears; give it a deliverable, it happens. Still not natural here either, but you're right that it's no longer optional.
That line about building being the commodity and distribution being the scarce skill — yeah, that's the lesson I'm living right now. I spent months getting the on-device ML right (Toyota/Bridgestone background), and it turns out that was the easy part.
Just this week I've bounced between Product Hunt, Reddit, cold-emailing professors, and now here, all trying to crack distribution. The Shopify App Store angle is smart — having a platform hand you the audience beats cold outreach by a mile.
What's your install-to-activation looking like on Price Engine so far?
Honest answer: too early for a real rate. Handful of installs, one genuinely organic — and that one installed but never reached first competitor data, so activation is effectively 0 so far. Which, per my own post, is the signal that matters more than install count: if that pattern holds it's not a distribution problem anymore, it's the moat not delivering fast enough on first run. That's the number I'm actually watching.
"Building is a commodity, distribution is the scarce skill" — this hit hard.
I'm building EarningsScores (AI scoring of earnings reports) and ran into the exact version of this you described. Built something technically interesting, went live, then... waited. Organic search drove all 6 of my signups. I kept telling myself the next feature would unlock growth.
To your question about how to actually force yourself to do distribution: the only thing that's worked for me is public accountability. Writing these IH posts forces me to confront the real number every two weeks. When you have to write "6 users, flat from last month" in public, you can't hide behind shipping features.
Still not perfect — I let the deployment lapse for a month and didn't notice until I wrote the update. But the posts at least create a deadline to actually look at the metrics.
The Shopify App Store move is smart. Embedded distribution is worth 10x more than any marketing you'll do yourself early on.
"Organic search drove all 6 of my signups, I kept telling myself the next feature would unlock growth" — that's the exact tape that was playing in my head with TrackAura, almost word for word.
On the number: I'm barely ahead of you — a handful of installs, one organic, activation effectively 0 so far (installed but didn't reach first data). The public-accountability point is real though; writing this post is the first time I've had to say the actual figure out loud instead of hiding in the codebase. "You can't hide behind shipping features when you have to write the number in public" — stealing that.
I've noticed a similar pattern.
Many founders say they want growth.
Then spend 90% of their time improving the thing nobody is seeing.
The product isn't always the bottleneck.
Sometimes building becomes a protection pattern that helps us avoid distribution.
"Sometimes building becomes a protection pattern that helps us avoid distribution." That's the uncomfortable one — it's not that I can't do distribution, it's that building is where I go to feel productive while avoiding it. Naming it as a protection pattern is the first step to catching myself doing it.
Building is a commodity, distribution is the scarce skill, and yeah, that hit me pretty hard because it's exactly what I learned with DictaFlow. I built a cross-platform dictation app for Mac, Windows, and iOS. The engine was the easy part. Getting people to actually try it has been the real grind. One thing that helped: I stopped treating distribution like some separate skill and started treating it as product work. Every channel I try is an experiment with a hypothesis, same as a feature. If it fails, I learn something. If it works, I double down. That shift made it feel less like forcing myself to do marketing and more like continuing to build, just on a different surface. What channel has surprised you the most so far with Price Engine?
Too early to have a surprising channel — this IH post is genuinely the most distribution I've done, and the surprise is this thread itself: I came in braced to defend the launch and instead got a free strategy session. The App Store hasn't surprised me yet because I haven't earned rank on it. Ask me in a month. Love the "every channel is an experiment with a hypothesis, same as a feature" framing — that's the reframe that makes it feel like building instead of forcing.
This hits close. The "building is the comfortable part" trap is real and I think most technical founders fall into it at least once.
What helped me shift: treating distribution as a feature, not an afterthought. Every tool I build now, I ask "who specifically will find this and where are they already spending time?" before writing a line of code. Not after.
Your Shopify App Store move is smart — you're borrowing an existing distribution channel instead of building one from scratch. The incumbents charging hundreds a month are actually good news, they've already done the work of convincing merchants this category matters.
For forcing yourself to do distribution when you'd rather code: I found that setting a rule helps. No new features until you've done X amount of outreach or community engagement that day. The coding can always wait. The conversation window often can't.
Still figuring it out myself — currently doing the Reddit comment grind with a set of Gumroad tools, which is humbling in its own way.
"No new features until you've done X amount of outreach that day — the coding can always wait, the conversation window often can't." That's the rule I'm adopting. And solidarity on the Reddit comment grind — humbling is the word. The discomfort doesn't go away, you just schedule around it.
Also building a Shopify app and sitting at 0 reviews right now — so the review-moat
point lands hard.The pattern you described ("one more category and it'll work") is exactly what makes it hard to catch. It feels like progress. That's the trap.
What I'm learning: the App Store solves discovery, but the first 20 reviews still have to come from personally reaching out to every early installer. The channel changed. The discomfort of asking real people for feedback didn't.The silence between sending and hearing back is the part I keep avoiding. Still figuring out how to sit with it.
Fellow 0-review Shopify founder, so this lands both ways. You nailed the trap: "one more category and it'll work" feels like progress, which is exactly why it's hard to catch. And yeah — the channel changed but "asking real people for feedback and sitting in the silence after" didn't. That silence is the part I keep avoiding too. We'll figure out how to sit with it or we won't make it. Rooting for you.
Feels less like a product problem and more like a distribution gap and Shopify App Store is a smart move because it bakes that channel in from day one. And you don’t really force it, you systemize it. Small daily actions, fixed cadence, track real signals (clicks, replies, installs) and treat it like something you ship every day, just like code.
"You don't force it, you systemize it — small daily actions, fixed cadence, track real signals, ship it like code." That's the version that actually works for an engineer brain, because it converts the uncomfortable thing into the format I already trust. The cadence part is what I keep dropping; a feature has a definition of done and distribution didn't, so it evaporated. Fixing that is the actual work.
The "building is a commodity, distribution is the scarce skill" framing is sharp, and I don't think most technical founders hear it early enough.
What strikes me about TrackAura is the trap you describe precisely: every new category, every new batch of entries felt like progress. But it was progress on the wrong dimension. You had plenty of product. You had no path to the person who needs it.
The Price Engine pivot is interesting because you changed the constraint first, not the idea. You picked the App Store not because it's a better product home, but because it removes the distribution problem you know you're bad at. That's a more honest use of competitive analysis than most founders do.
One thing worth stress-testing: "demand proven" and "incumbents charging hundreds a month" is necessary but not sufficient. Those incumbents also have review moats. Your fastest path through them is probably a specific use case they all treat as an edge case — something the $200/month tool technically handles but badly. That's where you can win without needing to out-feature them.
the incumbents charging hundreds a month with years of reviews is the right market signal but it's also where the competitive analysis gets harder. merchants who have been with Prisync or Wiser for two years aren't switching for a cheaper tool unless something is meaningfully different or the incumbent did something to annoy them. what's the angle on winning a slice that isn't just price? curious whether there's a segment of the merchant market that's underserved by the existing tools or whether it's a straight feature and price competition
This is the question I most need to get right, and "cheaper" is not my answer — you're right that nobody leaves Prisync after two years to save a few bucks. Two angles I'm betting on:
Setup friction. The incumbents AND the cheap newcomers still make you paste competitor URLs by hand. I auto-discover and match instead — which matters most to the long tail of smaller merchants the $200/mo tools treat as an edge case, because they don't have an ops person to babysit URL lists.
Trust on the match itself. Every match gets a confidence score, and low-confidence ones get surfaced for one-tap confirm instead of silently tracking the wrong product. The whole field races toward auto-repricing; nobody competes on "can you trust what it matched." That's the edge case the $200 tool technically handles but badly.
Whether that's a real wedge or wishful thinking is exactly what install→activation will tell me.
both of those are real differentiators but the confidence score on matches is the stronger one because it's harder to copy quickly. auto-discovery is a feature any competitor can ship in a sprint. surfacing low-confidence matches for confirmation rather than silently tracking the wrong product is a trust architecture decision that changes how the whole system is designed and is harder to retrofit. if that ends up being the thing users specifically mention when they describe why they stayed, it's worth making it the centerpiece of the positioning rather than the second bullet
You may failed in no revenue but you already ahead of 99% who never started and never failed. Fail fast and restart fast.
Needed that today. Thanks.
"The product was never the problem. Distribution was, and I never treated it as real work."
This is the most honest sentence I've read on here in a while.
We built Swiftbill — an invoice generator for freelancers — and the first version was genuinely solid. Clean UI, fast PDF export, Stripe integration, the whole thing. Then launch day came and we learned that "good product" and "people find out about it" are completely separate skills.
What shifted our thinking: treating distribution as a product sprint, not marketing fluff. We set a weekly goal for outreach the same way we'd set a goal for shipping a feature. SEO pages, community engagement, referral mechanics — all tracked and iterated like code.
The hard lesson you're articulating (build first, figure out users later = painful) is one most of us have to learn by living it. The good news is that lesson usually only burns you once.
"Good product" and "people find out about it" are completely separate skills — yeah, that's the whole thing in one line. The part I'm stealing is treating distribution as a product sprint with weekly goals tracked like code, not "marketing fluff" I'll get to. That reframe is exactly what makes it stick for an engineer brain — it turns the uncomfortable thing into the format I already trust. "Burns you once" is the optimistic read I'm holding onto. Appreciate you sharing the Swiftbill version of it.
The "building is a commodity, distribution is the scarce skill" line hit me hard. Saving this one.
It's not mine — it's the lesson TrackAura charged me a year of nights to learn. Glad it lands without the tuition.
The Shopify App Store move is smart for exactly the reason you named: it solves your weakest link (distribution) with someone else's infrastructure. But there's a subtlety worth watching.
App store distribution is front-loaded. You show up in search results, merchants install you, done. But Shopify's algorithm rewards reviews and installs over time, so you're essentially competing on velocity in the first few weeks. If you don't hit a critical mass of reviews early, you settle into a lower search position and the "distribution solves itself" assumption breaks. The marketplace gives you the channel but you still have to win the first 20-30 reviews manually. Reach out to every early installer personally, ask what's working, fix what isn't, and ask for a review after you've solved something for them. That's the distribution work, just compressed into a different shape.
The pricing insight is the real edge though. If incumbents charge $200+/mo and you can profitably run at $50, the Shopify App Store search becomes a price-comparison funnel. Merchants search, see the incumbents, see your price, and try you first. You don't need to be better on every feature, just good enough on the core job at a price that makes the decision easy. The tricky part is making sure "good enough" doesn't mean "barely works" -- one-star reviews from missing basics will undo the price advantage fast.
This is the most precise version of the worry I've seen, and the review-velocity point is the one I'm most exposed on — zero reviews against incumbents with years of them. The plan is exactly what you said: hand-win the first 20-30, ask for the review only after I've actually solved something for that merchant, not on a timer. The pricing-funnel framing is sharp too — "good enough on the core job at a price that makes the decision easy," with the trap being that one-star reviews from missing basics erase the price edge overnight. That last line is going on a sticky note. Appreciate this.
I'd be careful with one thing.
The interesting question may not be whether TrackAura failed because of distribution.
It may be what conclusion deserves confidence from that failure in the first place.
Those sound similar, but they can lead to very different decisions about what gets built, how success gets interpreted, and what lessons get carried into the next product.
I wouldn't make that call casually from the current evidence.
Fair challenge, and you're right that I'm reasoning from an n of 1. To be precise: I can't prove TrackAura failed on distribution — it's a standalone reference site that got little traffic, and "no distribution" is the most likely cause, not a confirmed one. What I'm actually doing with Price Engine isn't "I diagnosed the failure," it's "I picked a structure where the distribution question gets answered behaviorally instead of left to my optimism." If the App Store install/activation data comes back flat too, that's the stronger evidence — and a different conclusion. So: less "distribution was the bug," more "let's make the next attempt actually testable."
Possibly.
The reason I'd still be careful is that I don't think the interesting part is whether the next attempt is more testable.
I think there's a bigger decision sitting underneath what lesson deserves confidence from the first attempt in the first place.
That's one of those things that can quietly shape what gets built next and how future signals get interpreted.
I wouldn't try to unpack that properly in a thread.
If you're curious, drop your email and I'll put together the tighter version.
Appreciate you pushing on it — I think the legitimate version of your point (don't over-confidently diagnose from one data point) I already agree with, and I'd rather keep whatever's left in the thread where others can weigh in. Happy to keep going here if you want to put the specific claim on the table.
Fair enough.
The main reason I stopped short is that I think the decision is more consequential than the specific claim, but I understand wanting to keep it in the thread.
The honest reason code feels safer isn't that it's easier, it's that it answers you the same day. You run it, you know.
Distribution makes you put something out and then sit in silence for days, and that silence reads to the engineer brain like a failing test, so you drift back to the thing that gives you a clean pass or fail.
The only fix that's worked for me is counting the rep as done the moment it's out, before any reaction, because the reaction was never going to arrive fast enough to feel like progress. Turns out the silence was what i was dodging the whole time, not the marketing itself.
This is the most useful reframe I've gotten all day. "The silence reads like a failing test" — that's it exactly, and I'd never named it. Counting the rep as done the moment it's out, before any reaction, is a genuinely different mental model than waiting for the reaction to validate it. Stealing that. Thank you.
the line "building is a commodity, distribution is the scarce skill" really stood out to me
As someone on the technical side, I often find myself defaulting to building because it's the part I can control. Choosing a distribution channel before building seems like a valuable lesson, curious to see how the shopify app store changes the equation for you
Yeah, "the part I can control" is exactly the trap — building gives you a dial you can turn, distribution doesn't. What the App Store changes is that it collapses the silence: instead of shipping into a void and guessing, I get installs/activation/conversion as actual signal. It doesn't do the distribution for me, but it turns "is anyone out there" into a number I can read.
the old one → https://trackaura.com (the beautiful thing nobody waited for), and the new one → https://apps.shopify.com/price-engine (same skill, finally on a channel that reaches people).
This comment was deleted 4 days ago.