I had the traffic. I just ran a shop with no price tags.
I launched Ninth Salon in August: you upload a photo, it comes back painted like a Renaissance, Baroque or Belle Époque portrait, and you can have it printed on canvas.
Then I did everything you are supposed to do. Product Hunt. Reddit. Indie Hackers. Uneed. Google Ads in French and English. A blog in three languages. Seven channels in three weeks.
The result:
That last number is the one that matters. People came. People uploaded a photo of their mother, their cat, themselves. They waited the minute it takes. They looked at the result. And then they left.
For a while I assumed it was a traffic problem and kept buying more of it. Product Hunt got me one upvote. The ads spent real money on the words "beautiful pictures and paintings". I emailed sixteen people who had generated a portrait and asked them, in their own language, what stopped them. Zero replies.
So the answer did not come from analytics. It came from two comments.
"Where are the prices?" Someone on Reddit told me flatly that a site hiding what it costs reads as an ambush. He was right. My pricing lived behind a link that only appeared once you had an account.
"Wait, I need credits to order a canvas?" Someone else pointed out that to buy the 99 € physical product, you first had to buy a credit pack. I had built a paywall in front of my own checkout and never noticed.
Neither of those is a design problem. Both of them are a shop with no price tags.
What the redesign actually changed
Prices on the home page. All four credit packs, all three canvas sizes, and what each quality level costs, before you upload anything.
The result screen sells the canvas first. It used to lead with the download, which is the cheap end of the funnel. Now the 79 € product is the primary button, at the moment you are looking at your own face painted.
A public gallery. Seventeen before and after pairs, visible without an account. That page used to be a login wall.
The canvas is orderable without credits. The print includes the unlock.
The part I did not expect
While rebuilding, I found a function that had been deleted in an earlier commit with its four call sites left behind. It had been quietly breaking the gallery, the result screen, and the screen people see right after paying. No server errors, because the failure was in the browser. It had been live for days.
If you are shipping alone: your funnel can be broken in a way that never shows up in your logs. Click through your own checkout, all the way to the end, on a real account.
Live at ninthsalon.com. Still zero external sales at the time of writing. I will report back either way.