How it works
Despia loads your web app inside a native Swift and Kotlin shell. Your existing JavaScript, React, Vue, or any other framework runs as-is. Native capabilities are exposed viadespia() calls from your existing code.
In-app purchases, built in
Apple and Google require their own billing systems for digital content. Implementing this yourself means integrating StoreKit (Swift) for iOS and Google Play Billing (Kotlin) for Android, plus keeping them in sync. Despia includes RevenueCat as a built-in, accessible from your web layer with a single call.entitlementId. No platform-specific code.
Push notifications, built in
OneSignal is included. No APNs certificate management, no Firebase configuration, no native SDK setup:include_external_user_ids.
Install attribution and ad analytics, built in
AppsFlyer ships with every Despia app. Three variables are injected automatically on every page load, no setup, no SDK initialisation:Offline support
Add the@despia/local build plugin to serve your app from http://localhost on the device. Your app loads in milliseconds after first launch and works fully offline. No service worker complexity, no file:// protocol issues.
No separate mobile codebase
Your web app is the source of truth. iOS and Android run the same code. Any change you deploy goes to web, iOS, and Android simultaneously via OTA. This is the opposite of React Native, where you maintain a parallel codebase with its own component library, navigation system, and platform-specific logic.Getting started
In-App Purchases
RevenueCat built in
Push Notifications
OneSignal built in
AppsFlyer
Attribution built in
Native Features
All despia() capabilities