|
| 1 | +--- |
| 2 | +title: 'Design Contest Results and Lessons Learned' |
| 3 | +layout: post |
| 4 | +tags: |
| 5 | + - news |
| 6 | +author: |
| 7 | + - name: Roman Pronskiy |
| 8 | + url: https://twitter.com/pronskiy |
| 9 | + |
| 10 | +published_at: 5 November 2025 |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +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. |
| 15 | + |
| 16 | +> **Note about future redesigns** |
| 17 | +> 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. |
| 18 | +
|
| 19 | +## **Results** |
| 20 | + |
| 21 | +### **Winner:** **Nuno Guerra [@nunowar](https://github.com/nunowar)** β [*PHP is Awesome π₯*](https://github.com/php/web-php/issues/1539) |
| 22 | + |
| 23 | +<a href="https://nunoguerra.com/dev/php/" target="_blank" rel="noopener noreferrer"><img src="/assets/post-images/2025/design-contest/nunowar.png" class="shadow-md rounded-lg"/></a> |
| 24 | + |
| 25 | +**Prizes:** **$1,000 + AI Ultimate License from [JetBrains](https://www.jetbrains.com/phpstorm/)**Β·+ **$1,000 from [Rector](https://getrector.com/)** |
| 26 | + |
| 27 | +At JetBrains, we decided to support other contestants with gifts as well. |
| 28 | + |
| 29 | +### **Runner-up: Hanna Stelmakh [@hastelmakh](https://github.com/hastelmakh)** β [*PHP 8.5 Release Page Design Contest Submission*](https://github.com/php/web-php/issues/1534) |
| 30 | + |
| 31 | +<a href="https://www.figma.com/proto/82kDxx1bh6ngC8Pv2Z2jUW/PHP-Release-8.5?page-id=0%3A1\&node-id=449-2387\&viewport=-7617%2C246%2C0.13\&t=f2P7pJOdSAEOKLDY-1" target="_blank" rel="noopener noreferrer"><img src="/assets/post-images/2025/design-contest/hastelmakh.png" class="shadow-md rounded-lg"/></a> |
| 32 | + |
| 33 | +**Prize:** **$500 + AI Ultimate License from [JetBrains](https://www.jetbrains.com/phpstorm/)** |
| 34 | + |
| 35 | +### **Shortlist:** |
| 36 | + |
| 37 | +[@ben-joostens](https://github.com/ben-joostens)**,** [@tao](https://github.com/tao), [@lumnn](https://github.com/lumnn), [@thiagoolivier](https://github.com/thiagoolivier), [@mcpad2025-crypto](https://github.com/mcpad2025-crypto), [@minlivalievs-eng](https://github.com/minlivalievs-eng), [@giodi](https://github.com/giodi), [@everlastedSE](https://github.com/everlastedSE), [@asterd](https://github.com/asterd), [@ad-1984](https://github.com/ad-1984), [@Ayesh](https://github.com/Ayesh), [@StillMoe](https://github.com/StillMoe), [@KarinCheng](https://github.com/KarinCheng), [@christian-acceseo](https://github.com/christian-acceseo) |
| 38 | + |
| 39 | +**Shortlist thank-you:** [**PhpStorm**](https://www.jetbrains.com/phpstorm/) **/ [AI Ultimate License](https://www.jetbrains.com/ai-ides/buy/) from JetBrains** for all shortlisted participants. |
| 40 | + |
| 41 | +## **A little fun along the way** <img style="display:inline;" width="40" src="https://ftp.ntu.edu.tw/php/images/ele-running.gif"/> |
| 42 | + |
| 43 | +Of course, no PHP contest would be complete without a bit of humor. Among all the serious submissions, one playful entry [from X/Twitter](https://x.com/jon_bossenger/status/1983140310826795201) stood out: |
| 44 | + |
| 45 | +<a href="https://php-85-hyperactive.vercel.app/" target="_blank" rel="noopener noreferrer"><img src="/assets/post-images/2025/design-contest/php-85-hyperactive.png" class="shadow-md rounded-lg"/></a> |
| 46 | + |
| 47 | +It didnβt quite meet the βaccessible and lightweightβ brief, but it earned an honorary mention for spirit and commitment to vintage web aesthetics. |
| 48 | + |
| 49 | +## **Next steps** |
| 50 | + |
| 51 | +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](https://php.net)βs stack. |
| 52 | + |
| 53 | +In the spirit of PHP, contributions are welcome! We encourage all participants to join the [**implementation thread**](https://github.com/php/web-php/issues/1592) and help refine the final page. |
| 54 | + |
| 55 | +## **How the scoring worked** |
| 56 | + |
| 57 | +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. |
| 58 | + |
| 59 | +* **Jury (40%)** |
| 60 | + Judges scored four criteria from 0 to 5. For each entry we averaged judges into `J` in the range 0β25. |
| 61 | + Normalization: `J_norm = J / 25`. |
| 62 | + |
| 63 | +* **Community vote (60%), log-damped** |
| 64 | + For entry *i* with `V_i` upvotes and `T = Ξ£ V_i` across the shortlist: |
| 65 | + `Vβ²_i = log(1 + V_i)` and `V_logshare = Vβ²_i / Ξ£ Vβ²_k`. |
| 66 | + |
| 67 | +* **Final score** |
| 68 | + Final `= 0.4 Γ J_norm + 0.6 Γ V_logshare` |
| 69 | + |
| 70 | +We will publish the full table with anonymized jury subtotals and final scores. |
| 71 | + |
| 72 | +## **Lessons learned** |
| 73 | + |
| 74 | +We might not run this contest format again. **But if we did, hereβs what we would fix:** |
| 75 | + |
| 76 | +### **1) Scope & brief: on-brand update vs full rework** |
| 77 | + |
| 78 | +The scope was the **PHP 8.5 release page** with an **on-brand** constraint. Some entries explored broader rebrands. |
| 79 | + |
| 80 | +**Next time we would** |
| 81 | + |
| 82 | +* Be more explicit on on-brand requirement. |
| 83 | +* Potentially Split into **two tracks** judged and presented **separately**: |
| 84 | + |
| 85 | + * **Track A:** on-brand update of the specific page. |
| 86 | + **Track B:** blue-sky concept for future reference. |
| 87 | + |
| 88 | +### **2) βSpec workβ concerns** |
| 89 | + |
| 90 | +We kept scope small, didnβt require code, and recognized more than one entry (runner-up and shortlist thanks). |
| 91 | + |
| 92 | +**Next time we would:** |
| 93 | + |
| 94 | +* Prepare a more detailed brief with the community. |
| 95 | +* Offer a **paid shortlist honorarium**. |
| 96 | +* Cap deliverables (mock-ups plus optional tiny HTML/CSS), no heavy code. |
| 97 | + |
| 98 | +### **3) Voting & balance (order bias, social reach, weights)** |
| 99 | + |
| 100 | +Order bias and social amplification are real. In this contest we **ignored downvotes** and **used log damping** on upvotes. |
| 101 | + |
| 102 | +**Next time we would also:** |
| 103 | + |
| 104 | +* Use a dedicated voting tool that shuffles candidates. |
| 105 | +* Optionally hide aggregate reaction counts until voting closes. |
| 106 | +* Set a 50/50 split between jury and community. |
| 107 | +* Publish the full calculation sheet upfront for auditability. |
| 108 | + |
| 109 | +## **Thank you** |
| 110 | + |
| 111 | +Thanks to all participants, voters, reviewers, and to the jury and design advisors for careful evaluations. Special thanks to [**JetBrains**](https://www.jetbrains.com/) and [**Rector**](https://getrector.com/) for supporting the community with prizes and encouragement. |
| 112 | + |
| 113 | +If you want to follow implementation, join the thread here: [**php/web-php/issues/1592**](https://github.com/php/web-php/issues/1592). |
| 114 | + |
| 115 | +ππ |
0 commit comments