Six months ago I didn't know what I'd build. I'd spent years starting things and not finishing them, coding on and off since before AI tools existed, switching between Python, Django, data science, never sticking with anything. Two years disappeared into a meme Facebook page that hit 100K followers. Then IELTS, then PTE, then 18 months trying to learn German, all eventually abandoned too.
Around February this year, scrolling my feed with nothing else to do, I came across a handful of posts from Shopify sellers complaining about inventory. I didn't know Shopify well. I didn't do deep research. I just saw a real problem and started building.
I wrote an actual business plan first this time, six-month timeline, competitor research, a list of names I never used. With AI doing the heavy lifting on code, I built the first working version in one month. I'd planned to validate the problem with ten sellers before writing any code. I asked exactly one. They were using spreadsheets and starting to outgrow them. That was enough. I kept building.
I launched 104 days ago believing that if I built something good, people would just find it. They didn't. I tried posting about it on r/shopify, got banned. Posted on the Shopify Community, banned there too. Eventually pivoted to the actual Shopify App Store on a stranger's advice, submitted, got rejected with a clear reason, fixed it, resubmitted, approved six hours later.
Since then: organic search traffic is up roughly 6x over the last couple months and compounding on its own now. I ran my first paid App Store ad last week, real impressions in a strong position, zero clicks so far. One real store installed along the way, synced 378 real products, used the app for about a week, then uninstalled without a reply when I reached out.
This week I also found and fixed a real privilege-escalation vulnerability in my own database, a way a regular user could've flagged themselves admin and read every connected store's data, including live Shopify tokens. Tested it two different ways before trusting it was actually fixed.
Right now, Day 104, I have zero active users. That's not the update I expected to still be writing this far in, but the traffic is real, the security is tighter, and I'm still here, still shipping, still fixing what I got wrong instead of starting over.
Happy to answer anything, the SEO approach, the security fix, why I think zero reviews might be the real bottleneck right now, whatever's useful.
Debnix is live on the Shopify App Store if you want to take a look: apps.shopify.com/debnix
104 days and zero active users—that takes real grit. The privilege-escalation find is huge though; catching that before any real damage is a win most founders never get to claim. I've been in that spot where traffic climbs but nobody converts, and it's easy to doubt everything. You're clearly learning faster now than in the first month.
The uninstall after 378 products sync is brutal—did you ever find out why they left, or just no reply? That's the kind of feedback that could turn things around.
104 days is impressive commitment. The build-in-public timeline is valuable even if the product doesn’t take off — you’ve documented a full build cycle that most people never share.
I’ve been building my product (local-first voice synthesis for Mac) for a few months now, and the most useful thing about sharing progress publicly wasn’t the feedback. It was the accountability. When I said “shipping this week,” I had to ship this week.
What’s the one thing you wish you’d done differently in the 104 days?
Genuinely, the one thing: I planned to validate the problem with ten different Shopify sellers before writing any code. I asked exactly one, they were drowning in spreadsheets, and that was enough for me to just start building. In hindsight, I built the whole thing before really understanding the domain deeply, learned Shopify and inventory management while coding it, not before. Would've saved a lot of guessing if I'd actually talked to more people first.
The accountability point really resonates too, I don't think I would've kept going through some of the rougher weeks without having already told people publicly I was doing this. Good luck with the voice synthesis project, that sounds like a genuinely hard, interesting problem.
I hit a similar wall with Alisio: shipped, and for a long stretch had to make real product calls with zero paying users to test them against. On the security point, I'd push back slightly. Not reading code doesn't mean you're blind to security, it means substituting a habit for that ability. Mine is treating anything that touches money or personal data as adversarial by default: receipt images get processed and discarded rather than stored, specifically because I can't personally audit every path an image could leak through. You actually read code and caught a privilege escalation yourself, so that gap doesn't apply to you the same way. On reviews, I don't think that's the bottleneck, I think it's a symptom. Nobody reviews a tool they installed once and abandoned. The user who synced 378 products and then uninstalled is the data point I'd chase first.
That's a fair reframe, and honestly a better one than mine. Reviews being a symptom rather than the bottleneck makes more sense than what I was telling myself. I did try chasing that exact data point already though, I reached out to them directly after the uninstall and never got a reply, so that door's closed from the direct-contact side. What I haven't fully dug into is the product-usage data from their week with it, what they actually clicked on, whether their cost data was ever filled in, that kind of forensic reconstruction instead of relying on them telling me. Might be worth doing properly instead of treating it as unrecoverable just because they went quiet.
And thanks for the security point, appreciate that distinction. I don't think of myself as someone who reads code well, most of it happens with AI doing the heavy lifting, but I did go through the actual database policies line by line to find that one, so maybe the gap's smaller than I give myself credit for.
I would push back on reviews being the bottleneck: the store that synced 378 real products and left after a week is the most valuable data you have, and you filed it as a footnote. Reviews do not fix a product that cannot hold the one merchant who genuinely tried it, so I would chase that person down through any channel until you know what week two actually looked like. Separately, real impressions with zero clicks is a listing problem, not a traffic problem, because the icon, title, and first line are doing all the selling.
Fair, and I hear two people converging on the same point now, that's a signal worth taking more seriously than I have been. To be straight about where I actually stand on it: I did email them after the uninstall, no reply. I don't have a phone number, a social account, or any other channel, the Shopify install flow doesn't give me one. So "chase them down through any channel" is genuinely limited to the one channel I already tried and struck out on, not something I'm avoiding.
What I can still do, and haven't properly, is reconstruct what week two looked like from the data I do have, what they clicked, whether cost data ever got filled in, where the session activity actually stopped. That's real and doable, just hasn't been a priority the way it should've been.
On the listing point, genuinely useful and specific. I did just fix a stale "7-day trial" mismatch that had been live for months, real bug, but you're right that's not the same as auditing whether the icon and first line actually earn a click. Worth a harder look at that specifically rather than assuming the copy's fine because it reads fine to me.
Huge respect for breaking the abandonment cycle. Going from half-baked projects to a live, production-ready app on the Shopify App Store is a massive shift in discipline. Catching and fixing that critical privilege-escalation vulnerability now, before scaling, is an absolute blessing in disguise—you got to patch a high-stakes security flaw without the public fallout.
The compounding organic traffic proves there is real search intent for what you built, but the "zero reviews" ghost town is a classic marketplace chicken-and-egg problem. Merchants are incredibly protective of their live store data, and installing an unreviewed app that handles their inventory feels like a massive risk.
For the store that uninstalled after a week: did your server logs show any sync lag or timeouts with those 378 products, or do you think it was just a lack of onboarding guidance? Also, what specific App Store Optimization (ASO) changes triggered that 6x traffic spike after the community bans?
Appreciate that, especially the framing on the security fix, hadn't thought of it that way, but you're right, better to find it myself quietly than the other way.
On the sync question, honestly don't know for certain yet, but that's a good, specific thing to actually go check rather than guess at, I have the logs from their install window, I just haven't gone back through them looking for lag/timeouts specifically. Will do that properly instead of assuming it was onboarding.
On the traffic growth, I don't want to overstate it, it wasn't one ASO change, it was a slower content and freshness pattern compounding over a couple months: refreshing existing pages with real updates (not just date bumps), fixing a cannibalization issue between two competing pages, and writing a few new platform-agnostic guides alongside my Shopify-specific ones. The community bans were actually a separate, unrelated thread that just happened around the same stretch of time, not the cause of the traffic growth.
Before changing the UI or adding features, I’d instrument the first-value path so the next uninstall is less ambiguous.
For a new store, I’d want to distinguish:
sync completed successfully
enough products contained cost data to produce a useful result
the merchant viewed the first meaningful profit or inventory insight
they acted on anything they saw
they returned after receiving updated store data
“378 products synced” sounds like activation, but it may only be technical setup. If most products lacked the fields required for the useful reports, the user may have completed onboarding without ever seeing the product’s core value.
You could also show a readiness summary immediately after sync:
“378 products imported, but only 42 have enough cost data for profit analysis. Complete these fields to unlock your first report.”
That would turn an apparently empty dashboard into an explicit next step and make the data-quality problem measurable.
What is the smallest result a merchant should see in the first ten minutes that would make Debnix worth reopening tomorrow?
There's actually already a version of this in Debnix, a banner on the dashboard that says "1 of 13 active products are missing cost data. Stock Value and Gross Profit only include products with cost data set." So the instinct behind your idea was already built in.
What I don't have is visibility into whether it actually worked in the one real case that matters, the store that installed and left. They synced 378 products, a much bigger catalog than my own test store. If a large share of those 378 were missing cost data, that same banner could land completely differently at that scale, "1 missing, easy fix" versus "300 of 378 missing, this app basically doesn't work for me." Same UI, very different message depending on catalog size, something I hadn't fully thought through until your comment.
The real gap isn't the feature, it's that I don't track whether someone actually saw or acted on that banner. So even having it doesn't tell me if it did its job for them.
That makes sense — the missing piece isn’t the banner itself, but observability around whether it helped the merchant reach value.
I’d log the catalog state when the banner is shown, not just the raw count:
That would distinguish three very different failures: the merchant never noticed the warning, they noticed it but the cleanup effort looked too large, or they completed enough data but still didn’t find the report valuable.
The percentage may matter more than the count. “1 of 13 missing” means the app is almost ready; “300 of 378 missing” means the merchant may see hours of setup before receiving any value.
For a catalog that large, what is currently the fastest way to add or import cost data in bulk?
The one store that synced 378 products and stayed for a week feels like the most interesting signal here.
Do you know what they actually did inside Debnix during that week before uninstalling, or is the uninstall basically a black box?
Not a total black box, but not much light on it either. What I know: they synced on day one came back once more, briefly, days later then went quiet and uninstalled a few days after that. No crash no error nothing broken that I could find in the logs. I reached out after the uninstall to ask what happened and never got a reply.
Best guess and it's genuinely just a guess they looked didn't see enough value in that one short session to make it part of their routine, and moved on. I don't know if that's a UI problem (not obvious enough what they'd get in a few minutes) a data problem (some of their products may not have had cost data yet which would've made profit related numbers look empty or broken) or just genuinely not the right fit for their store. Without a reply I can't tell which one it actually was and that's honestly the most frustrating part of the whole thing.
I appreciate you being candid about what you know versus what you're still trying to understand.
I'd be interested in continuing the conversation by email if you're open to it. What's the best email to reach you on?
Sure, happy to continue over email: [email protected].
Thanks! I’ve just sent it over.
Looking forward to hearing your thoughts whenever you have a chance.