Skip to content

Default to a title case app name#7169

Open
parkerduckworth wants to merge 1 commit intomainfrom
feat/gh-6468-title-case-app-name
Open

Default to a title case app name#7169
parkerduckworth wants to merge 1 commit intomainfrom
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
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

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
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

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.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Default to a title case app name

1 participant