TL;DR
- "Build vs buy" is the wrong framing. It's an engineering allocation problem, not a purity contest.
- ~80% of any mobile app is table stakes: auth, payments, push, RLS, EAS builds, nav. ~20% is your actual product.
- Building the 80% yourself runs roughly 200 to 490 hours before you write one line of product code.
- Most cheap templates are UI-only mood boards. That's why founders think templates are bad.
- Buy a template with a real backend, clean patterns, and a sane license. Then spend your whole budget on the 20%.
You've already lost a week
Every week another founder pings me with: "Should we build our React Native app from scratch, or buy a template?"
Honestly? If you've argued about this in Slack for more than half a day, you're already losing. It's the last-mile cousin of "should we use TypeScript?" and "should we use a monorepo?": an obvious answer 90% of the time, dressed up like it deserves a design doc.
The pattern I see across dozens of pre-launch teams:
- Founder writes a Notion doc: "custom stack vs. template"
- Doc grows a comparison matrix
- Co-founder pushes back on the matrix
- Two weeks pass. Zero code shipped.
- Someone just picks one and moves on
That pick is almost always right. The two weeks were pure sunk cost.
The 80/20 nobody tells you about
Founders overestimate how much of their app is actually theirs. Here's the 80%, written the way you'd actually scope it:
// The 80%: identical in basically every consumer/prosumer app
const tableStakes = [
"auth: email + OAuth + Apple Sign-In",
"password reset with deep-linked email tokens",
"row-level security on every table",
"push notifications: permission prompts + delivery receipts",
"IAP and/or Stripe checkout",
"offline-safe state + cache invalidation",
"error boundaries, loading skeletons, empty states",
"a11y labels + dynamic type",
"EAS Build, code signing, TestFlight, Play Console",
"OTA updates via expo-updates",
"legal screens + refund flows",
];
// The 20%: the thing your pitch deck is actually about
const differentiator = "the AI pipeline / matchmaker / workout planner / marketplace mechanic";
"Build from scratch" = building both arrays on one budget. "Buy a template" = skipping the first array so the whole team chases the second. Stated that way, the choice is boring.
The real question is which template, and whether it actually gives you a real 80%. Most don't.
What building the 80% actually costs
Rough, illustrative numbers (not a benchmark) at $80/hr for a mid-market React Native dev:
| Component | Optimistic hrs | Realistic hrs | At $80/hr |
|---|---|---|---|
| Auth (email + OAuth + Apple + reset) | 40 | 90 | $7,200 |
| Supabase schema + RLS + migrations | 30 | 70 | $5,600 |
| Push notifications (iOS + Android) | 25 | 60 | $4,800 |
| Stripe + license grants | 30 | 80 | $6,400 |
| Nav + deep links + tab bar patterns | 20 | 50 | $4,000 |
| EAS Build + submission automation | 15 | 40 | $3,200 |
| Design system + dark mode + a11y | 40 | 100 | $8,000 |
| Total for the 80% | 200 | 490 | ~$39,200 |
And "realistic" assumes a senior RN engineer who has already shipped push on production Android. Then there's the tail: Apple deprecates push cert formats, Supabase changes its auth SDK error shape, RN ships a new architecture. You own all of it. Forever.
What buying costs (when it goes wrong)
You grab a $59 marketplace template. Three weeks later you're ripping half of it out because:
- It was UI-only. No backend, no auth, no data layer.
- The license was ambiguous. Shipping it in a paid app costs extra.
- Copy-paste patterns everywhere, so every feature multiplies tech debt.
- React Navigation 5 with class components. In 2026. Two days of migration before feature one.
- AI agents choke on it. Cursor and Claude Code can't extend inconsistent patterns.
That's why so many devs end up in the "just build it" camp. Not because building is smart, but because their first template was so bad that anything felt better.
Audit a template in 60 seconds
Before you trust a template (or your agent does), run this against the repo:
# 1. Is TypeScript actually strict?
grep -E '"strict":\s*true' tsconfig.json || echo "⚠️ not strict"
# 2. How many state libraries are fighting each other?
grep -oE '"(redux|@reduxjs/toolkit|zustand|@tanstack/react-query|mobx|jotai|recoil)"' package.json
# 3. Class components hiding in there?
grep -rl "extends React.Component" --include=*.tsx . | grep -v node_modules | wc -l
# 4. Is there a real backend, or just screens?
ls supabase/migrations 2>/dev/null || echo "⚠️ no migrations: probably UI-only"
# 5. Is the vendor alive?
git log -1 --format=%cr
One state library, strict TS, zero class components, real migrations, recent commits: your agent can work with that. Anything else and it'll fight you.
The comparison you should actually run
Forget "custom vs. template." Compare what's in the repo on day one:
| Build from scratch | Cheap UI template | ThemeForest-tier | Applighter template | |
|---|---|---|---|---|
| First running app | 2–6 weeks | 3–7 days | 3–7 days | Same afternoon |
| MVP (real backend + auth) | 8–16 weeks | 6–10 weeks | 5–9 weeks | 1–3 weeks |
| Backend included | You build it | ❌ | Occasionally | ✅ Supabase (Postgres + RLS + edge functions) |
| Auth flows | You build them | Screens only | Screens only | ✅ OAuth + Apple |
| AI pre-wired | ❌ | ❌ | ❌ | ✅ Where relevant |
| Commercial license | You own it | Ambiguous | Per-app fees | ✅ One-time, upgradeable |
| Agent-friendly | Depends | Rarely | Rarely | ✅ |
| Lifetime updates | You maintain | ❌ | ❌ | ✅ |
Timelines are indicative ranges based on typical scope, not measured benchmarks.
The real delta isn't custom vs. template. It's templates that ship a product vs. templates that ship a mood board.
Where is your differentiator, really?
- Product-shaped: AI pipeline, matching algorithm, workout logic, onboarding funnel. Most apps live here. Buy.
- Infrastructure-shaped: novel native audio pipeline, custom protocol, on-device private ML, bespoke offline sync. Build, or fork hard.
Most founders who claim to be infrastructure-shaped aren't. Be honest.
Don't build from scratch if...
- No senior RN engineer is on it full-time.
- Your deadline is under eight weeks.
- Your pitch is a screen mock, not a systems diagram.
- You'd write auth, payments, and push anyway (0% of your moat).
- Your AI agent will do most of the coding. Agents extend clean patterns; they flounder on greenfield sprawl.
Don't buy (or return it) if...
- It's UI-only. That's a Figma export.
- The license is ambiguous or per-app.
- The code fights your agent.
- The vendor is dead: no commits in a year.
- You can't swap the backend or AI provider (GPT-4o → Claude, Whisper → Deepgram) without a rewrite.
What a good buy looks like
Concrete example: the AI Voice Notes template on Applighter ($79):
- 16+ screens in React Native + Expo, TypeScript everywhere
- Supabase backend: schema, RLS, storage, edge functions
- Recording → transcription → summarization, already wired
- EAS Build config ready for TestFlight + Play Console
- One commercial license, upgradeable to multi-app
- Lifetime updates, no subscription, 7-day refund window
Whatever vendor you pick, the same three questions apply: real backend? holds up under an agent? license lets you succeed without punishing you?
The middle path: fork it
Buy, then fork aggressively. Rip out what you don't need, keep auth + Stripe + push + React Native nav patterns, and own the parts that matter. This is why license terms matter more than price: a $49 template you can legally fork beats a "free" one with restrictive terms.
Quick FAQ
Always cheaper to buy? For the 80%, yes, by a wide margin, if the template includes a real backend. UI-only templates save less than you think.
Can I customize it? On a good template, it's your code. On a bad one, customization = rewrite.
Does a template hurt acquisition value? No. Acquirers care about metrics and code quality, not code origin.
Swap the backend later? Ask before you buy. Modular templates let you swap Supabase ↔ Firebase or GPT-4o ↔ Claude without a rewrite.
Build vs buy is a symptom, not a decision. If you can name your differentiator in one sentence, you already have your answer.
So what's your 20%? Drop a comment with what you're building and whether you started from scratch or a template. 👇
Top comments (0)