Skip to content

Explain the empty-organization store creation prompts in app dev - #8460

Merged
nickwesselman merged 1 commit into
mainfrom
nick/dev-store-empty-org-notice
Sep 2, 2026
Merged

Explain the empty-organization store creation prompts in app dev#8460
nickwesselman merged 1 commit into
mainfrom
nick/dev-store-empty-org-notice

Conversation

@nickwesselman

@nickwesselman nickwesselman commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

Stacked PR. Base is nick/dev-store-demo-data-prompt (#8459), not main. Do not
merge before #8459.

WHY are these changes introduced?

Since #8323, an App Management organization with no dev stores drops straight into
"Name for the new development store" when you run app dev. The prompt arrives without
context: the developer asked to start a dev session, not to create a store, and the old
flow that explained the situation ("Looks like you don't have any dev stores associated
with …") was replaced by inline creation.

WHAT is this pull request doing?

Renders a short notice before the creation prompts on the zero-store path:

You don't have any dev stores associated with <organization>'s Dev Dashboard. Let's create one.

// The developer never asked to create a store here, so explain why they are being
// prompted. The picker's create choice is self-explanatory and stays quiet.
onCreateStoreWhenEmpty = async () => {
  renderInfo({body: emptyOrgNoticeBody(org)})
  return createStoreInline()
}

Scoped deliberately to the zero-store path. When a developer picks "Create a new dev
store" from the store picker, they have already expressed the intent, so a notice
explaining why they are being asked would be noise. That is why the message lives in the
onCreateStoreWhenEmpty wrapper rather than inside createStoreInline, which both paths
share. Wrapping the callback rather than placing renderInfo beside the cap and TTY
guards also means the notice cannot print if the prompts never run. Tests assert it both
ways — present on the zero-store path, expect(renderInfo).not.toHaveBeenCalled() on the
picker path.

One naming note for reviewers: the message hardcodes "Dev Dashboard", matching the
adjacent copy in AppManagementClient.getCreateDevStoreLink. The client also carries a
webUiName property whose value is 'Developer Dashboard', so the codebase already
disagrees with itself about the product name. Using webUiName here would render
"Developer Dashboard" instead. Reconciling the two feels like its own cleanup rather than
part of this change, but say the word if you would rather this PR use webUiName.

How to test your changes?

  1. Link an app in an App Management organization that has no dev stores.
  2. Run shopify app dev --reset. The notice appears, naming the organization, before the
    store name prompt.
  3. Run shopify app dev --reset in an organization that does have dev stores and pick
    "Create a new dev store" from the picker. No notice — straight to the name prompt.

Changelog

No changeset. This builds on the inline dev store creation from #8323 and #8397, which is
not released yet, so the whole flow will be covered by a single changelog entry rather than
one per PR in this stack.

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add — intentionally omitted, see Changelog above

@nickwesselman
nickwesselman requested a review from a team as a code owner September 2, 2026 18:25
@github-actions github-actions Bot added the Area: @shopify/app @shopify/app package issues label Sep 2, 2026
@nickwesselman
nickwesselman requested a review from a team as a code owner September 2, 2026 18:31
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 98be77e to 2f7a590 Compare September 2, 2026 18:31
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 2f7a590 to 08d8eef Compare September 2, 2026 18:33
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 08d8eef to 7c6ac7f Compare September 2, 2026 18:49
@github-actions github-actions Bot added no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. and removed Area: @shopify/app @shopify/app package issues labels Sep 2, 2026
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 7c6ac7f to c59cc36 Compare September 2, 2026 18:52

@dmerand dmerand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could have sworn the original implementation had this... I definitely thought I'd done it but maybe it didn't make its way into the final PR. Thanks for updating!

@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from c59cc36 to 906dec5 Compare September 2, 2026 20:28
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 906dec5 to d9ed385 Compare September 2, 2026 20:29
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from d9ed385 to dbe00fd Compare September 2, 2026 21:17
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from dbe00fd to 853fcb1 Compare September 2, 2026 21:20

@amcaplan amcaplan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change makes sense. Great catch!

Base automatically changed from nick/dev-store-demo-data-prompt to main September 2, 2026 21:43
An organization with no dev stores drops straight into "Name for the new
development store", which arrives without context: the developer asked to
run `app dev`, not to create a store. Render a short notice first.

The store picker's "Create a new dev store" choice stays quiet, because
there the developer already expressed the intent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Assisted-By: devx/a27b4557-3ac8-448a-8860-7a5ed6b20687
@nickwesselman
nickwesselman force-pushed the nick/dev-store-empty-org-notice branch from 853fcb1 to d36cd04 Compare September 2, 2026 21:43
@nickwesselman
nickwesselman added this pull request to the merge queue Sep 2, 2026
Merged via the queue into main with commit 2a43623 Sep 2, 2026
30 checks passed
@nickwesselman
nickwesselman deleted the nick/dev-store-empty-org-notice branch September 2, 2026 21:58
@nickwesselman

Copy link
Copy Markdown
Contributor Author

/snapit

1 similar comment
@nickwesselman

Copy link
Copy Markdown
Contributor Author

/snapit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants