Add native PHP runtime page to What's New modal - #3915
Conversation
📊 Performance Test ResultsComparing 561a337 vs trunk app-size
site-editor
site-startup
Results are median values from multiple test runs. Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff) |
|
Yes! Thanks for the suggestion. I'll add it. |
| // current app version get the modal once. Keep at `false` otherwise — the modal | ||
| // will only auto-show for first-time users of Studio. | ||
| export const FORCE_SHOW_WHATS_NEW = false; | ||
| export const FORCE_SHOW_WHATS_NEW = true; |
katinthehatsite
left a comment
There was a problem hiding this comment.
The changes look good, I left one possible suggestion for the copy wording
| image: nativePhpIllustration, | ||
| title: __( 'Run your sites with native PHP' ), | ||
| description: __( | ||
| 'Studio can now run your sites with native PHP for the best performance, plus real file access and broader plugin compatibility. Pick the Native or Sandbox runtime for any site in its settings.' |
There was a problem hiding this comment.
As @sejas said – I think we should mention that this is the new default.
plus real file access
I think this can easily be misconstrued as "access to the entire system", which is not true by default.
broader plugin compatibility
I don't think this is really true, tbh. If we were switching from SQLite to MySQL, then yes, but the pure PHP runtime doesn't do much on this front, I think. At least not with how far Playground has come by now.
| const locale = useI18nLocale(); | ||
| const whatsNewPages: WhatsNewPage[] = [ | ||
| { | ||
| image: nativePhpIllustration, |
There was a problem hiding this comment.
Can we add a learn more link and point it to https://developer.wordpress.com/docs/developer-tools/studio/php-runtimes/ ?
That's only a draft for now, but if we can add it into the code, we can start iterating on the content
Co-authored-by: katinthehatsite <katerynakodonenko@gmail.com>
…php' into rsm-4414-whats-new-modal-native-php # Conflicts: # apps/studio/src/modules/whats-new/components/whats-new-modal.tsx
fredrikekelund
left a comment
There was a problem hiding this comment.
One small suggestion for the copy, but overall this LGTM 👍
Co-authored-by: Fredrik Rombach Ekelund <fredrik@f26d.dev>
## Related issues - Follow-up to #3915 — fixes the truncation reported in [review feedback](#3915 (comment)) - Related to [RSM-4414](https://linear.app/a8c/issue/RSM-4414/update-the-whats-new-modal-with-details-about-the-native-php-runtime) ## How AI was used in this PR Used Claude Code (Opus 4.8) to diagnose the truncation, trace the history of the modal's line-clamp behavior, and implement the fix. I confirmed the modal renders every slide's copy in full (no truncation, no scrollbar) in the running app, and ran ESLint + a typecheck on the changed file. ## Proposed Changes The **"Faster local sites with native PHP"** slide in the What's New modal was cutting its description off mid-sentence (*"…switch between Native…"*). The root cause was a fragile rule, not the copy itself: the modal clamped the **first** slide's description to 5 lines but **every other** slide to 3. The native PHP copy was written while it was the lead slide; once a Studio Code slide became the new lead (#3924), native PHP dropped into a 3-line slot and its (unchanged) text no longer fit. Rather than trimming the copy, this gives **every slide the same 5-line clamp** the intro slide already used — which the fixed-height modal accommodates without scrollbars. That removes the intro-vs-regular distinction that caused the regression, so future copy tweaks or slide reordering won't silently truncate. It also drops a leftover wrapper element that had no styling. The slide copy is unchanged from `trunk`. Thanks to @fredrikekelund for [suggesting](#3946 (review)) the all-slides approach over a copy-only fix. ## Testing Instructions 1. Run Studio (`npm start`). 2. Open the What's New modal (app menu → **What's New**). 3. Page through every slide and confirm each description shows in full with no truncation/ellipsis — in particular, the **"Faster local sites with native PHP"** slide should end with *"…in your site settings."* 4. Confirm no scrollbar appears on any slide and the footer buttons stay in place. 5. Verify in **both light and dark** appearance. ## Pre-merge Checklist - [x] Have you checked for TypeScript, React or other console errors?




Related issues
How AI was used in this PR
Used Claude Code (Opus 4.8) to draft the slide copy, generate the placeholder illustration, and implement the change. I reviewed the wording for accuracy against the shipped PHP runtime: Native / Sandbox site settings (
site-runtime-copy.tsx) and ran ESLint + thewhats-new/app-version-api/get-localized-linkunit tests locally.Proposed Changes
Adds a native PHP runtime slide as the lead item in Studio's What's New modal, so users discover that native PHP is now the default runtime for the best performance, and that they can switch any site between the Native and Sandbox runtimes in its settings. Includes a Learn more link to the PHP runtimes docs.
To keep the carousel to four slides, the last one (Blueprints) was retired. The order is now: native PHP → dark mode → phpMyAdmin → CLI. The modal is also set to surface once for existing users on this release.
Testing Instructions
npm start).Pre-merge Checklist