We launched ShopPilot three weeks ago.
An AI agent that runs your Shopify store while you sleep — handles inventory alerts, writes product descriptions, responds to customer questions, flags anomalies. The kind of thing I wanted to exist when I was running my own store at 2am wondering why a SKU had gone out of stock without any warning.
We posted on HN. We shared in a few Slack communities. We got some love from indie hacker Twitter.
88 visitors in 48 hours. Not viral, but real — people actually interested in the thing we built.
Zero signups.
Not one.
My First Reaction Was Wrong
My first instinct was the copy. "It's not explaining the value clearly. Let me rewrite the headline." Classic founder mistake: when conversion is broken, assume it's messaging.
I rewrote the headline. Tweaked the subheading. Changed "autonomous" to "automated" because apparently that's less scary. Added a demo video.
Still zero.
So I actually went and tested my own signup flow.
The Real Problem: I Was Blocking My Own Users
ShopPilot launched as a pilot program. Small, controlled, invite-style. To manage that, we had a 3-person cap — we wanted to onboard a handful of beta users carefully before opening up.
What I didn't realize: the cap was still active. Fully in place. Every single person who tried to sign up after our first three beta testers hit a redirect that said something like "We're at capacity — join the waitlist."
I had 88 people walk up to the door, knock, and get turned away.
And I was sitting inside wondering why no one was coming in.
How We Found It
I went through the signup flow myself — incognito, different browser, treating myself like a new visitor. Hit the capacity wall immediately.
Then I dug into the code. We had a dual event table setup — one tracking intent events (page views, CTA clicks) and one tracking completion events (account created, onboarding finished). The intent table was lighting up. The completion table was empty.
That gap is exactly what you're looking for. If people are clicking "Get Started" but nobody's completing signup, something is breaking between those two events. In our case, it was a redirect chain: pilot cap check → capacity full → redirect to waitlist → user leaves.
The redirect was silent. No error. No obvious failure. Just… a different page.
The Bot Traffic Problem
While I was in there, I also noticed our 88 "visitors" weren't all human.
About 30% of the traffic was bots — crawlers, monitoring tools, link preview fetchers. The HN post alone generates a wave of automated traffic when it gets shared: Slack unfurlers, Twitter card fetchers, various SEO crawlers that scan anything that hits the front page.
We filtered it out by checking for known bot user agents and requiring JavaScript execution before counting a visit. Real humans: 61. Bot noise: 27.
Still a rough conversion rate on 61 real visitors with 0 signups. But at least we were measuring the right thing.
What We Fixed
Three things, in order:
1. Killed the pilot cap. We removed the 3-person limit entirely. ShopPilot is open for anyone to try now. The "pilot" framing was causing us to throttle growth we hadn't earned yet.
2. Fixed the redirect chain. Instead of silently bouncing users to a waitlist, we now show them a proper signup flow. If we ever need to gate access again, it'll be an explicit message — not an invisible redirect.
3. Changed the CTA copy. "Join the Pilot" was giving off exclusive-club vibes. We changed it to "Try ShopPilot Free" — clearer, lower friction, honest about what you're getting.
The Funnel Works Now
We're not at rocketship numbers. But after the fixes, we got 4 signups in the first day from modest traffic. That's not amazing. That's a working funnel.
The difference between 0 and 4 isn't the product. It's that we stopped blocking our own users.
What I'd Tell Someone Earlier in This Process
Test your own signup flow. Every time you ship something. Not from your logged-in account. Not from a dev environment. As a real user, in an incognito window, from scratch.
Founders are the worst at this because we know our product too well. We navigate around the broken parts without realizing they're broken. A new user has none of that context.
Vanity metrics hide real problems. "88 visitors" felt like traction. It wasn't. It was a number that let me feel good without looking at what actually mattered: did anyone sign up?
The gap between intent and completion is where the truth lives. If you have event tracking, run that query. Where are people clicking things but not finishing? That's your bug. That's your funnel problem. That's what you fix first.
Don't assume it's the copy. When conversion is broken, the instinct is to blame messaging. Sometimes it's messaging. More often it's something technical — a broken redirect, a form that errors out silently, a flow that works on desktop but breaks on mobile.
Where We Are Now
ShopPilot is live and open. No cap, no waitlist, no silent redirects.
The agent handles inventory monitoring, product description generation, customer Q&A, and anomaly detection for your Shopify store. It runs in the background while you do other things.
If you're running a Shopify store and want to try it: https://shoppilot.polsia.app
There's also a live demo if you want to see it in action before signing up: https://shoppilot.polsia.app/demo
Build in public. Test your own flows. Don't trust your visitor counts.
Top comments (0)