From 9fab9d98caaeaff8709cca6cd1c427856b779617 Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Tue, 7 Jul 2026 16:38:09 +0200 Subject: [PATCH] feat(onboarding): improve checklist wording and target project visibility Rework cluster/service checklist copy for clarity, add the "Spec to Prod" use case and widen the RDE access CTA to related AI use cases, and always show (but disable in create mode) the target project field in the create/clone environment modal. Co-Authored-By: Claude Sonnet 5 --- .../section-onboarding/section-onboarding.tsx | 16 +-- ...eate-clone-environment-modal.spec.tsx.snap | 100 +++++++++++++++++- .../create-clone-environment-modal.tsx | 45 ++++---- .../src/lib/step-use-cases/step-use-cases.tsx | 9 +- 4 files changed, 133 insertions(+), 37 deletions(-) diff --git a/apps/console/src/app/components/section-onboarding/section-onboarding.tsx b/apps/console/src/app/components/section-onboarding/section-onboarding.tsx index ae860f8459e..efc33a0edeb 100644 --- a/apps/console/src/app/components/section-onboarding/section-onboarding.tsx +++ b/apps/console/src/app/components/section-onboarding/section-onboarding.tsx @@ -158,7 +158,7 @@ export function SectionOnboarding() { const useCases = useMemo(() => (onboarding?.use_cases ?? '').split(',').filter(Boolean), [onboarding?.use_cases]) const hasEphemeralEnvironments = useCases.includes('ephemeral-environments') - const hasRde = useCases.includes('rde') + const hasRde = ['rde', 'ai-workflows', 'spec-to-prod'].some((useCase) => useCases.includes(useCase)) const { data: deploymentRule } = useDeploymentRule({ environmentId: firstEnvironment?.id ?? '', @@ -313,7 +313,7 @@ export function SectionOnboarding() { { highlight: true, tag: 'Recommended', - title: 'Qovery managed', + title: 'Create a new cluster (Qovery Managed)', description: 'Qovery will install and manage the Kubernetes cluster and the underlying infrastructure on your cloud provider account.', icon: , @@ -347,10 +347,10 @@ export function SectionOnboarding() { { highlight: false, tag: 'Demo', - title: 'Local machine', + title: 'Local Machine', icon: 'laptop-code', description: - 'Deploy a local Kubernetes cluster on your laptop using Docker Desktop. No cloud account or credit card required!', + 'The best choice for exploration and testing. Deploy a local Kubernetes cluster on your laptop using Docker Desktop, no cloud account or credit card required!', compatibleWith: null, action: 'installation-guide' as const, isDemo: true, @@ -467,7 +467,7 @@ export function SectionOnboarding() { isClusterDeployed ? 'text-neutral-subtle line-through' : 'text-neutral' )} > - Create and deploy my first cluster + Install Qovery {isClusterDeployed ? ( @@ -575,7 +575,7 @@ export function SectionOnboarding() { : 'text-neutral-subtle' )} > - Create and deploy my first application + Go to my environment to create and deploy my first application {isServiceDeployed ? ( @@ -639,7 +639,7 @@ export function SectionOnboarding() { size="sm" color="neutral" variant="solid" - to="/organization/$organizationId/project/$projectId/environment/$environmentId/service/new" + to="/organization/$organizationId/project/$projectId/environment/$environmentId/overview" params={{ organizationId, projectId: firstProject?.id ?? '', @@ -647,7 +647,7 @@ export function SectionOnboarding() { }} > - New Service + Go to my environment ) : null} diff --git a/libs/domains/environments/feature/src/lib/create-clone-environment-modal/__snapshots__/create-clone-environment-modal.spec.tsx.snap b/libs/domains/environments/feature/src/lib/create-clone-environment-modal/__snapshots__/create-clone-environment-modal.spec.tsx.snap index 15937c0f0f6..74fc7c4789f 100644 --- a/libs/domains/environments/feature/src/lib/create-clone-environment-modal/__snapshots__/create-clone-environment-modal.spec.tsx.snap +++ b/libs/domains/environments/feature/src/lib/create-clone-environment-modal/__snapshots__/create-clone-environment-modal.spec.tsx.snap @@ -66,6 +66,98 @@ exports[`CreateCloneEnvironmentModal should match snapshots 1`] = ` +
+
+ +
+ + +
+
+ + Project 1 + + +
+
+ + +
+
+
+ +
+