Over the last few weeks we ran a focused community contest to refresh the PHP 8.5 release page. Thank you to everyone who submitted, reviewed, voted, and discussed.
Note about future redesigns
This contest was an experiment for a single release page. We might not use the same approach for a broader homepage redesign. If we did run a contest again, we would separate tracks (on-brand update vs blue-sky concept), use a dedicated voting tool or randomized ordering, keep log-damped voting, and set a 50/50 jury/community split with clearer criteria and a small shortlist honorarium.
Prizes: $1,000 + AI Ultimate License from JetBrains·+ $1,000 from Rector
At JetBrains, we decided to support other contestants with gifts as well.
Prize: $500 + AI Ultimate License from JetBrains
@ben-joostens, @tao, @lumnn, @thiagoolivier, @mcpad2025-crypto, @minlivalievs-eng, @giodi, @everlastedSE, @asterd, @ad-1984, @Ayesh, @StillMoe, @KarinCheng, @christian-acceseo
Shortlist thank-you: PhpStorm / AI Ultimate License from JetBrains for all shortlisted participants.
Of course, no PHP contest would be complete without a bit of humor. Among all the serious submissions, one playful entry from X/Twitter stood out:
It didn’t quite meet the “accessible and lightweight” brief, but it earned an honorary mention for spirit and commitment to vintage web aesthetics.
We will collaborate with Nuno Guerra to polish the winning design and may incorporate ideas from other entries where they improve clarity or accessibility. And finally we’ll adapt it to php.net’s stack.
In the spirit of PHP, contributions are welcome! We encourage all participants to join the implementation thread and help refine the final page.
We combined a jury score with a community vote and used a logarithmic transform to reduce social-media spikes. We counted 👍 during the voting window for each shortlisted entry and ignored 👎 and other reactions.
Jury (40%)
Judges scored four criteria from 0 to 5. For each entry we averaged judges into J in the range 0–25.
Normalization: J_norm = J / 25.
Community vote (60%), log-damped
For entry i with V_i upvotes and T = Σ V_i across the shortlist:
V′_i = log(1 + V_i) and V_logshare = V′_i / Σ V′_k.
Final score
Final = 0.4 × J_norm + 0.6 × V_logshare
We will publish the full table with anonymized jury subtotals and final scores.
We might not run this contest format again. But if we did, here’s what we would fix:
The scope was the PHP 8.5 release page with an on-brand constraint. Some entries explored broader rebrands.
Next time we would
Potentially Split into two tracks judged and presented separately:
We kept scope small, didn’t require code, and recognized more than one entry (runner-up and shortlist thanks).
Next time we would:
Order bias and social amplification are real. In this contest we ignored downvotes and used log damping on upvotes.
Next time we would also:
Thanks to all participants, voters, reviewers, and to the jury and design advisors for careful evaluations. Special thanks to JetBrains and Rector for supporting the community with prizes and encouragement.
If you want to follow implementation, join the thread here: php/web-php/issues/1592.
🐘💜