Ship to the App Store and Google Play, without the SaaS wrapper tax.

Mobile App Development — iOS, Android, Cross-Platform

A Progressive Web App gets you the whole feature set at 5% of the cost. A native app gets you the App Store shelf and push notifications that survive the phone locking. I ship both — a Next.js PWA wrapped in Capacitor for iOS and packaged with Bubblewrap as an Android TWA — from a single codebase.

Why it matters

Every "we'll build native later" turns into two disconnected codebases and three years of divergence. The right shape for most B2B and consumer service apps is a single web codebase presented natively through the App Store and Google Play. It halves the maintenance and doubles the shipping velocity.

What you get

  • →Next.js 15 PWA as the single source of truth — every feature lives in one codebase.
  • →Capacitor iOS wrapper published to the App Store under the client's Apple Developer account.
  • →Android TWA via Bubblewrap published to Google Play under the client's Play Console.
  • →Native push notifications (APNs on iOS, FCM on Android) wired through the PWA layer.
  • →Biometric authentication (Face ID, Touch ID, Android Biometric) via native plugins.
  • →Offline-first data layer with IndexedDB + service worker + optimistic updates.
  • →GitHub Actions CI publishing new builds on tag push (macos-26 runner for iOS).
  • →App Store review passes on first submission — every rejection reason is anticipated before submit.

Stack

  • React Native
  • Flutter
  • Next.js PWA
  • Capacitor iOS
  • Bubblewrap Android TWA
  • Swift
  • Kotlin
  • Java
  • APNs
  • FCM
  • GitHub Actions macos-26
  • IndexedDB
  • Workbox

Delivered projects using this stack

Frequently asked questions

Native vs React Native vs Flutter vs PWA — which one?+

For 80% of business apps, a Next.js PWA wrapped in Capacitor (iOS) and packaged as Android TWA (Google Play) is the right answer. It uses one codebase, ships in weeks not quarters, and passes App Store review reliably. Native Swift / Kotlin is reserved for apps that genuinely need iOS-specific frameworks (CarPlay, HealthKit, HomeKit, deep camera access) or extreme performance (real-time video effects, games).

Do you publish under our Apple Developer / Google Play account, or yours?+

Always under the client's account. Publishing under a freelancer's account is a red flag on future acquisitions and a mess if the freelancer relationship ends. Setup of the Apple Developer account (US$99/year) and Google Play Console (US$25 one-time) is part of the engagement.

How long does App Store review take?+

For a well-formed submission, Apple review is typically 24–72 hours. Rejections come from missing metadata, unclear demo credentials, or IAP misconfigurations — all preventable at submit time. I have a preflight checklist that has passed first-submit reviews for Sensu Angela and Valee among others.

What about push notifications for the PWA-wrapped variant?+

They work natively. Capacitor exposes APNs to the iOS PWA layer, and the Android TWA has full FCM support. The web codebase calls a single unified API, the platform adapter routes to the right underlying provider.

Ready to start?

Send a written brief with the business problem to solve. I come back with a concrete plan against that document, in the client's language.

Contact →

Other services