Best practices for creating a separate "Testing/Staging" app for an existing Public App?

Hi everyone,

We currently have an approved Public App live on the Shopify App Store. We are looking to create a separate “Testing” version of this app to test new features with specific clients before rolling them out to our main production codebase.

We want this testing app to:

  1. Be a separate app record in our Partner Dashboard (to avoid mixing up API keys and Redirect URLs).

  2. Use the same codebase as our production app (but likely on a staging branch/environment).

  3. Be installable on specific client stores (outside of our own development stores) for UAT (User Acceptance Testing).

My questions are:

  • Distribution & Review: Since this is just for testing, do we need to submit this second app for review? My understanding is that we can keep it as a “Draft” public app, but I’m unsure if Shopify allows installing unpublished public apps on “real” merchant stores for testing.

  • Custom vs. Public: We don’t want to create this as a “Custom App” for each client. Is there a way to have one “Beta” Public App that remains unlisted/unpublished (not visible on the app store) but can be installed via an installation link?

Any advice on the cleanest workflow for maintaining a staging environment that mimics production would be greatly appreciated!

I really wouldn’t recommend this approach for rolling out changes to individual merchants for testing.

What you’re describing is know as “feature flagging” where you enable certain functionality to a limited audience so you can get detailed feedback or limit risk in case of an issue.

That can be controllable with a single app definition, but using ENV vars or a feature flag framework to control which merchants can view these special features.

I would only limit a staging environment to internal testing use, because:

  1. Creating additional environments adds overhead
  2. Production ENV key duplication, database connections, etc (security concern)
  3. Inability to use the Shopify Billing API for unapproved apps

Hope this helps

Hi Dylan

Thanks for the feedback!

I definitely see the value in feature flags for UI changes or app abilities.

However, our specific need is to test new ideas that might include significant changes that are difficult and unsafe to toggle via flags.

We want to ensure that if the staging environment fails, our production users remain unaffected.

Regarding billing, these testers will be on a free tier for the duration of the UAT, so the Billing API limitation isn’t a deal breaker for us.

Is there a way to have a separate app for testing + install it outside of our partners zone?
If a client lists us as a collaborator on his site, can we install the test APP?

Thanks

Long story short, not really. Unless you want to manage a custom app per merchant.

Even then there are limitations, because now custom apps need to be created via the Developer Console.

I really don’t recommend this approach. It will slow you down.

You can either try limiting the scope of your changes so they are less risky, or take the feature flag approach like I mentioned.

OK
Thank you
Happy new year :slight_smile:

Can I apply for a new app review?