Demand, tested before launch. 6 segments, 317 signups, one buyer to build for
Kiwii Balance is a balance-sensing vibration board with a first run of 500 units. Before launch, I built the machine that answered the three questions a first run gets one chance at: who buys first, with what message, at what price.
Five hundred boards, one open question
The client had a finished product story. A board that senses your balance and coaches it with light, a ten-minute daily ritual, a first run of 500 units, a price anchor under $300, and a fall ship date. What remained open was which buyer moves first, a bet the launch could place only once.
The brand had at least six plausible buyers, and they wanted opposite things. A 64-year-old hiker treats balance as the membership fee for the life she loves. A desk worker wants an off switch for his body at 6pm. Someone mid weight-loss wants to stay steady while everything changes. One page written for all six cannot say which of them the first 500 units should serve.
So I ran the pre-launch as an experiment that picks a buyer. Each of the six personas got its own ads, page and survey lane. Every signup carried its segment, its creative angle and its price sensitivity back into one report.
Six pages, one design language
Each ad gets one headline to do the segmenting
Three message angles per persona, each with a single strongest headline and no backup. Same product, same board, six different reasons to want it. Six of these went live as the test. That is one creative per persona, so segment and angle travel together in the ad layer. The test reads how strongly each segment raised its hand, and it leaves open whether the segment or the headline produced the difference.
The market speaks first, and price is the last question
Read the market where it complains in public
I built the listener first. I wrote a Python collector against the Reddit API and pulled roughly 100 source threads from the GLP-1 communities where the weight-loss buyer already talks, with adjacent fitness and over-60 subreddits alongside. That research surfaced the language the pages ran on: "food noise," the fear of muscle loss, the low-energy days where even a walk feels like a negotiation.
Out of it came six personas, each with a named pain and a message angle, shipped as a 22-file knowledge base with an index written for AI agents. Every later step, ads, pages, survey, pulled from the knowledge base. The desk worker’s pain line came out of it fully formed: your calendar is full, your body kept the receipts.
~100 research threads → 6 personas → one shared knowledge base, 22 structured filesEighteen creatives, named so the data comes back
I gave each persona three static creatives, one per message angle, eighteen in all, each with a picture brief the client's designer produced the artwork from. The headlines did the segmentation out loud. For the Active Ager: "You track your steps. Who’s tracking your balance?" For the category fight: "Most boards shake. This one sees." For the desk crowd: "Ten minutes. A different kind of coffee break."
I named every asset the same way: segment, angle, format, version. UTM parameters carried that name through to the results dashboard, so each signup arrived tagged with the exact creative and claim that produced it. The weight-loss cluster ran under the strictest rules in the deck: human review on every asset, Advantage+ auto-copy switched off, and zero medication or treatment claims anywhere on the page.
6 clusters × 3 angles = 18 statics, two design rounds, UTM-attributed end to endSix pages that are one page, deliberately
I gave every persona its own page, and the six share an 11-module skeleton, where only two modules swap per segment: the pain narrative and the three proof points. Shared structure makes the test readable. When one page converts and another does not, the difference traces to those two swapped modules, because the other nine are identical. That control covers the pages. In the ad layer I ran the Meta account myself and held audiences and bidding the same across the six lanes, so only the creative changed. The skeleton also persuades: a mechanism module that explains the sensors as "lean left, and the light leads you back," a category-defense module built on one line, "shaking is not training," and an honesty module that promises no daily grades.
The copy went through two generations. Version one led with the technology: "The first board that sees your balance." The final version leads with the feeling, serif and quiet: "Wake your body. Gently." Underneath sits a design system reverse-engineered from Oura’s site, warm white, hierarchy through font weight, and one recurring visual rule: Oura photographs hands, so Kiwii owns feet. I built the six pages as a zero-backend React SPA with Klaviyo capture, live at launch.kiwii.ai.
11 modules · 2 swap per persona · 2 copy generations · 54 production image assetsSix surveys with one spine, price sensitivity read on a Van Westendorp pair
I built the survey as the landing page’s seventh screen, same warm white, same pill chips, so the visitor never feels the system change. The survey ran ten questions in six copies, with nine identical everywhere and one swapping per segment. The Premium Ritualist’s swap question asks the one thing that matters for a $300 object: "Why did your last wellness buy go quiet?"
I read price sensitivity through a simplified Van Westendorp pair, and the source page rode along as a hidden field. Finishing pays: the discount code appears inside a slowly breathing ring of warm light, the visitor’s first taste of the product’s LED ring before the product exists. Behind it, every address went through syntax, MX and disposable-domain checks, and the report deduplicated people who signed up through more than one ad.
10 questions · 9 shared, 1 per-segment · 186 completions at 59% · emails triple-checkedWhat the test told the client
Lead-side numbers, from Klaviyo list exports at the end of the test. Ad-platform spend figures stay with the client, so this page reports what the funnel itself measured.
Demand, on the record
317 email signups from six test ads, deduplicating to 298 people. Nineteen signed up through more than one ad, a small cross-segment group worth watching.
Signal quality
186 of the 317 signups finished the ten-question survey, a 59% completion rate, and 98.4% of addresses survived validation. Desk Reset had the fewest signups and the highest completion rate at 79%, which makes it the smallest and hottest segment in the test.
The price-sensitivity read
Willingness to pay $250 or more peaked with Active Agers at 16% and fell to zero for Desk Reset, though I kept no per-segment completion counts, only the 186 total, so that ranking is directional and stops short of a measured price. Premium Ritualist drew the most signups at 65, and Active Agers led on willingness to pay, so I told the client to build the first run around them.
What this bought the client
A 500-unit first run now ships toward the Active Ager, with a message that tested and a read on what that segment will pay for, in place of a launch aimed at six audiences at once. I deliberately kept the price off the page: the offer was an early-bird discount in exchange for the signup, so a visitor had no figure to anchor on.
Meta Ads
Klaviyo
React · Vite
Vercel
Python · Reddit API
UTM attribution
Three rules behind the test
Comparability beats cleverness.
Nine of ten survey questions identical across six segments, one skeleton under six pages. Every difference in the data traces to the message, because everything else was held still.
Compliance is part of the brief.
The weight-loss cluster shipped with human review on every asset, Advantage+ auto-copy switched off, and zero medication claims on the page. The segment with the most demand risk got the most editorial control.
Scarcity has to be true.
The internal rule reads: 500 boards must match the real first batch, and if the quantity changes, the copy changes. A pre-launch list is the start of a customer relationship, so the pages only say what is real.
Launching something and still guessing who buys?
I build the research, creative, landing and survey machinery that answers it. On Kiwii that meant six separate ad and page lanes and 317 signups, all before the inventory was committed.



