Skip to content

Default to a title case app name#7169

Closed
parkerduckworth wants to merge 2 commits into
mainfrom
feat/gh-6468-title-case-app-name
Closed

Default to a title case app name#7169
parkerduckworth wants to merge 2 commits into
mainfrom
feat/gh-6468-title-case-app-name

Conversation

@parkerduckworth

Copy link
Copy Markdown

WHY are these changes introduced?

Fixes #6468

App names generated during shopify app init are currently kebab-case, which leads to poor default names when merchants submit apps to the App Store. The default name should encourage a user-facing, Title Case format, and the prompt should reinforce that the directory name will be derived separately.

WHAT is this pull request doing?

  1. Default app name is now Title Case — e.g., "Adaptive Vertical App" instead of "adaptive-vertical-app".
  2. App name prompt shows a folder name preview — As the user types (or accepts the default), a Folder name: adaptive-vertical preview is shown in cyan below the prompt, reinforcing that spaces in the app name won't create spaces in file paths.

Before:
Screenshot 2026-04-02 at 4 25 11 PM

After:
Screenshot 2026-04-02 at 4 26 32 PM

How to test your changes?

  pnpm build                                                                            
  pnpm shopify app init                                                                 
  1. Observe the default app name is Title Case
  2. Observe the Folder name: preview beneath the prompt showing the kebab-case directory
  3. Type a custom name (e.g., "My Cool Store") and confirm the preview updates to my-cool-store
  4. Accept the name and confirm the created directory matches the previewed folder name

Measuring impact

How do we know this change was effective? Please choose one:

  • n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
  • Existing analytics will cater for this addition
  • PR includes analytics changes to measure impact

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes

@parkerduckworth parkerduckworth requested a review from a team as a code owner April 2, 2026 20:29
@github-actions

github-actions Bot commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

We detected some changes at packages/*/src and there are no updates in the .changeset.
If the changes are user-facing, run pnpm changeset add to track your changes and include them in the next release CHANGELOG.

Caution

DO NOT create changesets for features which you do not wish to be included in the public changelog of the next CLI release.

@github-actions

github-actions Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/common/string.d.ts
@@ -7,6 +7,13 @@ export type RandomNameFamily = 'business' | 'creative';
  * @returns A random name generated by combining an adjective and noun.
  */
 export declare function getRandomName(family?: RandomNameFamily): string;
+/**
+ * Generates a random Title Case name by combining an adjective and noun.
+ *
+ * @param family - Theme to use for the random name (business or creative).
+ * @returns A Title Case random name (e.g. "Adaptive Vertical").
+ */
+export declare function getRandomTitleCaseName(family?: RandomNameFamily): string;
 /**
  * Given a string, it returns it with the first letter capitalized.
  *
packages/cli-kit/dist/public/node/fs.d.ts
@@ -270,6 +270,8 @@ interface GenerateRandomDirectoryOptions {
     directory: string;
     /** Type of word to use for random name. */
     family?: RandomNameFamily;
+    /** If true, return a Title Case name instead of kebab-case. */
+    titleCase?: boolean;
 }
 /**
  * It generates a random directory directory name for a sub-directory.

@github-actions

github-actions Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

This PR seems inactive. If it's still relevant, please add a comment saying so. Otherwise, take no action.
→ If there's no activity within a week, then a bot will automatically close this.
Thanks for helping to improve Shopify's dev tooling and experience.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Default to a title case app name

1 participant