Best Practices for Updating a Remix.js Shopify App Post-Release

Hello everyone,

I’m currently developing a Shopify app using Remix.js, hosted on a VPS where it runs via PM2 to keep it alive.

I recently submitted the app for review after running npm run build, and everything was approved successfully. The issue I’m facing now is with updating the app after the initial release.

Every time I deploy an update, the proxy URLs and GDPR webhook endpoints in the Shopify Partners Dashboard (under Apps > My App > App setup > Configuration) get reset, and I have to manually reconfigure them.

Right now, my update process is:

  1. Make changes in the code.
  2. Run npm run build.
  3. Restart the app via PM2.
  4. Manually re-enter the proxy URL and webhook configuration.

I chose to host the app on a VPS due to the high cost of using services like Render or Fly.io, especially since the app is relatively simple.

I also tried using shopify app dev, but after releasing the app, the changes made during development are no longer visible or effective in production.

My main questions are:

  • How do you handle updates to your Shopify app after it has been released, without affecting existing configurations or breaking the app for current users?
  • Is there a better deployment workflow for Remix.js-based Shopify apps that avoids resetting proxy/GDPR settings?
  • Would it make sense to clone the app and develop on the clone, then manually port changes to the live version?
  • Are there any best practices or tricks you use to develop and deploy updates safely, especially when not using a platform like Render?

I’m still fairly new to Shopify app development, so I’d really appreciate any tips, workflows, or suggestions that could help me maintain and improve the app post-release without disrupting the experience for my users.

1 Like

Hey @Josh_C :waving_hand: - just to clarify to make sure I’m understanding correctly here - are you running into these issues when running the deploy command?

If so, we include a few different flags you can append to the deploy command. For example, if you set the include_config_on_deploy flag to true, you should be able to set the local config settings and have them carry over (vice versa if you set the flag to false).

Hope this helps - just wanted to first see how you’re managing your deployments, feel free to ping me here if I can help out any further at all :slight_smile:

1 Like

Hey, @Alan_G thanks for fast response, indeed i have already in tom file the
include_config_on_deploy true, i will try it to set it false.

Yeah i’m curious how you guys handle new changes added to the app without disturb current users which are using the app.

No worries - hope that helped a bit! For the most part, unless you’re changing the access scopes of the app, it shouldn’t disrupt current users. Basically, anytime a new access scope is requested by an app we do require the merchant’s approval/consent for your app to access the data, but other than that, updates should work smoothly when deploying new versions.

If you’re still seeing that same issue pop up though, let me know here and we can for sure take a closer look

Can you help me with a question, please. The app is deployed and is working properly and i want to add some changes to the extension and on shopify app deploy again is resetting the urls for proxy even with include_config_on_deploy false.

I’m doing something wrong?
Thanks!

Hey @Josh_C :waving_hand: - no worries and thanks for trying that. I’m going to DM you here since we may need to share some info that is a bit sensitive publicy (your app configuration/shop info, etc.), but happy to look into this further.

I’ll set that up on my end here :slight_smile: