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.

Your product

Website or PWA

HTML, CSS, and JavaScript running in a browser.

Your work

Convert it

You choose Capacitor, Expo, Flutter, or native and build the project.

Your work

Native source

A project with ios/ and android/ folders that can be compiled.

Our work

Shiptavio

We review, build, sign, and submit the source you send.

The first three boxes are your work. The last box is ours. We do not turn the first box into the third.

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.
See the full file checklist

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?
No. We build, sign, and submit apps from source. We do not turn a website into a native project, choose a framework for you, or rewrite your screens. The conversion work happens before you send us the project.
Do I need a Mac?
Not for Shiptavio. We build on our own Mac with our own developer accounts. Some conversion steps still need macOS: Capacitor's ios platform and Xcode builds are the usual examples. If you do not have a Mac, use a cloud macOS runner or choose a route with a build command we can run for you.
Will Apple accept a WebView wrapper?
Not automatically. 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. A wrapper needs real app behavior: native navigation, offline handling, notifications, or device features the website does not provide. Do not point the WebView at a remote URL and call it an app.
Can I keep my Stripe subscriptions inside the app?
We only publish free apps with no in-app purchases or subscriptions. If your web app sells digital goods or subscriptions, Apple requires In-App Purchase for that content, and we do not support it. This service is not a fit for that model.
Which route should I choose?
Capacitor is the fastest route when your web UI already works well on a phone. Expo and React Native are a better fit when you want a genuinely native UI and can reuse your JavaScript logic. Flutter is a full rewrite in Dart. Native gives you the most control and costs the most work. The route picker above compares them.
What files do you need?
Source, not a finished .ipa or .aab. Send a GitHub repository or a zip of the project source, include the ios/ and android/ folders, and give us the exact build command. We also need your icons, screenshots, feature graphic, store text, privacy policy, and a working demo account if the app has a login.
Can I use a no-code app builder?
Only if it exports a complete native project you can send us. If the tool only publishes to its own hosting, or only gives you a finished binary, we cannot build it. We need readable source and the native project, not a binary.
Do you guarantee store approval?
No. Apple and Google decide. We review every project before submission and work with you on a corrected build if the store flags an issue, but we cannot guarantee the store's decision.

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.

Web app or PWA publishing | Shiptavio