diff --git a/messages/en.json b/messages/en.json
index 45fef41494..061bf41a2c 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -1977,6 +1977,19 @@
"storage-total": "Total",
"storage-usage": "Storage usage: ",
"stored-externally": "stored externally",
+ "store-release-onboarding-badge": "One onboarding step left",
+ "store-release-onboarding-body": "Capgo has seen a Live Update bundle for this app, but not a store-installed app with the updater plugin yet. This step disappears after a store build opens and checks in.",
+ "store-release-onboarding-body-testflight": "A TestFlight build has checked in. Publish the same native build to the App Store so production users get the updater plugin too.",
+ "store-release-onboarding-body-track-unknown": "An Android store build has checked in, but Android does not expose whether it came from production, alpha, beta, or internal testing. This does not complete the store-release step.",
+ "store-release-onboarding-builds": "Open Builds",
+ "store-release-onboarding-devices": "View Devices",
+ "store-release-onboarding-step-live-update": "Live Update tested",
+ "store-release-onboarding-step-store-release": "App Store build opened",
+ "store-release-onboarding-step-testflight": "TestFlight detected",
+ "store-release-onboarding-step-track-unknown": "Android store detected, release track unknown",
+ "store-release-onboarding-title": "Release an App Store build with Capgo installed.",
+ "store-release-onboarding-title-testflight": "TestFlight is detected. Publish the store build to finish onboarding.",
+ "store-release-onboarding-title-track-unknown": "Android store install detected, but the release track is unknown.",
"test-preview": "Test preview",
"stripe-billing-portal-will-be-opened-in-a-new-tab": "Stripe billing portal will be opened in a new tab",
"subscribed-events": "Subscribed Events",
diff --git a/src/components.d.ts b/src/components.d.ts
index 9aca8ecc30..1961c6fb3b 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -81,6 +81,7 @@ declare module 'vue' {
StepsApp: typeof import('./components/dashboard/StepsApp.vue')['default']
StepsBuild: typeof import('./components/dashboard/StepsBuild.vue')['default']
StepsBundle: typeof import('./components/dashboard/StepsBundle.vue')['default']
+ StoreReleaseOnboardingBanner: typeof import('./components/dashboard/StoreReleaseOnboardingBanner.vue')['default']
TableLog: typeof import('./components/TableLog.vue')['default']
Tabs: typeof import('./components/Tabs.vue')['default']
TabSidebar: typeof import('./components/TabSidebar.vue')['default']
diff --git a/src/components/dashboard/StoreReleaseOnboardingBanner.vue b/src/components/dashboard/StoreReleaseOnboardingBanner.vue
new file mode 100644
index 0000000000..be1c380b28
--- /dev/null
+++ b/src/components/dashboard/StoreReleaseOnboardingBanner.vue
@@ -0,0 +1,218 @@
+
+
+
+
+