this repo has no description
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 — 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 — dietrich@webtransitions.org — <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 “Widely Available” (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>—where Servo’s completion rate matches BWA growth, clearing the backlog and keeping pace—requires <strong>~35 FTE</strong> at <strong>€5.3M/yr</strong> (<strong>€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–25 FTE</strong> (<strong>€3.2–3.8M/yr</strong>), saving up to <strong>€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 ≥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 — 78 JS built-ins (SpiderMonkey/test262), 23 semantic HTML elements, 53 other (WebGL extensions, DOM, CSS, etc.) — 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> — 78 JS built-ins (SpiderMonkey), 23 semantic HTML elements, 20 WebGL extensions — 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’s Law</a>).</p>
82</div>
83</div>
84
85<div class="two-col">
86<div>
87<h2>Progress & 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—WPT score doubled in 2.5 years. But Servo’s completion rate (~22/yr) is less than half BWA’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 <1%</th><th style="text-align:right;">Drop <5%</th><th style="text-align:right;">Drop <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;">−35</span>)</td><td style="text-align:right;">537 (<span style="color:#1f6e1f;">−56</span>)</td><td style="text-align:right;">526 (<span style="color:#1f6e1f;">−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;">€5.3M</td><td style="text-align:right;">€3.8M</td><td style="text-align:right;">€3.3M</td><td style="text-align:right;">€3.2M</td></tr>
105 <tr><td>3yr total</td><td style="text-align:right;">€15.9M</td><td style="text-align:right;">€11.4M</td><td style="text-align:right;">€9.9M</td><td style="text-align:right;">€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;">—</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">€4.5M</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">€6.0M</td><td style="text-align:right;font-weight:700;color:#1f6e1f;">€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 <1%<br>(49/yr)</th><th>vs <5%<br>(47/yr)</th><th>€/yr</th><th>3yr</th></tr>
126 <tr><td>13 (current)</td><td>~33</td><td class="fail">✗</td><td class="fail">✗</td><td class="fail">✗</td><td>€2.0M</td><td>€6.0M</td></tr>
127 <tr><td>20</td><td>~45</td><td class="fail">✗</td><td class="fail">✗</td><td class="warn-text">≈</td><td>€3.0M</td><td>€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">✗</td><td class="warn-text">≈</td><td class="pass"><strong>✓</strong></td><td><strong>€3.3M</strong></td><td><strong>€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">≈</td><td class="pass"><strong>✓</strong></td><td class="pass"><strong>✓</strong></td><td><strong>€3.8M</strong></td><td><strong>€11.4M</strong></td></tr>
130 <tr class="highlight"><td>35</td><td>~60</td><td class="pass">✓ parity</td><td class="pass">✓</td><td class="pass">✓</td><td>€5.3M</td><td>€15.9M</td></tr>
131 <tr><td>45</td><td>~62</td><td class="pass">✓</td><td class="pass">✓</td><td class="pass">✓</td><td>€6.8M</td><td>€20.4M</td></tr>
132</table>
133<p style="font-size:9px;color:#686868;">All BWA = 593 features (~52/yr). <1% = drop 35 features below 1% Chrome page loads (~49/yr). <5% = drop 56 features (~47/yr). Cost = FTE × €200k (€150k base × 1.33× specialization). <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks’s Law</a> (0.7).</p>
134</div>
135</div>
136
137<h2>Methodology</h2>
138<p class="methodology">Readiness measured against Baseline “Widely Available” (BWA) web features—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 ≈ 22 commits/month, capped at 1.0; 115 authors sum to ~13 FTE). BWA growth rate ~52/yr (2023–2025 avg, excluding 2022 interop spike). Velocity parity = annual completion rate ≥ BWA growth rate. Projections use sublinear contributor scaling (exponent 0.7). Cost at €200k/yr per FTE: €150k European senior SWE median total cost × 1.33× premium for browser-engine specialization and multi-disciplinary practice (software development + W3C/WHATWG standards participation + open-source community management). Calibrated against NLnet (€108k), Sovereign Tech Fund (€79–101k), Mozilla Germany (€145–164k), and Servo grant rates (€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 — Data as of February 13, 2026 — Full report: <a href="https://webtransitions.org/servo-readiness">webtransitions.org/servo-readiness</a>
142</div>
143
144</body>
145</html>