Services

Website + App + Admin in One Stack: The Real Cost of Going Integrated (and When You Shouldn't)

2026.06.11 · 39 views
Website + App + Admin in One Stack: The Real Cost of Going Integrated (and When You Shouldn't)

A shared Laravel backend turns three disagreeing systems into one source of truth — here's the five-phase process, the hidden costs, and a decision checklist.

Share:

An 8-year-old bubble-tea chain owner laid three logins in front of me: the website built by Agency A, the ordering app by Agency B, and inventory on a packaged SaaS. Every day store managers reconcile three systems by hand; month-end revenue-and-inventory matching alone eats two full days. His question was simple: "Can these three become one?" That's the classic starting point for "website + app + admin" integration — not wanting new features, but being unable to stand systems that disagree with each other.

When it fits vs when it doesn't

  • Fits: the same product/member/order data must appear across website, app, and admin; you already reconcile too many systems by hand; you plan to expand locations or SKUs within 1–2 years and need a single source of truth.
  • Fits: you want orders placed on the website to show in the app and decrement inventory in admin in real time; you want unified loyalty points across channels.
  • Doesn't fit: the business model is still being validated and products/flows change monthly — forcing integration welds down "things not yet settled."
  • Doesn't fit: you have a single channel (e.g., website only) with no cross-system reconciliation pain; or budget covers only one piece, so a full stack leaves each piece shallow.

Alternatives matrix

OptionProsConsCost tier
Separate packaged SaaS per channelFast, monthly entrySiloed data, limited customization, fees compound over timeLow–mid (NT$3,000–30,000+/mo)
iPaaS gluing existing systems (Zapier / Make / n8n)Keeps current tools, quick wiring"Glue" not "integration"; consistency via polling, brittleMid (tool fees + integration hours)
Custom integrated stack (shared backend API)Single source of truth, evolvable, real-time cross-channel syncHigher upfront, longer buildHigh (from NT$300k, scope-dependent)

ScriptWalker uses one Laravel backend API as the shared core; the website (Web) and app (one Flutter codebase across iOS/Android) share the same data and business logic, and admin is the management UI of the same permission system.

Full process breakdown (with tools and deliverables)

  • Phase 1: Requirements & data model (1–2 weeks) — Deliverables: cross-channel data dictionary (how member/product/order/inventory are shared), draft API spec. Tools: Figma (flows), Notion (specs).
  • Phase 2: Backend API & database (3–5 weeks) — Deliverables: Laravel API + MySQL schema, permission model, API docs. This is the heart of the stack.
  • Phase 3: Website & admin (3–4 weeks) — Deliverables: public site, admin UI (inventory, orders, members).
  • Phase 4: Flutter app (4–6 weeks) — Deliverables: iOS/Android app sharing the same API.
  • Phase 5: Integration testing & launch (2–3 weeks) — Deliverables: cross-system sync test report, payment integration (ECPay/Stripe), go-live. Tools: UptimeRobot (monitoring), Sentry (error tracking).

Full real-cost breakdown

  • Development: integration from NT$300k; with an app, typically NT$600k–1.5M.
  • Payment fees (hidden): ECPay credit card ~2.75%–3%, Stripe ~3.4% + fee; the more cross-channel volume, the bigger this gets.
  • Store fees (hidden): Apple Developer US$99/yr, Google Play one-time US$25.
  • Infrastructure (hidden): server/cloud monthly, SSL (mostly free now), CDN, SMS/push.
  • Ongoing maintenance (most overlooked): OS updates, API changes, security patches — budget 15%–20% of dev cost per year.

Reality vs client imagination

  • Clients think "merging three systems is just wiring screens together"; reality: you unify the data model first, screens come last — if data isn't aligned, no pretty UI reconciles.
  • Clients think "the app does the same as the website, so it takes similar time"; reality: dual-platform review, push, and offline handling usually make the app take more hours.
  • Clients think "launch once and done"; reality: iOS/Android force annual updates; an unmaintained app gets delisted or uninstallable within 1–2 years.

Common traps and how to avoid them

  • Trap: build the app first, backfill the backend. Fix: always define the shared API and data model first; app and website are its consumers.
  • Trap: inventory counted separately on web and app. Fix: store inventory in one place on the backend; all channels read the same number live.
  • Trap: member systems don't talk across channels. Fix: one identity (SSO/single user table); points and orders consistent everywhere.
  • Trap: payment hard-wired to one provider. Fix: abstract a payment interface so switching ECPay/Stripe/TapPay doesn't touch business logic.
  • Trap: no staging, change production directly. Fix: route every change through staging with automated tests before launch.

Success metrics + 90-day roadmap

  • Day 30: cross-system reconciliation time down (target: from 2 days/month to 0), zero data-consistency errors.
  • Day 60: app installs, cross-channel repeat-login rate, order-source split (web vs app).
  • Day 90: average order value and repurchase rate (do cross-channel points lift repurchase?), admin-hours reduction — decide the next phase (auto-replenishment, push marketing).

Decision checklist

  • ☐ My member/product/order data is manually synced across 2+ systems
  • ☐ I spend more than 1 day/month on cross-system reconciliation
  • ☐ I plan to expand locations or SKUs within 1–2 years
  • ☐ I need customers to see the same live inventory on web and app
  • ☐ My business processes are largely settled (not changing monthly)
  • ☐ My budget covers the core backend + at least one front-end channel
  • ☐ I understand the app needs long-term maintenance (annual OS updates)
  • ☐ I'm willing to invest in the data model before pretty screens
  • ☐ I need consistent cross-channel loyalty points
  • ☐ I have staff or a partner to keep operating the system post-launch

6+ checks: integration pays off; fewer than 4: nail your most painful single channel first.

FAQ

Must integration include the app?

No. The core is "shared backend API + single source of truth." You can do website + admin first, designing the API to accept an app later; add the Flutter app when channel demand matures.

I already have a website and a SaaS admin — can I still integrate?

Yes, but first assess whether the existing systems expose APIs. If the SaaS is closed and can't export live data, integration becomes brittle polling; rebuilding a shared backend often costs less long-term than forcing glue.

After integrating, do I change all three systems to edit one feature?

The opposite. A shared backend means business logic changes in one place and reflects across website, app, and admin. Siloed systems need three edits — exactly the problem integration solves.

How long to launch?

A full stack with an app usually takes 4–6 months; doing website + admin first with the app later, phase one launches in ~2–3 months, depending on product complexity and payment/logistics integration.

Call to action

Want to know whether your three systems should become one — and what it costs? We offer a free 30-minute integration assessment to map your data flows and real costs.

Share: