Skip to content

feat(view): redesign congratulations page for v4.0 - #2098

Merged
bpamiri merged 1 commit into
developfrom
peter/congratulations-page-redesign
Apr 14, 2026
Merged

bpamiri merged 1 commit into
developfrom
peter/congratulations-page-redesign

Conversation

@bpamiri

@bpamiri bpamiri commented Apr 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace static welcome text with modern dashboard-style page
  • Show runtime info (engine, database, environment) dynamically
  • Detect Wheels CLI presence; show platform-aware install instructions (Homebrew/Chocolatey) when missing
  • Add quick-start action cards (scaffold, migrate, test) with copy-pasteable CLI commands
  • Add v4.0 feature highlights grid (packages, middleware, DI, query builder, jobs, CLI)
  • Remove hardcoded 3.1.0 docs links, "Wheels.dev" branding, Font Awesome dependency

Test plan

  • Start server, visit root URL — hero shows correct version, engine, DB, environment
  • Verify CLI detection: with cli/lucli/Module.cfc present → "Wheels CLI detected" line; without → install banner
  • Click macOS/Linux/Windows tabs — install command and prompt character swap correctly
  • Three action cards render in a row with correct CLI commands
  • Six feature tiles render in 3x2 grid with correct New/Upgraded tags
  • Footer links open correct URLs (wheels.dev, GitHub discussions, GitHub repo)
  • Page renders correctly in dark theme (Catppuccin variables from _header.cfm)

🤖 Generated with Claude Code

Replace static welcome text with dashboard-style page showing runtime
info (engine, database, environment), CLI detection with platform-aware
install instructions (Homebrew/Chocolatey), quick-start action cards,
and v4.0 feature highlights grid.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bpamiri
bpamiri merged commit 61b2021 into develop Apr 14, 2026
3 checks passed
@bpamiri
bpamiri deleted the peter/congratulations-page-redesign branch April 14, 2026 23:52
bpamiri added a commit that referenced this pull request Jun 26, 2026
…te (#3260)

* feat(cli): show onboarding content on the scaffolded home page

`wheels new` generated a bare two-line placeholder at `/`, while the
redesigned welcome page (Public.index -> congratulations.cfm) sat
orphaned at `/wheels` where nobody lands. Port the first-run essentials
into the generated app/views/main/index.cfm: a runtime status line
(Wheels version, engine, database, environment) and a Next-steps
command guide, as semantic HTML styled by the template's simple.css.
Leaves framework-internal chrome, the CLI install banner, and the
version-pinned "What's New" grid on the /wheels page.

Resync the scaffoldProject mirror in ProjectScaffoldTest.cfc (it mirrors
Module.cfc exactly) and strengthen the view assertion to lock in the new
content and the ## -> # escaping.

Signed-off-by: Peter Amiri <peter@alurium.com>

* fix(security): defense-in-depth gate the /wheels welcome page

Public.index (the congratulations/welcome page at the /wheels namespace
root) was the only Public.cfc handler without a $blockInProduction()
guard, a deliberate #2233 exception that relied on
enablePublicComponent=false to hide /wheels in production by default.
The redesigned page (#2098/#2272) surfaces version/engine/database/
environment, the same class of detail every other gated handler
protects. Add $blockInProduction() as the first statement so it no
longer renders outside development when enablePublicComponent is
manually enabled. Development still renders (the gate is an allowlist).

Flip PublicComponentProductionSpec.cfc: add "index" to the gated-handler
list and drop the now-contradictory "NOT gated" exception test.

Signed-off-by: Peter Amiri <peter@alurium.com>

* docs: flag starter home page as dev-facing, fix stale index() comment

Address wheels-bot review feedback on PR #3260:

- The generated starter home page now carries a comment warning that it
  is a development/first-run landing page which surfaces environment
  details (Wheels version, engine, database, environment) and should be
  replaced with a real homepage before production. Mirrored in the
  scaffoldProject test helper.
- InvokeMethodSpec.cfc described index() as "ungated"; fix the stale
  comment now that index() calls $blockInProduction().

Signed-off-by: Peter Amiri <peter@alurium.com>

---------

Signed-off-by: Peter Amiri <peter@alurium.com>
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.

1 participant