this repo has no description
0
fork

Configure Feed

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

One-pager layout and copy refinements

- Add WIP/scope disclaimer to summary card
- Update Key Strategic Factors #4 and #5 with accurate language
- Remove byline row, move webtransitions.org link to header
- Replace summary card left border accent with uniform border
- Move Usage Prioritization table into second two-col grid
- Remove Progress and Trajectory section
- Tighten vertical spacing to fit on one PDF page
- Regenerate dashboard, one-pager, and PDF

+30 -36
+1 -1
dashboard.html
··· 49 49 <h1>Servo Baseline Readiness</h1> 50 50 <div class="byline">Dietrich Ayala &mdash; dietrich@webtransitions.org &mdash; <a href="https://webtransitions.org">webtransitions.org</a></div> 51 51 <div style="background:rgba(71,11,0,0.04);border:1px solid rgba(71,11,0,0.15);border-radius:8px;padding:14px 18px;margin-bottom:16px;font-size:14px;line-height:1.5;color:#1d1d1d;"> 52 - Servo is falling behind the web. It completes <strong>~22 features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/" target="_blank">Widely Available</a>&rdquo; set grows at <strong>~52 features/year</strong>. At this pace, Servo plateaus around <strong>80% by ~2037 and never catches up</strong>. Full velocity parity requires <strong>~44 FTE</strong> (<strong>&euro;8.8M/yr</strong>, <strong>&euro;26.3M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling 141 blocked features</strong> and fixing <strong>51 regressions</strong> (features that lost &gt;5 percentage points). This report asks: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs? 52 + Servo is falling behind the web. It completes <strong>~22 features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/" target="_blank">Widely Available</a>&rdquo; set grows at <strong>~52 features/year</strong>. At this pace, Servo plateaus around <strong>80% by ~2037 and never catches up</strong>. Full velocity parity requires <strong>~44 FTE</strong> (<strong>&euro;8.8M/yr</strong>, <strong>&euro;26.3M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling 141 blocked features</strong> and fixing <strong>51 regressions</strong> (features that lost &gt;5 percentage points). This is a work-in-progress analysis focusing on one aspect of web engine development &mdash; feature-level readiness &mdash; and is not exhaustive. It is designed to orient thinking about cost and timelines. The central question: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs? 53 53 </div> 54 54 55 55 <div class="metric">
+14 -17
data/build-one-pager.mjs
··· 133 133 font-size: 1.1rem; line-height: 1.3; 134 134 } 135 135 136 - .header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; padding-bottom: 10px; } 136 + .header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; padding-bottom: 4px; } 137 137 h1 { font-size: 26px; font-weight: 700; color: rgb(71, 11, 0); } 138 138 .byline { font-size: 12px; color: #1d1d1d; margin-top: 2px; } 139 139 .byline a { color: rgb(71, 11, 0); } ··· 148 148 .hero-value { font-size: 26px; font-weight: 700; color: rgb(71, 11, 0); } 149 149 .hero-sub { font-size: 10px; color: #666; margin-top: 2px; line-height: 1.4; } 150 150 151 - .section { margin-bottom: 12px; } 152 - .section h2 { font-size: 13px; font-weight: 700; color: rgb(71, 11, 0); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; border-bottom: 1px solid rgba(71, 11, 0, 0.2); padding-bottom: 3px; } 151 + .section { margin-bottom: 6px; } 152 + .section h2 { font-size: 13px; font-weight: 700; color: rgb(71, 11, 0); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 4px; border-bottom: 1px solid rgba(71, 11, 0, 0.2); padding-bottom: 2px; } 153 153 154 154 .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } 155 155 ··· 165 165 background: #fff; 166 166 border: 1px solid rgba(71, 11, 0, 0.2); border-radius: 8px; 167 167 padding: 12px 16px; margin-bottom: 12px; 168 - border-left: 3px solid rgb(71, 11, 0); 168 + border: 1px solid rgba(71, 11, 0, 0.15); 169 169 } 170 170 .callout p { font-size: 12px; line-height: 1.55; color: #1d1d1d; } 171 171 .callout strong { color: rgb(71, 11, 0); } 172 172 173 - .insight-row { display: flex; gap: 8px; margin-bottom: 5px; } 173 + .insight-row { display: flex; gap: 6px; margin-bottom: 3px; } 174 174 .insight-num { background: rgb(71, 11, 0); color: #fff; font-size: 9px; font-weight: 700; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; } 175 175 .insight-text { font-size: 11px; line-height: 1.45; color: #1d1d1d; } 176 176 177 - .footer { font-size: 9px; color: #686868; text-align: center; margin-top: 8px; padding-top: 6px; border-top: 1px solid rgba(71, 11, 0, 0.15); } 177 + .footer { font-size: 9px; color: #686868; text-align: center; margin-top: 2px; padding-top: 3px; border-top: 1px solid rgba(71, 11, 0, 0.15); } 178 178 179 179 .pass { color: #1f6e1f; } 180 180 .fail { color: #a33; } ··· 185 185 <body> 186 186 187 187 <div class="header"> 188 - <div> 189 - <h1>Servo Baseline Readiness</h1> 190 - <div class="byline">Dietrich Ayala &mdash; dietrich@webtransitions.org &mdash; <a href="https://webtransitions.org">webtransitions.org</a></div> 191 - </div> 192 - <div><span style="color:#a33;font-weight:700;font-size:12px;letter-spacing:0.06em;margin-right:8px;">DRAFT</span><span class="date">March 2026</span></div> 188 + <h1>Servo Baseline Readiness</h1> 189 + <div><a href="https://webtransitions.org" style="color:rgb(71,11,0);font-size:12px;margin-right:10px;">webtransitions.org</a><span style="color:#a33;font-weight:700;font-size:12px;letter-spacing:0.06em;margin-right:8px;">DRAFT</span><span class="date">March 2026</span></div> 193 190 </div> 194 191 195 192 <div class="callout"> 196 - <p>Servo is falling behind the web. It completes <strong>~${servoCompletionsPerYear} features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/">Widely Available</a>&rdquo; set grows at <strong>~${bwaGrowthPerYear} features/year</strong>. At this pace, Servo plateaus around <strong>${ceilingPct}% by ~${ceilingYear} and never catches up</strong>. Full velocity parity requires <strong>~${parityFTE} FTE</strong> (<strong>&euro;${parityCostPerYear}M/yr</strong>, <strong>&euro;${parityCost3yr}M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling ${stalledFeatures.length} blocked features</strong> and fixing <strong>${regressions.length} regressions</strong> (features that lost &gt;5 percentage points). This report asks: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs?</p> 193 + <p>Servo is falling behind the web. It completes <strong>~${servoCompletionsPerYear} features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/">Widely Available</a>&rdquo; set grows at <strong>~${bwaGrowthPerYear} features/year</strong>. At this pace, Servo plateaus around <strong>${ceilingPct}% by ~${ceilingYear} and never catches up</strong>. Full velocity parity requires <strong>~${parityFTE} FTE</strong> (<strong>&euro;${parityCostPerYear}M/yr</strong>, <strong>&euro;${parityCost3yr}M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling ${stalledFeatures.length} blocked features</strong> and fixing <strong>${regressions.length} regressions</strong> (features that lost &gt;5 percentage points). This is a work-in-progress analysis focusing on one aspect of web engine development &mdash; feature-level readiness &mdash; and is not exhaustive. It is designed to orient thinking about cost and timelines. The central question: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs?</p> 197 194 </div> 198 195 199 196 <div class="hero"> ··· 255 252 <span><span style="color:#a33;">&#9632;</span> ${unsupportedCount} unsupported (${unsupportedPct}%)</span> 256 253 </div> 257 254 <p style="font-size:10.5px;color:#1d1d1d;line-height:1.4;">Of ${totalBWA} BWA features, ${measurableCount} have WPT test coverage. ${noDataCount} lack WPT mapping: ${(noDataByReason['js-builtin'] || []).length} JS built-ins (SpiderMonkey/test262), ${(noDataByReason['semantic-html'] || []).length} semantic HTML elements, ${noDataCount - (noDataByReason['js-builtin'] || []).length - (noDataByReason['semantic-html'] || []).length} other (WebGL extensions, DOM, CSS, etc.). The ${(noDataByReason['js-builtin'] || []).length} JS built-ins and ${(noDataByReason['semantic-html'] || []).length} semantic HTML elements (~${Math.round(((noDataByReason['js-builtin'] || []).length + (noDataByReason['semantic-html'] || []).length) / noDataCount * 100)}% of unmeasured) are supported via SpiderMonkey and the HTML parser respectively; the remaining ${noDataCount - (noDataByReason['js-builtin'] || []).length - (noDataByReason['semantic-html'] || []).length} have unknown status. WPT pass rate doubled from 30% to 62% over 2.5 years.</p> 258 - <h2 style="margin-top:8px;">BWA Growth Pipeline</h2> 255 + <h2 style="margin-top:12px;">BWA Growth Pipeline</h2> 259 256 <table> 260 257 <tr><th>Year</th><th>New BWA</th><th>Cumulative</th><th>Source</th></tr> 261 258 ${pipelineRows.map(r => ··· 297 294 </div> 298 295 <div class="insight-row"> 299 296 <div class="insight-num">4</div> 300 - <div class="insight-text"><strong style="color:#686868;">${noDataCount} unmeasured features</strong> &mdash; ${(noDataByReason['js-builtin'] || []).length} JS built-ins (SpiderMonkey), ${(noDataByReason['semantic-html'] || []).length} semantic HTML elements, ${(noDataByReason['webgl-extension'] || []).length} WebGL extensions &mdash; most likely already work. Closing the measurement gap lifts the number without engine work.</div> 297 + <div class="insight-text"><strong style="color:#686868;">${noDataCount} unmeasured features</strong> &mdash; ${(noDataByReason['js-builtin'] || []).length} JS built-ins and ${(noDataByReason['semantic-html'] || []).length} semantic HTML elements are supported via SpiderMonkey and the HTML parser; ${(noDataByReason['webgl-extension'] || []).length} WebGL extensions depend on GPU drivers; ${noDataCount - (noDataByReason['js-builtin'] || []).length - (noDataByReason['semantic-html'] || []).length - (noDataByReason['webgl-extension'] || []).length} have unknown status. Closing the measurement gap would lift readiness without engine work.</div> 301 298 </div> 302 299 <div class="insight-row"> 303 300 <div class="insight-num">5</div> 304 - <div class="insight-text"><strong>Strategic focus > headcount.</strong> Doubling FTE cuts time ~40% (<a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks's Law</a>). Fixing regressions and unstalling blocked features yield the highest return per euro.</div> 301 + <div class="insight-text"><strong>Strategic focus > headcount.</strong> Doubling FTE cuts time ~40% due to <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a>. Targeted investment in regressions and stalled features delivers more progress per euro than broad hiring.</div> 305 302 </div> 306 303 </div> 307 304 308 305 </div> 309 306 310 - <div class="section"> 307 + <div class="section" style="margin-top:-4px;"> 311 308 <h2>Methodology</h2> 312 309 <p style="font-size:10px;line-height:1.45;color:#666;">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. ${measurableCount} of ${totalBWA} BWA features are measurable; ${noDataCount} lack WPT mapping (${(noDataByReason['js-builtin'] || []).length} JS built-ins tested by test262 not WPT, ${(noDataByReason['semantic-html'] || []).length} semantic HTML elements, ${noDataCount - (noDataByReason['js-builtin'] || []).length - (noDataByReason['semantic-html'] || []).length} other with unknown status). FTE-equivalent from per-author commit frequency (1 FTE &asymp; 22 commits/month, capped at 1.0 per person; 115 authors sum to ~${currentContributors} FTE). BWA growth rate of ~${bwaGrowthPerYear}/year is the 2023&ndash;2025 average, normalized to exclude the 2022 interop spike. Known pipeline: ${projectedBWA.filter(p => p.year <= 2028).reduce((s, p) => s + p.added, 0)} features graduating by 2028. Velocity parity = Servo&rsquo;s annual feature completion rate &ge; BWA annual growth rate. Completions/yr = ${servoCompletionsPerYear} &times; (FTE/${currentContributors})<sup>${SCALING_EXP}</sup> (sublinear <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a> scaling). Stalled = zero or negative velocity over the full observation period (2023-Q3 to 2026-Q1). Regressions = features that lost &gt;5 percentage points. Cost at &euro;${(SALARY/1000).toFixed(0)}k/yr per FTE: &euro;${(BASE_SALARY/1000).toFixed(0)}k European senior SWE median total cost &times; ${SPECIALIZATION_MULTIPLIER}&times; premium for browser-engine specialization (small talent pool, Rust/rendering/layout) and multi-disciplinary practice (software development + W3C/WHATWG standards participation + open-source community management). Calibrated against <a href="https://nlnet.nl/core/faq/">NLnet</a> (&euro;117k, up to &euro;65/hr), <a href="https://www.sovereign.tech/programs/fellowship">Sovereign Tech Fund</a> (&euro;79&ndash;101k, TVöD-Bund + employer costs), <a href="https://www.levels.fyi/companies/mozilla/salaries/software-engineer/locations/germany">Mozilla Germany</a> (&euro;145&ndash;164k), and <a href="https://github.com/servo/project">Servo grant rates</a> (&euro;248k US contractor). Excludes other opex, infrastructure, management overhead, and inflation. Usage-prioritized scenarios: at &lt;1% threshold, ${drop1_count} features deprioritized (target ${target_drop1}, growth ~49/yr); at &lt;5%, ${drop5_count} features deprioritized (target ${target_drop5}, growth ~47/yr). Data: wpt.fyi, web-features, Servo git history. Full interactive dashboard: dashboard.html.</p> 313 310 </div> 314 311 315 - <p style="font-size:9px;line-height:1.45;color:#686868;margin-top:8px;">Thanks to the people who&rsquo;ve reviewed the methodology and approach so far. NOTE: AI was used in the making of this draft report. For suggestions for improvement or spotting of inaccuracies, contact <a href="mailto:dietrich@webtransitions.org">dietrich@webtransitions.org</a>.</p> 312 + <p style="font-size:9px;line-height:1.45;color:#686868;margin-top:2px;">Thanks to the people who&rsquo;ve reviewed the methodology and approach so far. NOTE: AI was used in the making of this draft report. For suggestions for improvement or spotting of inaccuracies, contact <a href="mailto:dietrich@webtransitions.org">dietrich@webtransitions.org</a>.</p> 316 313 317 314 <div class="footer"> 318 315 Servo Baseline Readiness Evaluation &mdash; Data as of March 2026 &mdash; <a href="https://webtransitions.org">webtransitions.org</a>
+1 -1
data/generate-dashboard.mjs
··· 237 237 <h1>Servo Baseline Readiness</h1> 238 238 <div class="byline">Dietrich Ayala &mdash; dietrich@webtransitions.org &mdash; <a href="https://webtransitions.org">webtransitions.org</a></div> 239 239 <div style="background:rgba(71,11,0,0.04);border:1px solid rgba(71,11,0,0.15);border-radius:8px;padding:14px 18px;margin-bottom:16px;font-size:14px;line-height:1.5;color:#1d1d1d;"> 240 - Servo is falling behind the web. It completes <strong>~${servoCompletionsPerYear} features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/" target="_blank">Widely Available</a>&rdquo; set grows at <strong>~${bwaGrowthPerYear} features/year</strong>. At this pace, Servo plateaus around <strong>${ceilingPct}% by ~${ceilingYear} and never catches up</strong>. Full velocity parity requires <strong>~${parityFTE} FTE</strong> (<strong>&euro;${parityCostPerYear}M/yr</strong>, <strong>&euro;${parityCost3yr}M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling ${stalledFeatures.length} blocked features</strong> and fixing <strong>${regressions.length} regressions</strong> (features that lost &gt;5 percentage points). This report asks: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs? 240 + Servo is falling behind the web. It completes <strong>~${servoCompletionsPerYear} features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/" target="_blank">Widely Available</a>&rdquo; set grows at <strong>~${bwaGrowthPerYear} features/year</strong>. At this pace, Servo plateaus around <strong>${ceilingPct}% by ~${ceilingYear} and never catches up</strong>. Full velocity parity requires <strong>~${parityFTE} FTE</strong> (<strong>&euro;${parityCostPerYear}M/yr</strong>, <strong>&euro;${parityCost3yr}M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling ${stalledFeatures.length} blocked features</strong> and fixing <strong>${regressions.length} regressions</strong> (features that lost &gt;5 percentage points). This is a work-in-progress analysis focusing on one aspect of web engine development &mdash; feature-level readiness &mdash; and is not exhaustive. It is designed to orient thinking about cost and timelines. The central question: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs? 241 241 </div> 242 242 243 243 <div class="metric">
+14 -17
one-pager.html
··· 17 17 font-size: 1.1rem; line-height: 1.3; 18 18 } 19 19 20 - .header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; padding-bottom: 10px; } 20 + .header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; padding-bottom: 4px; } 21 21 h1 { font-size: 26px; font-weight: 700; color: rgb(71, 11, 0); } 22 22 .byline { font-size: 12px; color: #1d1d1d; margin-top: 2px; } 23 23 .byline a { color: rgb(71, 11, 0); } ··· 32 32 .hero-value { font-size: 26px; font-weight: 700; color: rgb(71, 11, 0); } 33 33 .hero-sub { font-size: 10px; color: #666; margin-top: 2px; line-height: 1.4; } 34 34 35 - .section { margin-bottom: 12px; } 36 - .section h2 { font-size: 13px; font-weight: 700; color: rgb(71, 11, 0); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; border-bottom: 1px solid rgba(71, 11, 0, 0.2); padding-bottom: 3px; } 35 + .section { margin-bottom: 6px; } 36 + .section h2 { font-size: 13px; font-weight: 700; color: rgb(71, 11, 0); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 4px; border-bottom: 1px solid rgba(71, 11, 0, 0.2); padding-bottom: 2px; } 37 37 38 38 .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } 39 39 ··· 49 49 background: #fff; 50 50 border: 1px solid rgba(71, 11, 0, 0.2); border-radius: 8px; 51 51 padding: 12px 16px; margin-bottom: 12px; 52 - border-left: 3px solid rgb(71, 11, 0); 52 + border: 1px solid rgba(71, 11, 0, 0.15); 53 53 } 54 54 .callout p { font-size: 12px; line-height: 1.55; color: #1d1d1d; } 55 55 .callout strong { color: rgb(71, 11, 0); } 56 56 57 - .insight-row { display: flex; gap: 8px; margin-bottom: 5px; } 57 + .insight-row { display: flex; gap: 6px; margin-bottom: 3px; } 58 58 .insight-num { background: rgb(71, 11, 0); color: #fff; font-size: 9px; font-weight: 700; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; } 59 59 .insight-text { font-size: 11px; line-height: 1.45; color: #1d1d1d; } 60 60 61 - .footer { font-size: 9px; color: #686868; text-align: center; margin-top: 8px; padding-top: 6px; border-top: 1px solid rgba(71, 11, 0, 0.15); } 61 + .footer { font-size: 9px; color: #686868; text-align: center; margin-top: 2px; padding-top: 3px; border-top: 1px solid rgba(71, 11, 0, 0.15); } 62 62 63 63 .pass { color: #1f6e1f; } 64 64 .fail { color: #a33; } ··· 69 69 <body> 70 70 71 71 <div class="header"> 72 - <div> 73 - <h1>Servo Baseline Readiness</h1> 74 - <div class="byline">Dietrich Ayala &mdash; dietrich@webtransitions.org &mdash; <a href="https://webtransitions.org">webtransitions.org</a></div> 75 - </div> 76 - <div><span style="color:#a33;font-weight:700;font-size:12px;letter-spacing:0.06em;margin-right:8px;">DRAFT</span><span class="date">March 2026</span></div> 72 + <h1>Servo Baseline Readiness</h1> 73 + <div><a href="https://webtransitions.org" style="color:rgb(71,11,0);font-size:12px;margin-right:10px;">webtransitions.org</a><span style="color:#a33;font-weight:700;font-size:12px;letter-spacing:0.06em;margin-right:8px;">DRAFT</span><span class="date">March 2026</span></div> 77 74 </div> 78 75 79 76 <div class="callout"> 80 - <p>Servo is falling behind the web. It completes <strong>~22 features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/">Widely Available</a>&rdquo; set grows at <strong>~52 features/year</strong>. At this pace, Servo plateaus around <strong>80% by ~2037 and never catches up</strong>. Full velocity parity requires <strong>~44 FTE</strong> (<strong>&euro;8.8M/yr</strong>, <strong>&euro;26.3M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling 141 blocked features</strong> and fixing <strong>51 regressions</strong> (features that lost &gt;5 percentage points). This report asks: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs?</p> 77 + <p>Servo is falling behind the web. It completes <strong>~22 features/year</strong> at production quality, while the Baseline &ldquo;<a href="https://web-platform-dx.github.io/web-features/">Widely Available</a>&rdquo; set grows at <strong>~52 features/year</strong>. At this pace, Servo plateaus around <strong>80% by ~2037 and never catches up</strong>. Full velocity parity requires <strong>~44 FTE</strong> (<strong>&euro;8.8M/yr</strong>, <strong>&euro;26.3M over 3yr</strong>). BWA features vary widely in real-world usage &mdash; a phased approach that prioritizes high-usage features first could reduce the initial headcount and cost by up to 40% while building toward full parity. The highest-leverage actions are <strong>unstalling 141 blocked features</strong> and fixing <strong>51 regressions</strong> (features that lost &gt;5 percentage points). This is a work-in-progress analysis focusing on one aspect of web engine development &mdash; feature-level readiness &mdash; and is not exhaustive. It is designed to orient thinking about cost and timelines. The central question: <strong>what would it cost in engineering investment alone to bring Servo to velocity parity within 3 years</strong>, excluding non-engineering and operational costs?</p> 81 78 </div> 82 79 83 80 <div class="hero"> ··· 137 134 <span><span style="color:#a33;">&#9632;</span> 19 unsupported (4.3%)</span> 138 135 </div> 139 136 <p style="font-size:10.5px;color:#1d1d1d;line-height:1.4;">Of 593 BWA features, 439 have WPT test coverage. 154 lack WPT mapping: 78 JS built-ins (SpiderMonkey/test262), 23 semantic HTML elements, 53 other (WebGL extensions, DOM, CSS, etc.). The 78 JS built-ins and 23 semantic HTML elements (~66% of unmeasured) are supported via SpiderMonkey and the HTML parser respectively; the remaining 53 have unknown status. WPT pass rate doubled from 30% to 62% over 2.5 years.</p> 140 - <h2 style="margin-top:8px;">BWA Growth Pipeline</h2> 137 + <h2 style="margin-top:12px;">BWA Growth Pipeline</h2> 141 138 <table> 142 139 <tr><th>Year</th><th>New BWA</th><th>Cumulative</th><th>Source</th></tr> 143 140 <tr><td>2026</td><td>+61</td><td>654</td><td>Known pipeline</td></tr> ··· 180 177 </div> 181 178 <div class="insight-row"> 182 179 <div class="insight-num">4</div> 183 - <div class="insight-text"><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. Closing the measurement gap lifts the number without engine work.</div> 180 + <div class="insight-text"><strong style="color:#686868;">154 unmeasured features</strong> &mdash; 78 JS built-ins and 23 semantic HTML elements are supported via SpiderMonkey and the HTML parser; 20 WebGL extensions depend on GPU drivers; 33 have unknown status. Closing the measurement gap would lift readiness without engine work.</div> 184 181 </div> 185 182 <div class="insight-row"> 186 183 <div class="insight-num">5</div> 187 - <div class="insight-text"><strong>Strategic focus > headcount.</strong> Doubling FTE cuts time ~40% (<a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks's Law</a>). Fixing regressions and unstalling blocked features yield the highest return per euro.</div> 184 + <div class="insight-text"><strong>Strategic focus > headcount.</strong> Doubling FTE cuts time ~40% due to <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a>. Targeted investment in regressions and stalled features delivers more progress per euro than broad hiring.</div> 188 185 </div> 189 186 </div> 190 187 191 188 </div> 192 189 193 - <div class="section"> 190 + <div class="section" style="margin-top:-4px;"> 194 191 <h2>Methodology</h2> 195 192 <p style="font-size:10px;line-height:1.45;color:#666;">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. 439 of 593 BWA features are measurable; 154 lack WPT mapping (78 JS built-ins tested by test262 not WPT, 23 semantic HTML elements, 53 other with unknown status). FTE-equivalent from per-author commit frequency (1 FTE &asymp; 22 commits/month, capped at 1.0 per person; 115 authors sum to ~13 FTE). BWA growth rate of ~52/year is the 2023&ndash;2025 average, normalized to exclude the 2022 interop spike. Known pipeline: 130 features graduating by 2028. Velocity parity = Servo&rsquo;s annual feature completion rate &ge; BWA annual growth rate. Completions/yr = 22 &times; (FTE/13)<sup>0.7</sup> (sublinear <a href="https://en.wikipedia.org/wiki/Brooks%27s_law">Brooks&rsquo;s Law</a> scaling). Stalled = zero or negative velocity over the full observation period (2023-Q3 to 2026-Q1). Regressions = features that lost &gt;5 percentage points. Cost at &euro;200k/yr per FTE: &euro;150k European senior SWE median total cost &times; 1.33&times; premium for browser-engine specialization (small talent pool, Rust/rendering/layout) and multi-disciplinary practice (software development + W3C/WHATWG standards participation + open-source community management). Calibrated against <a href="https://nlnet.nl/core/faq/">NLnet</a> (&euro;117k, up to &euro;65/hr), <a href="https://www.sovereign.tech/programs/fellowship">Sovereign Tech Fund</a> (&euro;79&ndash;101k, TVöD-Bund + employer costs), <a href="https://www.levels.fyi/companies/mozilla/salaries/software-engineer/locations/germany">Mozilla Germany</a> (&euro;145&ndash;164k), and <a href="https://github.com/servo/project">Servo grant rates</a> (&euro;248k US contractor). Excludes other opex, infrastructure, management overhead, and inflation. Usage-prioritized scenarios: at &lt;1% threshold, 35 features deprioritized (target 558, growth ~49/yr); at &lt;5%, 56 features deprioritized (target 537, growth ~47/yr). Data: wpt.fyi, web-features, Servo git history. Full interactive dashboard: dashboard.html.</p> 196 193 </div> 197 194 198 - <p style="font-size:9px;line-height:1.45;color:#686868;margin-top:8px;">Thanks to the people who&rsquo;ve reviewed the methodology and approach so far. NOTE: AI was used in the making of this draft report. For suggestions for improvement or spotting of inaccuracies, contact <a href="mailto:dietrich@webtransitions.org">dietrich@webtransitions.org</a>.</p> 195 + <p style="font-size:9px;line-height:1.45;color:#686868;margin-top:2px;">Thanks to the people who&rsquo;ve reviewed the methodology and approach so far. NOTE: AI was used in the making of this draft report. For suggestions for improvement or spotting of inaccuracies, contact <a href="mailto:dietrich@webtransitions.org">dietrich@webtransitions.org</a>.</p> 199 196 200 197 <div class="footer"> 201 198 Servo Baseline Readiness Evaluation &mdash; Data as of March 2026 &mdash; <a href="https://webtransitions.org">webtransitions.org</a>