Every May, our studio gets the same call from at least three Taiwan SMB owners. The conversation always starts the same way: "I just opened my SHOPLINE / Shopify renewal quote for next year, and it's gone up again. I want to know what it would cost to just build something that's mine." This article is the conversation we have with them, in public.
For a SHOPLINE Plus or Shopify Plus tier client doing roughly NT$8M–NT$30M / year in online revenue, the math has flipped in 2026. The combination of (a) FrankenPHP making PHP genuinely production-grade out of the box, (b) MySQL 9.7 LTS bringing JSON Duality and dynamic data masking into the community edition, (c) headless Next.js storefronts that deploy to Vercel or Cloudflare Pages for cents per month, and (d) Stripe / TapPay / NewebPay / ECPay all having mature SDKs — means a custom storefront is now a 6–8 week project, not a 6-month one.
1. The exact stack we propose to a Taiwan SMB in 2026
Storefront: Next.js 15 with App Router, deployed to Vercel or Cloudflare Pages. Mobile: a thin Flutter wrapper that reuses the same headless API. Backend: Laravel 13 on FrankenPHP, with the official Laravel AI SDK for product description generation, recommendation, and customer support summarization. Database: MySQL 9.7 LTS, using JSON Duality so the storefront API serves nested product / variant / inventory / review payloads from a single SELECT, and dynamic data masking so customer PII is hidden from non-production developers by default. Payments: TapPay or NewebPay for Taiwan, Stripe for international. Logistics: 7-Eleven / Family Mart pickup integration via the standard ECPay convenience-store API. Search: Meilisearch self-hosted on a NT$300/month VPS. Image CDN: Cloudflare Images. Analytics: GA4 + a custom ai_visits table for AI Crawler / Pay-Per-Crawl events.
2. The numbers that move the meeting
SHOPLINE Plus or Shopify Plus tier in Taiwan — realistic all-in cost for a NT$15M / year merchant — runs around NT$15,000–NT$45,000 / month in platform fees plus 1.5–2.5% per transaction in payment + platform takes. Annualized: NT$180,000–NT$540,000 in platform rent alone, plus NT$225,000–NT$375,000 in transaction percentage points. Total platform tax: roughly NT$400,000 to NT$900,000 per year.
A custom build of the stack above runs us 6–8 weeks (NT$450,000–NT$700,000 one-off). Hosting after launch is roughly NT$3,000–NT$8,000 / month all-in (Cloudflare Pages, a NT$1,500 Hetzner / DigitalOcean droplet for FrankenPHP + Laravel, a managed MySQL 9.7 instance, Cloudflare Images, Meilisearch on the same droplet). Annualized hosting: NT$36,000–NT$96,000.
The first-year crossover is therefore "build cost + 1 year of hosting" vs "1 year of platform tax" — already in the merchant's favor. Year two is pure savings: the merchant pays roughly 90% less for the same throughput.
3. Why the conversation should not start with cost
If a small studio leads with "we'll save you money," the meeting goes nowhere — every SaaS sales rep has a counter-spreadsheet ready. The conversation that closes is about ownership. Three things the SaaS path can never give the merchant: ownership of the customer database (no platform lock-in on email lists, order history, or LTV calculations); ownership of the checkout UX (every conversion-rate experiment a SaaS platform won't let you run); ownership of the AI surface (the merchant's product copy, FAQ, and review summaries become first-party AI-citable content under their domain, not a sub-domain of a platform).
4. Where our edge is — and where it isn't
We win when the merchant has crossed roughly NT$10M / year, has a non-trivial product catalog (50+ SKUs with variants), needs Taiwan-specific logistics (7-Eleven / Family Mart pickup, ATM transfer with virtual accounts), and has either a B2B side (custom pricing, account-level discounts) or a content marketing motion (blog, AEO/GEO play). At that profile, custom is unambiguously cheaper, faster to iterate, and more defensible.
We do not win — and we say so — when the merchant is under NT$3M / year, has fewer than 20 SKUs, and ships only via a single carrier with no B2B side. At that profile, SHOPLINE Free or Shopify Basic is genuinely the right answer, and we'll tell them so on the first call.
5. What the engagement actually looks like
Week 1: discovery + visual direction. We mirror the existing SHOPLINE store, audit catalog, list every Taiwan-specific integration the merchant currently relies on. Week 2–4: backend + admin (Laravel 13 on FrankenPHP, MySQL 9.7 schema, masked seeders, payment + logistics integrations, Filament admin panel scoped per role). Week 4–6: storefront (Next.js + Tailwind, design system from existing brand, mobile-first checkout, AB-testable hero / PDP). Week 6–7: data migration from SHOPLINE / Shopify (orders, customers, products) with dual-write window. Week 8: cutover, DNS flip, 30-day stabilization SLA.
After launch, the client owns the repo, the database, and the deploy keys. Our role compresses to a managed-hosting + monthly-feature retainer at roughly the cost of a junior in-house developer — but with a team behind it.