this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 145 lines 12 kB view raw
1<!DOCTYPE html> 2<html lang="en"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<title>Servo Baseline Readiness</title> 7<link rel="preconnect" href="https://fonts.googleapis.com"> 8<link href="https://fonts.googleapis.com/css2?family=Pragati+Narrow:wght@400;700&display=swap" rel="stylesheet"> 9<style> 10 @page { size: A4; margin: 0; } 11 * { margin: 0; padding: 0; box-sizing: border-box; } 12 body { 13 font-family: "Pragati Narrow", sans-serif; 14 background: rgb(247, 226, 231); color: rgb(71, 11, 0); 15 width: 210mm; min-height: 297mm; padding: 24px 30px; 16 display: flex; flex-direction: column; 17 -webkit-print-color-adjust: exact; print-color-adjust: exact; 18 font-size: 12.5px; line-height: 1.4; 19 } 20 21 .header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; padding-bottom: 6px; } 22 h1 { font-size: 26px; font-weight: 700; color: rgb(71, 11, 0); } 23 .byline { font-size: 11px; color: #1d1d1d; margin-top: 2px; } 24 .byline a { color: rgb(71, 11, 0); } 25 .date { font-size: 11px; color: #666; } 26 27 h2 { font-size: 14px; font-weight: 700; color: rgb(71, 11, 0); text-transform: uppercase; letter-spacing: 0.06em; margin: 18px 0 6px; } 28 p { color: #1d1d1d; margin-bottom: 6px; } 29 strong { color: rgb(71, 11, 0); } 30 31 .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } 32 33 table { width: 100%; border-collapse: collapse; font-size: 10px; margin: 4px 0 8px; } 34 th { text-align: left; color: #666; padding: 2px 5px; border-bottom: 1px solid rgba(71, 11, 0, 0.15); font-weight: 700; } 35 td { padding: 2px 5px; border-bottom: 1px solid rgba(71, 11, 0, 0.08); color: #1d1d1d; } 36 tr.highlight td { background: rgba(71, 11, 0, 0.08); color: rgb(71, 11, 0); font-weight: 700; } 37 38 .pass { color: #1f6e1f; } 39 .fail { color: #a33; } 40 .warn-text { color: #8a5a00; } 41 a { color: rgb(71, 11, 0); } 42 43 .footer { font-size: 9px; color: #686868; text-align: center; margin-top: auto; padding-top: 4px; border-top: 1px solid rgba(71, 11, 0, 0.15); } 44 .methodology { font-size: 9px; line-height: 1.45; color: #666; } 45</style> 46</head> 47<body> 48 49<div style="background:#a33;color:#fff;text-align:center;padding:4px;font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:6px;">DRAFT &mdash; Do not circulate without permission</div> 50 51<div class="header"> 52 <div> 53 <h1>Servo Baseline Readiness</h1> 54 <div class="byline">Dietrich Ayala &mdash; dietrich@webtransitions.org &mdash; <a href="https://webtransitions.org">webtransitions.org</a></div> 55 </div> 56 <span class="date">February 14, 2026</span> 57</div> 58 59<h2>Summary</h2> 60<p>Servo is falling behind the web. It completes <strong>~22 features per year</strong> at production quality, while the Baseline &ldquo;Widely Available&rdquo; (BWA) set grows at <strong>~52 features per year</strong>. At this pace, Servo plateaus around <strong>80% readiness by ~2032 and never catches up</strong>. Full velocity parity within a <strong>3-year catch-up window</strong>&mdash;where Servo&rsquo;s completion rate matches BWA growth, clearing the backlog and keeping pace&mdash;requires <strong>~35 FTE</strong> at <strong>&euro;5.3M/yr</strong> (<strong>&euro;15.9M over 3yr</strong>).</p> 61<p>However, not all BWA features carry equal weight. Cross-referencing with Chrome usage data (webstatus.dev) shows that many BWA features appear on very few page loads. Deprioritizing low-usage features reduces the parity threshold to <strong>21&ndash;25 FTE</strong> (<strong>&euro;3.2&ndash;3.8M/yr</strong>), saving up to <strong>&euro;6.3M over 3 years</strong>. However, this trades web compatibility for long-tail feature usage, with uncertain impact on adoption. The biggest immediate win is unstalling <strong>117 blocked features</strong> and fixing <strong>79 regressions</strong>.</p> 62 63<div class="two-col"> 64<div> 65<h2>Current Readiness</h2> 66<ul style="margin:4px 0 6px 16px;"> 67 <li><strong>593</strong> BWA features total, <strong>439</strong> with WPT test coverage</li> 68 <li><strong>87</strong> fully supported (19.8%) at &ge;95% pass rate</li> 69 <li><strong>288</strong> partially supported (65.6%)</li> 70 <li><strong>64</strong> unsupported (14.6%)</li> 71 <li><strong>154</strong> unmeasured &mdash; 78 JS built-ins (SpiderMonkey/test262), 23 semantic HTML elements, 53 other (WebGL extensions, DOM, CSS, etc.) &mdash; most likely already supported</li> 72 <li>Overall WPT pass rate doubled from 30% to 62% over 2.5 years</li> 73</ul> 74</div> 75<div> 76<h2>Key Strategic Factors</h2> 77<p><strong class="fail">Velocity gap:</strong> 22 features/yr vs 52 new BWA/yr. At 13 FTE, Servo can never catch up.</p> 78<p><strong class="fail">117 stalled features</strong> need architectural work to unblock.</p> 79<p><strong class="fail">79 regressions</strong> are the cheapest path to closing the gap.</p> 80<p><strong style="color:#686868;">154 unmeasured features</strong> &mdash; 78 JS built-ins (SpiderMonkey), 23 semantic HTML elements, 20 WebGL extensions &mdash; most likely already work.</p> 81<p><strong>Strategic focus > headcount:</strong> doubling FTE cuts time ~40% (<a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a>).</p> 82</div> 83</div> 84 85<div class="two-col"> 86<div> 87<h2>Progress &amp; Trajectory</h2> 88<table> 89 <tr><th>Period</th><th>WPT Score</th><th>FTE</th><th>Completions/yr</th></tr> 90 <tr><td>2023 Q3</td><td>32.0%</td><td>~5</td><td>~14</td></tr> 91 <tr><td>2024 Q3</td><td>39.8%</td><td>~10</td><td>~26</td></tr> 92 <tr><td>2025 Q3</td><td>55.5%</td><td>~13</td><td>~24</td></tr> 93 <tr><td>2026 Q1</td><td>62.4%</td><td>~13</td><td>~22</td></tr> 94</table> 95<p>Velocity is accelerating&mdash;WPT score doubled in 2.5 years. But Servo&rsquo;s completion rate (~22/yr) is less than half BWA&rsquo;s growth rate (~52/yr). Without investment, the gap widens every year.</p> 96</div> 97<div> 98<h2>Impact of Usage Prioritization</h2> 99<table> 100 <tr style="background:rgba(71,11,0,0.05);"><th></th><th style="text-align:right;">Full BWA</th><th style="text-align:right;">Drop &lt;1%</th><th style="text-align:right;">Drop &lt;5%</th><th style="text-align:right;">Drop &lt;10%</th></tr> 101 <tr><td>Target features</td><td style="text-align:right;">593</td><td style="text-align:right;">558 (<span style="color:#1f6e1f;">&minus;35</span>)</td><td style="text-align:right;">537 (<span style="color:#1f6e1f;">&minus;56</span>)</td><td style="text-align:right;">526 (<span style="color:#1f6e1f;">&minus;67</span>)</td></tr> 102 <tr><td>BWA growth rate</td><td style="text-align:right;">~52/yr</td><td style="text-align:right;">~49/yr</td><td style="text-align:right;">~47/yr</td><td style="text-align:right;">~46/yr</td></tr> 103 <tr><td>Parity FTE</td><td style="text-align:right;font-weight:700;">~35</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">~25</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">~22</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">~21</td></tr> 104 <tr><td>Cost/yr</td><td style="text-align:right;">&euro;5.3M</td><td style="text-align:right;">&euro;3.8M</td><td style="text-align:right;">&euro;3.3M</td><td style="text-align:right;">&euro;3.2M</td></tr> 105 <tr><td>3yr total</td><td style="text-align:right;">&euro;15.9M</td><td style="text-align:right;">&euro;11.4M</td><td style="text-align:right;">&euro;9.9M</td><td style="text-align:right;">&euro;9.6M</td></tr> 106 <tr style="background:rgba(42,125,42,0.06);"><td style="font-weight:700;color:#1f6e1f;">3yr savings</td><td style="text-align:right;color:#686868;">&mdash;</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">&euro;4.5M</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">&euro;6.0M</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">&euro;6.3M</td></tr> 107</table> 108</div> 109</div> 110 111<div class="two-col"> 112<div> 113<h2>BWA Growth Pipeline</h2> 114<table> 115 <tr><th>Year</th><th>New BWA</th><th>Cumulative</th><th>Source</th></tr> 116 <tr><td>2026</td><td>+61</td><td>654</td><td>Known pipeline</td></tr> 117 <tr><td>2027</td><td>+42</td><td>696</td><td>Known pipeline</td></tr> 118 <tr><td>2028</td><td>+27</td><td>723</td><td>Known pipeline</td></tr> 119 <tr><td>2029+</td><td>~52/yr</td><td>~775+</td><td>Projected avg</td></tr> 120</table> 121</div> 122<div> 123<h2>Investment Scenarios</h2> 124<table> 125 <tr><th>FTE</th><th>Compl/yr</th><th>vs All BWA<br>(52/yr)</th><th>vs &lt;1%<br>(49/yr)</th><th>vs &lt;5%<br>(47/yr)</th><th>&euro;/yr</th><th>3yr</th></tr> 126 <tr><td>13 (current)</td><td>~33</td><td class="fail">&#x2717;</td><td class="fail">&#x2717;</td><td class="fail">&#x2717;</td><td>&euro;2.0M</td><td>&euro;6.0M</td></tr> 127 <tr><td>20</td><td>~45</td><td class="fail">&#x2717;</td><td class="fail">&#x2717;</td><td class="warn-text">&#x2248;</td><td>&euro;3.0M</td><td>&euro;9.0M</td></tr> 128 <tr style="background:rgba(42,125,42,0.08);"><td><strong>22</strong></td><td><strong>~47</strong></td><td class="fail">&#x2717;</td><td class="warn-text">&#x2248;</td><td class="pass"><strong>&#x2713;</strong></td><td><strong>&euro;3.3M</strong></td><td><strong>&euro;9.9M</strong></td></tr> 129 <tr style="background:rgba(42,125,42,0.08);"><td><strong>25</strong></td><td><strong>~49</strong></td><td class="warn-text">&#x2248;</td><td class="pass"><strong>&#x2713;</strong></td><td class="pass"><strong>&#x2713;</strong></td><td><strong>&euro;3.8M</strong></td><td><strong>&euro;11.4M</strong></td></tr> 130 <tr class="highlight"><td>35</td><td>~60</td><td class="pass">&#x2713; parity</td><td class="pass">&#x2713;</td><td class="pass">&#x2713;</td><td>&euro;5.3M</td><td>&euro;15.9M</td></tr> 131 <tr><td>45</td><td>~62</td><td class="pass">&#x2713;</td><td class="pass">&#x2713;</td><td class="pass">&#x2713;</td><td>&euro;6.8M</td><td>&euro;20.4M</td></tr> 132</table> 133<p style="font-size:9px;color:#686868;">All BWA = 593 features (~52/yr). &lt;1% = drop 35 features below 1% Chrome page loads (~49/yr). &lt;5% = drop 56 features (~47/yr). Cost = FTE &times; &euro;200k (&euro;150k base &times; 1.33&times; specialization). <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a> (0.7).</p> 134</div> 135</div> 136 137<h2>Methodology</h2> 138<p class="methodology">Readiness measured against Baseline &ldquo;Widely Available&rdquo; (BWA) web features&mdash;supported 30+ months across all major browsers. Feature scores from Web Platform Tests (WPT) via WPT Feature Manifest mapping. FTE-equivalent from per-author commit frequency (1 FTE &asymp; 22 commits/month, capped at 1.0; 115 authors sum to ~13 FTE). BWA growth rate ~52/yr (2023&ndash;2025 avg, excluding 2022 interop spike). Velocity parity = annual completion rate &ge; BWA growth rate. Projections use sublinear contributor scaling (exponent 0.7). Cost at &euro;200k/yr per FTE: &euro;150k European senior SWE median total cost &times; 1.33&times; premium for browser-engine specialization and multi-disciplinary practice (software development + W3C/WHATWG standards participation + open-source community management). Calibrated against NLnet (&euro;108k), Sovereign Tech Fund (&euro;79&ndash;101k), Mozilla Germany (&euro;145&ndash;164k), and Servo grant rates (&euro;248k US contractor). Excludes other opex, infrastructure, overhead, and inflation. Usage data: 111 of 593 BWA features have Chrome page-load data (webstatus.dev); 482 are fundamental features not tracked by Use Counters. Data: wpt.fyi, web-features, webstatus.dev, Servo git history.</p> 139 140<div class="footer"> 141 Servo Baseline Readiness Evaluation &mdash; Data as of February 13, 2026 &mdash; Full report: <a href="https://webtransitions.org/servo-readiness">webtransitions.org/servo-readiness</a> 142</div> 143 144</body> 145</html>