Cold-Start Problem for Paid React Native Templates
How we got our first 100 paying customers: channels, numbers, and the framing that made it click
The first six weeks of selling paid React Native templates, we made $216. Not per month. Total. We had shipped a genuinely good product: full-stack, Supabase wired up, Expo builds passing, real screens instead of wireframes. And we were quietly failing.
This is the long version of how we moved from that starting point to 100 paying customers, and what a founder building a paid template business should copy from us or explicitly avoid.
Why paid templates are their own beast
A SaaS product has an easier funnel than a template shop. Prospect signs up, kicks the tires, hits a paywall on their own schedule. The trial does the selling.
Templates don't get that. The buyer trusts the code before they've read a single file, because the "trial" is a $79 hit on a credit card and a zip download. Every symptom of cold-start (low conversion, ghost carts, refund disputes) is downstream of that trust deficit.
Three things make it harder in 2026:
Loud, generic market. Search "React Native boilerplate" and you get 40+ results, mostly abandoned, all promising the same feature grid.
AI raised the bar. A serious dev can prompt Claude or Cursor into a working auth flow in an afternoon. Your template has to be obviously better than what they'd generate themselves.
Refund fraud is real. Once you announce a money-back guarantee (and you have to), a percentage of buyers will download, extract, and refund. You need conversion volume to absorb it.
None of this is a reason not to sell templates. It's a reason to be honest about what cold-start actually costs.
The four sub-problems, in the order they matter
Cold-start is not one problem. It's four. The mistake we made for six weeks was trying to solve all four with the same channel.
The order: trust deficit → evaluation friction → first-buyer risk → discoverability. Skip a step and the next one doesn't work.
| Sub-problem | Feels like | Fix |
|---|---|---|
| Trust deficit | "Who are you?" | Public writing on your own domain |
| Evaluation friction | "Is the code any good?" | Long technical posts, open small parts |
| First-buyer risk | "Zero reviews" | Soft launch + founder-price window |
| Discoverability | "How would I find you?" | Long-tail SEO + one launch moment |
Month one: what didn't work
Cold DMs. 120 personalized messages to React Native devs on Twitter/X. 8% reply rate. Zero sales. A $79 purchase from a stranger requires trust that a DM cannot build.
Paid Facebook ads. $340 spent on "React Native developer" targeting. 4 signups. 0 sales. Templates are considered purchases; considered purchases don't convert from infinite scroll.
A big generic code marketplace. Sales came in. So did a 22% refund rate. That marketplace's audience expects $9 UI kits, not $79 full-stack apps. Wrong audience. We pulled the listings.
One generic landing page for the whole shop. Nobody bought. What worked was the opposite: a dedicated page per template with real screenshots and specific promises.
Six weeks. $600 ad spend. Roughly $216 revenue. Total.
Months two and three: what worked
Long-form technical writing on our own domain
Not marketing posts. Patient, specific technical writing on problems React Native developers actually hit. Expo router internals. Supabase RLS patterns for mobile. Debugging EAS Build failures.
These posts don't go viral. They rank on long-tail queries three to six months after publication, and the traffic they bring is high-intent. Conversion rate from blog readers to sales: 0.4 to 0.8% depending on the post, far above any paid channel.
Example of a query pattern that started producing sales:
supabase edge functions react native example
expo push notifications production ios
row level security patterns mobile
For an early-stage template shop this is the single highest-leverage activity. It compounds. Every post we published in month two still brought traffic in month twelve.
Building in public, the real kind
Not motivational tweets. Real screenshots, real design decisions, real broken code. A stranger can flip through 40 tweets and form a fair judgment about whether you know what you're doing.
Example post format that worked:
Spent 2h today figuring out why Supabase RLS
denied INSERTs from the anon key even though
the policy looked correct.
Turned out to be:
- session refresh timing
- policy using auth.uid() instead of auth.jwt()
- missing WITH CHECK clause
Fixed policy below 👇
[image of the migration file]
About 30 of our first 100 customers came directly from Twitter followers who had watched us build for a couple of months.
A soft launch to a small, specific audience
Once we had a handful of buyers and public writing, we soft-launched to two Discords and one small mailing list of React Native indie devs. Specific pitch: real template, Supabase + Expo, founder pricing, refunds one email away.
Fourteen sales in the first 48 hours. It worked because:
The audience was pre-qualified (already RN indie devs)
The pitch was specific (real template, not abstraction)
The risk was low (7-day refund window)
A launch to a large generic audience would have produced the same 14 sales plus noise. Small specific launches almost always beat big generic ones for the first launch.
Month four: SEO compounds and word-of-mouth kicks in
By month four the SEO started to compound. Posts from months one and two started ranking on queries like "supabase auth react native template" and "expo push notifications production." Low volume, extremely high intent.
We did not chase big keywords. "React Native tutorial" is a lost cause; the SERP is owned by framework docs and legacy tutorials. Instead we chased specific technical queries that our templates actually solve.
Then somewhere around customer 55 to 65, something changed. Buyers started referring each other unprompted. A team would buy a template, ship an app, and their friend would email us asking "was that the one from Applighter?" This is the compounding you cannot force. You get it by shipping something buyers don't regret and being reachable when they email.
The pricing decision that unlocked the first 20 sales
We initially priced at $149. Sales were slow. We dropped to a founder price of $59 for the first two weeks per template, then $79 as the standard.
The $59 window wasn't about revenue. It was about generating the first testimonials that would reduce first-buyer risk for everyone after.
Month 1: $149 → few sales, high hesitation
Month 2: $59 launch window → ~20 sales + reviews
Month 3+: $79 standard → conversion doubles
Counter-intuitive move: do not lower your standard price, but do offer a public founder-price window with a clear expiry. Compress the first-buyer risk into a defined event.
The framing shift that mattered most
The single biggest change wasn't a channel. It was framing.
Month one: "React Native templates." Month three: "opinionated production apps you can rename and ship in a weekend." Same code, different frame.
The old frame invited buyers to compare feature checklists. The new frame invited them to compare outcomes. Checklist buyers ask "does it have social login?" Outcome buyers ask "how fast can I ship this?" The outcome buyer is the one who doesn't refund.
Every template page now leads with a screen video of the app running on a real device, not a feature list. Then shows the opinions we made (why we chose Supabase over Firebase, why we used Expo rather than bare React Native, why we picked NativeWind over StyleSheet) with links to the technical writeups explaining each choice.
Channel-by-channel scoreboard
| Channel | Effort | Customers | Notes |
|---|---|---|---|
| Own blog / SEO | High, front-loaded | ~34 | Compounds from month 3 |
| Twitter/X BIP | Medium, ongoing | ~28 | Trust-builder |
| Soft launch | Low, one-shot | ~14 | Highest per-hour ROI |
| Long-tail landing pages | Medium | ~12 | Per-template > generic |
| Word-of-mouth | Zero | ~9 | Kicks in ~50 customers |
| Cold outreach | High | ~2 | Skip it |
| Paid ads | Medium | ~1 | Wrong channel for $79 |
Three things we'd do differently
Start the blog before shipping the first template. SEO takes months. Every week you're not publishing pushes the compounding curve further out.
Launch to a smaller audience than feels right. 200 engaged React Native devs beat 2000 distant ones every time.
Don't touch paid ads until you have 200 organic customers. Before that, ads only teach you that you're bad at targeting.
The bottom line
The cold-start problem for paid React Native templates is real, and it's not really a marketing problem. It's a trust problem, and trust compounds slowly. The channels that solved it were the patient ones: writing publicly on our own domain, building in public without performing, small specific launches, refusing paid ads until we understood the funnel.
If you're at zero customers right now: publish more technical writing than feels reasonable, launch to smaller audiences than feels safe, and price a founder window that expires. Four months. First 100.
