Sell Templates vs SaaS — 12 Months of Real Numbers
If you're an indie hacker on the "SaaS by default" hype train, this is the counter-post.
We ran a React Native template shop (Applighter) for twelve months instead of building the SaaS everyone told us to build. Below are the actual numbers, the trade-offs, and the decision framework we now use.
TL;DR
- Templates: higher AOV per sale, ~zero infra, zero pager, bounded support, no compounding.
- SaaS: compounding MRR, real churn, real pager, real infra bill, real feedback loop.
- Neither is passive. Both are full-time jobs. Pick based on what kind of job you want.
The 12-month table
| Metric | Templates (us) | Solo SaaS (previous project) |
|---|---|---|
| Avg deal size | $148 | $19/mo (~$228 annualized) |
| Refund / early cancel | 3.4% | ~5% |
| Support tickets / sale | 0.6 | 3.1 / active seat / yr |
| Monthly infra | ~$40 | ~$620 |
| Time to first $ | Day 11 | Day 47 |
| Weekend incidents (12mo) | 2 | 19 |
| Churn | N/A | 7.1% / mo |
The template stack
Every Applighter template ships with the same base:
# Every template is:
# - Expo SDK 54
# - React Native + TypeScript
# - NativeWind styling
# - Supabase (postgres + auth + storage + edge fns)
# - Stripe for in-app monetization
# - EAS Build ready
The tech consolidation matters commercially. When every product uses the same base, upgrades are a single sweep, not a per-product project.
// modules/services/AIService.ts — swappable AI backend
export interface AIService {
transcribe(audio: Blob): Promise<string>;
chat(messages: Message[]): Promise<Message>;
}
// Concrete: OpenAIService, AnthropicService, etc.
That interface is the reason we can promise "swap GPT-4o for Claude with a config change" and mean it. It's also the reason support tickets stay bounded — we don't get "your AI provider is broken" tickets because the provider is the buyer's choice.
Where SaaS beats templates
Compounding revenue. A template sale today doesn't pay you next month. A SaaS seat sold today at 3% monthly churn pays you ~33 more times. That's the whole reason people build SaaS. It's real and it matters.
Feedback. SaaS users are in your product daily. Template buyers vanish into their own codebase. You learn less than you'd think.
Pricing power. Raise SaaS prices annually. Templates are mostly a one-shot pricing decision.
Enterprise ceiling. SaaS scales into six- and seven-figure ACVs. Templates cap somewhere around a few $k per license.
If your product genuinely requires a hosted component — real-time collab, an API you route traffic through, a data pipeline the buyer can't self-host — templates are not viable. Build the SaaS.
Where templates beat SaaS
Infra is a rounding error. ~$40/mo covers our site, DB, and email. A SaaS at even modest scale needs multiples of that before month one.
Support is bounded by the sale. SaaS support scales with active seats forever. Template support scales with new sales and drops off after week two per customer.
No pager. No servers = no wakeups. Our only two "on-call incidents" in a year were us breaking our own site.
Zero data liability. We hold no customer PII beyond orders. Breaches don't propagate.
Pricing that fits on a napkin. Buy once, own forever, get updates. Try writing that on a SaaS pricing page.
The revenue mix
| Stream | Share |
|---|---|
| Template licenses | 71% |
| Bundle upgrades | 18% |
| Custom / enterprise | 8% |
| Affiliate + referrals | 3% |
Notice: no SaaS component. We prototyped a hosted "template runner" for a week and killed it — the moment you host something, your infra + support burden explodes.
The uncomfortable parts
Revenue is spiky. No MRR floor means a slow week hurts. We use a rolling 4-week average for any decision that matters.
Marketing is the whole job. No retention means every dollar needs a new buyer. If you hate writing, posting, and networking, don't sell templates.
Piracy exists. Templates hit nulled sites within a month. Buyers who pay ≠ people who pirate. File DMCAs, move on.
The math
- Solo dev: ~1920 productive hours/year.
- Each template sale ≈ 30 min of amortized effort.
- SaaS attempt with same input ≈ 45 seats × $19/mo × 12 = ~$10k ARR at month 12.
- Template shop crossed that in month 3.
Templates front-load payoff. SaaS back-loads it. If your runway is short and your compounding assumption is optimistic, front-loading is safer.
Related reads on this blog
- Best React Native boilerplates in 2026: honest comparison
- The React Native template industry is mostly broken
- How long does it actually take to ship a React Native app
External refs
- Expo docs — the runtime under every template we sell.
- Supabase RLS guide — the reason we can ship a real backend inside every template without hand-holding.
- Basecamp's Once — the sharpest existing counter-argument to SaaS-forever.
Verdict
Sell templates if:
- You can write code other developers will pay for on first look.
- You're willing to be a full-time marketer.
- You want the money now, not later.
If any answer is no, build the SaaS — and price for the pager.
Top comments (3)
The napkin price says own forever, get updates, and Expo majors land roughly every year. Does that update promise run indefinitely because the shared base makes each sweep cheap, or does each template generation get a defined support window? Twelve months in you must have data on what an upgrade sweep costs you per product.
The breakdown of support tickets and on-call hours really highlights why shipping a SaaS requires a fundamentally different mindset than selling one-off templates. When you sell a template, the customer relationship usually ends at the sale, but with a SaaS, you are constantly managing churn, feature requests, and infrastructure scaling. I noticed this exact shift in operational overhead when we were structuring PubliFlow to handle Supabase auth and billing out of the box, realizing how much boilerplate just distracts from the core product. Given the refund rates you mentioned, do you think the lower ceiling of template sales is actually worth the peace of mind compared to the relentless grind of SaaS metrics?
Killing the hosted template runner after a week is the most instructive line here, everyone building a template shop eventually gets tempted by "what if we host it" and the infra + support explosion you named is exactly what's waiting. Curious what the $40/mo covers, if a chunk of it is the shop itself: I got that line to zero by making delivery a private repo invite. Store is static on github pages, checkout is a stripe payment link, a scheduled action invites the buyer's github account after payment. The nice side effect is your napkin line "buy once, own forever, get updates" stops being a promise you fulfill by email, updates are just git pull. And refunds auto-revoke access, which quietly kills the buy-refund-keep pattern, though pirates gonna pirate either way, no delivery model fixes that. Engine's MIT: github.com/Honorboxx/honorbox The 0.6 tickets per sale number should be framed on the wall of every "just build SaaS" thread.