Add setup wizard for first-run onboarding
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 5
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Goal
Add a setup wizard that helps new users configure Perform safely without needing to understand every module on the first visit.
Thought process
Perform now has multiple modules with different risk profiles: safe defaults, frontend-output changes, cache behavior, optional integrations, and advanced asset controls. A first-run wizard can reduce confusion and help users enable the right modules in a controlled order.
The wizard should not replace the full settings UI. It should guide first setup, explain tradeoffs briefly, and only save settings after explicit confirmation.
Proposed flow
-
Welcome and site profile
- Basic site type selection such as blog/content, business site, store, or custom.
- Keep copy product-focused and short.
-
Safe performance defaults
- Offer low-risk optimizations that do not require site-specific inspection.
- Show exactly which settings will be enabled before saving.
-
Cache setup
- Explain page cache prerequisites and exclusions.
- Offer cache enablement only when the environment looks compatible.
-
Optional integrations
- Show integration-specific settings only when the dependency or required configuration exists.
-
Assets Manager introduction
- Keep advanced asset unloading out of the default path.
- Link users to the Assets Manager with a clear warning that changes should be tested per site.
-
Summary and save
- Persist selected settings using existing option contracts.
- Provide a next-step route to the dashboard/settings page.
Implementation notes
- Use WordPress admin UI patterns and existing
@wordpress/*components where React is used. - Do not create new option keys unless they are needed for wizard state, such as completed/skipped/version.
- Preserve all existing settings keys.
- Make the wizard dismissible and re-openable from settings.
- Avoid enabling high-risk output changes automatically.
Acceptance criteria
- New users see a guided first-run path after activation or first settings visit.
- Existing users are not forced into the wizard during upgrade.
- The wizard can be skipped and reopened later.
- Every saved setting maps to an existing Perform setting or a clearly documented wizard-state option.
- The final step shows a summary before persisting changes.
- The UI is keyboard accessible and follows WordPress admin design patterns.
Validation
- Unit tests for wizard state option handling if added.
- E2E/admin smoke test for first-run, skip, reopen, and save flows.
npm run lintnpm run buildcomposer testcomposer phpstan
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the existing settings UI, option contracts, and any React-based admin entry points, then compare them with the proposed first-run flow. Validate state handling with the requested unit and E2E/admin smoke tests, followed by npm run lint, npm run build, composer test, and composer phpstan; done means the wizard supports first-run, skip, reopen, summary, and accessible save flows without forcing existing users through it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php, react
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100