Hi everyone,
My team and I are currently developing an Offsite Shopify Payment App for an Italian Payment Gateway. This means the app is not embedded.
I’ve noticed that the React Router template based on shopify-app-reaxt-router package doesn’t support this:
opened 11:50AM - 05 Feb 26 UTC
closed 08:31PM - 13 Mar 26 UTC
Hello Shopify Team,
Almost a year ago, I opened [an issue](https://github.com/S… hopify/shopify-app-js/issues/2317) requesting support for React Router v7. When I revisited the thread today, I saw the following note:
> Non-embedded support
> If you don't know what this means, your app is probably embedded. You can skip this section if your app is embedded.
>
> Around 2% of Remix apps render in a separate tab or window (Non-embedded). This merchant UX is not as good so we are dropping support for this in the RR package. If your app is not embedded you can migrate to embedded, or stay on the Remix package.
>
> Around 98% of Remix apps are unaffected by this change.
Our team is in that ~2%. We are building a Shopify-only app that is intentionally **non-embedded**, and we rely on ongoing support for this setup. We made this architectural choice early and invested heavily in it based on Shopify’s ecosystem and tooling direction at the time. Our app, by its nature, is not an embeddable app.
From our perspective, support for Remix and related packages has been steadily shrinking after its deprecation, and this makes our technology stack increasingly difficult to maintain and evolve. That is why we need to migrate to React Router v7 soon.
Dropping support for non-embedded apps in a core package puts teams like ours in a difficult position. Migrating to embedded is not always a simple or feasible option, and “stay on the Remix package” effectively means falling behind over time.
We’d really appreciate a clear direction here, because this impacts our roadmap and long-term maintainability significantly.
and we need to reimplement the authentication flow using the core shopify-api package. Meanwhile, the Remix template with shopify-app-remix package supports this use case by default.
What do you think I should do:
1. stick with Remix
2 Or migrate to React Router and reimplement the auth flow for a non-embedded app?
Thanks for your support