Publishing to stores

Checklist

Let's publish your TurboStarter app to stores!

When you're ready to publish your TurboStarter app to stores, follow this checklist.

This process may take a few hours and some trial and error, so buckle up — you're almost there!

Create Supabase project

Why it's necessary?

Creating a Supabase project is the foundational step to set up your database, authentication, and storage services in the cloud. This will serve as the backend for your SaaS application.

How to do it?

  • Go to Supabase and sign up for an account if you don't already have one.
  • Click on the "Create a new project" button.
  • Enter your project name, region, and organization.
  • Click on the "Create project" button.

Migrate database

Why it's necessary?

Pushing database migrations ensures that your database schema in the remote Supabase instance is configured to match TurboStarter's requirements. This step is crucial for the application to function correctly.

How to do it?

You basically have two possibilities of doing a migration:

TurboStarter comes with predefined Github Action to handle database migrations. You can find its definition in the .github/workflows/publish-db.yml file.

What you need to do is to set your DATABASE_URL as a secret for your Github repository.

Then, you can run the workflow which will publish the database schema to your remote database instance.

Check how to run Github Actions workflow.

Setup backend

Why it's necessary?

Setting up the backend is necessary to have a place to store your data and to have other features work properly (e.g. auth, billing).

How to do it?

Please refer to web deployment checklist on how to setup and deploy the backend to production.

Environment variables

Why it's necessary?

Setting the correct environment variables is essential for the application to function correctly. These variables include API keys, database URLs, and other configuration details required for your app to connect to various services.

How to do it?

Use our .env.example files to get the correct environment variables for your project. Then add them to your eas.json file under correct profile.

eas.json
{
  "profiles": {
    "production": {
      "extends": "base",
      "autoIncrement": true,
      "env": {
          "APP_ENV": "production",
          "EXPO_PUBLIC_SITE_URL": "<your-site-url>",
          "EXPO_PUBLIC_SUPABASE_URL": "<your-supabase-url>",
          "EXPO_PUBLIC_SUPABASE_ANON_KEY": "<your-supabase-anon-key>",
          "EXPO_PUBLIC_AUTH_PASSWORD": "true",
          "EXPO_PUBLIC_AUTH_MAGIC_LINK": "false"
      }
    }
  }
}

Build your app

Prerequisite: EAS account

Building your app requires an EAS account and project. If you don't have one, you can create it by following the steps here.

Why it's necessary?

Building your app is necessary to create a standalone application bundle that can be published to the stores.

How to do it?

You basically have two possibilities to build a bundle for your app:

TurboStarter comes with predefined Github Action to handle building your app on EAS. You can find its definition in the .github/workflows/publish-mobile.yml file.

What you need to do is to set your EXPO_TOKEN as a secret for your Github repository. You can obtain it from your EAS account, learn more in the official documentation

Then, you can run the workflow which will build the app on EAS platform.

Check how to run Github Actions workflow.

Submit to stores

Why it's necessary?

Submitting your app to the stores is necessary to make it available to your users. That's the only way to get your app in front of your users.

How to do it?

To submit your app to the stores, you will first need to get your app bundles. If you ran previous step locally you already should have the .ipa (for iOS) and .aab (for Android) files in your app folder.

If you used Github Actions to build your app, you can find the results in the Builds tab of your EAS project. Download the artifacts and save them on your local machine.

Then, you would need to upload the bundles to the stores, here's how to do it:

Please follow the official documentation on uploading your app to the App Stores.

Auto-submit is coming soon

We're working on an auto-submit feature for EAS, which will automate the process of submitting your app to the stores.

See roadmap

Send to review

Why it's necessary?

Sending your app to review is necessary to make it available to your users. That's the only way to get your app in front of your users, because you must follow the stores' guidelines and get your app approved.

How to do it?

You need to send your app to review to the stores, you can do it by going to the App Store and Google Play Console.

Unfortunately, it's not possible to automate this step, so you'll need to do it manually.

  1. Go to App Store Connect
  2. Select your app
  3. Create new version
  4. Fill release notes and other relevant information
  5. Attach your uploaded .ipa file to a version
  6. Click on Send to Review
  7. Confirm your submission
  8. Wait...

Follow the official documentation for more information.

Then, you would have to wait for the review process to complete. This process can take from a few hours to a few days, depending on the stores and the type of app you have.

Your submission might be rejected

If your submission is rejected, you'll receive an email from the stores with the rejection reason. You'll need to fix the issues and upload a new version of your app.

Make sure to follow the guidelines or check publishing troubleshooting for more info.

When you receive the approval from the stores (by email or by push notification), you'll be able to publish your app on the stores.

Review notification

That's it! Your app is now live and accessible to your users, good job! 🎉

Other things to consider:

  1. Optimize your store listing description, keywords, and other relevant information for both stores.
  2. Remove the placeholder content in the app / or replace it with your own.
  3. Update the favicon, scheme, splash screen and logo with your own branding.

Last updated on

On this page

Ship your startup everywhere. In minutes.Get TurboStarter