Skip to content

PHP 8.5 Release Page Redesign Contest - Karin Cheng #1540

@KarinCheng

Description

@KarinCheng

Names and Contact Details

Karin Cheng - karin-cheng@hotmail.com

Link to mockup/prototype

Desktop Prototype Mobile Prototype

Rationale (300-600 words)

Research methods

To improve the release page for different types of developers, I used four methods:

  • Contextual Inquiry (CI): I observed a PHP developer and an engineer using the release page to uncover pain points.
  • Observation (O): I analyzed the page’s structure and interactions.
  • Community Observation (CO): I read PHP Discord discussions to identify spontaneous feedback.
  • Competitor Analysis (CA): I studied developer-focused sites (Kotlin, C#, Shopify) for familiar and effective design patterns.

Based on the insights I gained through these methods, I identified key areas where the release page could be improved. The following changes directly address the pain points and usability issues uncovered through research, while maintaining the familiar look and feel of PHP.

Navigating between PHP versions

Developers use multiple PHP versions since they work on different projects at the same time. But they could only switch by changing the URL (CI). I turned the “Supported Versions” page into an overview of all releases, added breadcrumbs for navigation on the release page, and placed version-switch links at the bottom of each release page to make comparisons easier.

Theme switch

Developers expressed strong preferences for dark or light mode (CI & CO). To improve readability and comfort, I added a theme switch, allowing users to select their preferred view.

Image Image

Language changer

Language preference is global, not page-specific (O). I moved the language changer into the main navigation to make it easier to find and maintain consistency across pages.

Hero section

Developers ignored the hero and immediately scrolled to the content. One was also confused by the statement ‘PHP 8.5 is a major update,’ since it’s technically a minor one (CI). I removed the hero to create a content-first layout that surfaces updates immediately.

Table of contents

Following Jakob’s Law and patterns from other documentation sites, I added a table of contents on the left side for quicker navigation and better content overview (CA).
Image

Newcomer understanding

The newcomer struggled to understand PHP changes because the descriptions assumed prior knowledge of PHP (CI). While the RFC contains more context, it’s a long and dense document that increases cognitive load for users who want to understand what changed and why it matters. To reduce this, I included relevant RFC information directly in the release page, giving enough context without forcing users to navigate away.

Anchor button

Developers were used to the existing anchor pattern and didn’t notice it was unintuitive, as it matched their mental model of how such buttons typically behave (CL). However, this interaction required two actions instead of one. To reduce friction, I replaced it with a one-click copy-link button that aligns better with user intent while still feeling familiar.

Code examples

The developer found it difficult to compare changes and often skipped descriptions below the code (CI). I added syntax highlighting, line numbers, and horizontal scrolling (no wrapping) to make differences easier to spot and understand (CA). I also included a one-click “copy code” button so developers can quickly try out the examples in their IDE.

Grouping new classes, interfaces, and functions

The PHP changes are ordered from most impactful to least impactful, but the “New Classes, Interfaces, and Functions” section appeared disorganized when following that same structure (O). Because this section is at the bottom of the page, I grouped related items instead of ordering them by impact. According to Miller’s Law, people can only hold a limited amount of information in their working memory, so grouping related items reduces cognitive load and makes the content easier to scan and understand.

License

  • I confirm, and agree.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions