Skip to content
VC
Case 30 of 33 · Development / PWA

PWA iOS for a fitness studio: 1.2 MB vs 47 MB native, no App Store

A chain of 4 fitness studios wanted a mobile app for booking group classes, but didn't want to depend on store rules and pay 30% Apple commission. Built a progressive web app (PWA) — a site that installs on the phone like an ordinary app — with iOS Add to Home Screen, offline mode and push notifications.

Industry
Fitness studio chain (4 locations)
Stack
PWA · Workbox · IndexedDB · iOS
Timeline
~4-5 weeks
Outcome
1.2 MB vs 47 MB · 30% commission removed
Pain Point

Native iOS = store review on every change + 30% Apple commission + 47 MB install

The studio chain wanted a mobile app: group class schedule, booking, reminders 24 hours / 2 hours before training, visit history and memberships. Competitors built native iOS — but 30% Apple commission on in-app payments, $99/yr developer fee, and App Store review on every update, including text edits.

Second pain point: clients didn't want to "install yet another app". A competitor's native app got 2,100 installs in 14 days, but only 47% activated (opened more than once). Half the installs "lived" in the apps folder and were never opened.

The studios wanted to test new features quickly (e.g. video workouts), but the native flow required a fresh App Store review for every meaningful change — which blocked product velocity.

Solution

PWA with iOS-specific tuning for Add to Home Screen

  • PWA manifest + Service Worker (Workbox 7) — the app installs with one tap via "Share → Add to Home Screen" with full icon and splash screen
  • iOS-specific meta tags — apple-touch-icon for all iOS widths (180/167/152/120 px), `apple-mobile-web-app-status-bar-style`, `viewport-fit=cover` for notch on iPhone X+
  • Install prompt for iOS — iOS Safari doesn't show the install banner automatically, so we added our own "Install for notifications" prompt with a 2-screen walkthrough
  • Offline-first via IndexedDB — schedule, profile, training history, and membership cached locally. Viewable on the metro without network
  • Background sync — booking a class even offline. Service Worker saves the action and sends to the server as soon as network is available
  • WebPush + iOS 16.4+ support — push notifications for bookings and reminders 24h / 2h (with iOS 16.4 Apple finally supported WebPush in installed PWAs)
  • YClients embed + YooKassa — booking via YClients API, membership payment directly via YooKassa without 30% Apple commission
Stack

What's under the hood

Astro / Vite
build pipeline, SSG
Workbox 7
service worker + caching strategies
IndexedDB (idb)
offline-first data layer
PWA Asset Generator
icons for all iOS widths
Web Push API + VAPID
iOS 16.4+ push
YClients REST API
class booking
YooKassa
payment processing in RF
Sentry
production error monitoring
Results

PWA numbers vs native iOS

Install size
47 MB 1.2 MB
39× smaller
Time-to-deploy update
via store review 30 sec
no review per change
TTI on 4G
3.2 sec 0.8 sec
−75%
Apple commission on payments
30% 0%
saved
Activation (opened >1 time)
47% 71%
+24 pp
Bookings via app over 2 mo
+47%
vs web form

Saved: ~₽890,000 in the first year on Apple commission (vs native) with the same UX and push notifications. New-feature deploys — 30 seconds via CI/CD, no blocking App Store review.

Where it fits

Who benefits from PWA over native

  • Booking services (fitness / salons / SPA / clinics) — UX like native, no App Store review, no 30% commission
  • E-commerce — push notifications for order status, offline catalog, fast install straight from the browser
  • B2B tools for teams — no App Store distribution needed, central deploy for all employees
  • EdTech / online schools — assignment delivery, offline lesson viewing, no App Store review for every update
  • Performance campaigns with PWA landing pages — the app installs instantly, with none of the native-SDK fingerprinting problems
Similar challenge in your project?

From technical brief to a live PWA that looks and behaves like an App Store app — 4-5 weeks. Pricing from ₽450,000 for a first version (booking + offline + push), from ₽600,000 for a full PWA with integrations.

Discuss a PWA
Ready to start?

The 9,900 ₽ audit — with a concrete report and quote

I'll tell you what to deploy in your business first, what the payback looks like, and whether you need AI for the task at all (sometimes you don't).

Or just send your question — I reply within 2 hours