diff --git a/packages/cli/create-strapi-app/src/create-strapi.ts b/packages/cli/create-strapi-app/src/create-strapi.ts index 9205ab28e2..b0762fa2b1 100644 --- a/packages/cli/create-strapi-app/src/create-strapi.ts +++ b/packages/cli/create-strapi-app/src/create-strapi.ts @@ -41,6 +41,7 @@ async function createApp(scope: Scope) { packageManager, gitInit, runApp, + isABTestEnabled, } = scope; const shouldRunSeed = useExample && installDependencies; @@ -254,6 +255,10 @@ async function createApp(scope: Scope) { logger.fatal('Failed to start your Strapi application'); } } + + if (isABTestEnabled) { + await trackUsage({ event: 'didEnableABTest', scope }); + } } async function runInstall({ rootPath, packageManager }: Scope) { diff --git a/packages/cli/create-strapi-app/src/index.ts b/packages/cli/create-strapi-app/src/index.ts index 13b32644ae..5e327d3dbb 100644 --- a/packages/cli/create-strapi-app/src/index.ts +++ b/packages/cli/create-strapi-app/src/index.ts @@ -161,6 +161,7 @@ async function run(args: string[]): Promise { 'styled-components': '^6.0.0', }, shouldCreateGrowthSsoTrial, + isABTestEnabled: false, }; if (options.template !== undefined) { @@ -207,6 +208,8 @@ async function run(args: string[]): Promise { scope.gitInit = await prompts.gitInit(); } + scope.isABTestEnabled = await prompts.enableABTests(); + addDatabaseDependencies(scope); try { diff --git a/packages/cli/create-strapi-app/src/prompts.ts b/packages/cli/create-strapi-app/src/prompts.ts index 8e018bfb34..798f394210 100644 --- a/packages/cli/create-strapi-app/src/prompts.ts +++ b/packages/cli/create-strapi-app/src/prompts.ts @@ -75,4 +75,19 @@ async function installDependencies(packageManager: string) { return installDependencies; } -export { directory, typescript, example, gitInit, installDependencies }; +async function enableABTests() { + const { enableABTests } = await inquirer.prompt<{ + enableABTests: boolean; + }>([ + { + type: 'confirm', + name: 'enableABTests', + message: `Participate in anonymous A/B testing (to improve Strapi)?`, + default: false, + }, + ]); + + return enableABTests; +} + +export { directory, typescript, example, gitInit, installDependencies, enableABTests }; diff --git a/packages/cli/create-strapi-app/src/types.ts b/packages/cli/create-strapi-app/src/types.ts index e6b3e31edd..ae97b51f54 100644 --- a/packages/cli/create-strapi-app/src/types.ts +++ b/packages/cli/create-strapi-app/src/types.ts @@ -64,6 +64,7 @@ export interface Scope { useExample?: boolean; gitInit?: boolean; shouldCreateGrowthSsoTrial: boolean; + isABTestEnabled: boolean; } export type ClientName = 'mysql' | 'postgres' | 'sqlite';