Publishing, not conversion
We publish mobile apps. We do not turn websites into them.
Shiptavio builds, signs, and submits apps from source. If your product is still a website or a PWA, the conversion is your step. This page shows the routes that work and where our work starts.
Free apps only. No in-app purchases. Some app categories are not accepted. Read the prohibited apps list.
Website or PWA
HTML, CSS, and JavaScript running in a browser.
Convert it
You choose Capacitor, Expo, Flutter, or native and build the project.
Native source
A project with ios/ and android/ folders that can be compiled.
Shiptavio
We review, build, sign, and submit the source you send.
The boundary, in plain terms
We publish apps under our developer accounts. We are not a conversion studio. That distinction matters before you sign up.
What Shiptavio does
- Reviews the source you send before building.
- Runs your documented build command on our Mac.
- Signs and submits with our Apple and Google developer accounts.
- Tracks the release and works with you on store feedback.
- Transfers the app to your own developer account later if you want it.
What Shiptavio does not do
- Convert a website or PWA into a native project.
- Choose your framework or rewrite your screens.
- Create an ios/ or android/ project from scratch.
- Sell in-app purchases or subscriptions on your behalf.
- Guarantee that Apple or Google will approve the app.
Pick a conversion route
There is no single conversion. The route depends on how much of your web UI you want to keep and how much native behavior you need.
Capacitor
Wrap the existing web build in a native shell.
Platforms: iOS and Android
You reuse
HTML, CSS, JavaScript, and most screens.
Watch out
A thin wrapper with no native value can be rejected. Bundle the web build, do not point the WebView at a live URL.
Expo or React Native
Rebuild the screens with native components.
Platforms: iOS and Android
You reuse
JavaScript logic, API clients, types, and state.
Watch out
The DOM does not carry over. Screens are rebuilt with React Native primitives.
Flutter
Rewrite the app in Dart with one UI codebase.
Platforms: iOS and Android
You reuse
API contracts, assets, design tokens, and product logic.
Watch out
This is a full UI rewrite. HTML and CSS do not carry over.
Native
Build Swift and Kotlin apps directly.
Platforms: iOS and Android, two codebases
You reuse
API contracts, design tokens, and product logic.
Watch out
The most control and the most work. You maintain two separate apps.
TWA or Bubblewrap
Put a PWA on Google Play through a Trusted Web Activity.
Platforms: Android only
You reuse
The PWA itself.
Watch out
There is no iOS path. If you need both stores, you still need one of the routes above.
The conversion guide walks through Capacitor, Expo, Flutter, and native with the commands and the files to send. Compare the routes step by step.
The store has a minimum-functionality bar
A wrapper is not automatically an app. Apple's App Review Guidelines reject apps that are only a repackaged website with no native value, under Guideline 4.2. Google Play has a similar minimum-functionality policy. Build something that behaves like an app, not a browser tab with an icon.
- Native navigation that respects the back gesture and the Android back button.
- Offline handling and a real error state instead of a blank screen.
- Push notifications, camera, files, or other device features used on purpose.
- A layout that respects safe areas, the keyboard, and small screens.
- A privacy policy, account deletion, and a working demo account when needed.
- No remote URL wrapper. Bundle the web build into the app.
A PWA is a web app, not a native app. It can be useful, but adding an icon to the home screen does not make it native.
What we accept
Once the native project exists, we can build it. Send source, not a finished binary.
Source
- A GitHub repository URL, with our account added as a read-only collaborator.
- Or a zip of the project source, up to 200 MB.
- Include the ios/ and android/ folders, or the exact command that generates them.
- Include the lockfile and a build command we can run.
- Leave out node_modules, .git, build output, .env files, keystores, and private keys.
Store assets and details
- App icons, screenshots, and the Android feature graphic.
- App name, bundle or package identifier, support email, and privacy policy.
- Store text, keywords, categories, and the age rating answers.
- A working demo account if the app has a login.
- Reviewer notes for anything unusual in the build or the flow.
Capacitor and native projects go under Other in the framework dropdown. Expo, React Native, and Flutter have their own options.
Questions we get before signing up
The honest answers, including the cases where this service is not a fit.
Can I send a website or PWA and let Shiptavio convert it?
Do I need a Mac?
Will Apple accept a WebView wrapper?
Can I keep my Stripe subscriptions inside the app?
Which route should I choose?
What files do you need?
Can I use a no-code app builder?
Do you guarantee store approval?
Already have native source?
Register the app and send the project. If you are still at the website stage, start with the guide and come back when the native project exists.