Vercel — Engineering Performance
Avg. perf / dev / mo (ETV)
+46.4%
2.10 → 3.08
Active contributors
−13.7%
73.0 → 63.0
Growth
−3.4pp
35.2% → 31.8%
Fixes
+5.6pp
15.1% → 20.7%
Vercel vs. 500 OSS Performance Index
Per-engineer ETV for Vercel plotted against the pooled 500 OSS Performance Index. Both series are 90-day trailing rolling averages scaled to a 30-day month, so the curves sit on the same scale (ETV / dev / mo) and can be compared point-for-point. Latest reading: Vercel is 58% above the index (3.07 vs 1.94 ETV/dev/mo). Baseline gap was 48% above.
Monthly reports
Highlights
- Introduced the new *`tbx` sandbox helper* for streamlined *Turborepo development*, including features like npm registry access and improved startup performance [c6f0d539 · Anthony Shew], [57a47161 · Anthony Shew], [aab6e388 · Anthony Shew].
- Enhanced the *AI SDK* with a new diagnostics channel for telemetry [202f1070 · Aayush Kapoor] and improved *OpenTelemetry integration* for supplemental AI SDK attributes [18651f6f · Aayush Kapoor].
- Refactored core *Tool types* within `provider-utils` for a stricter and more robust internal API [b6783daf · Lars Grammel].
- Improved *Turbopack*'s tracing capabilities by reporting OS memory pressure [292a3fba · Tobias Koppers] and adding module graph edge counts [8384791e · Niklas Mischkulnig], alongside significant performance optimizations for the *turbopack-trace-server* [8dee7acb · Luke Sandberg].
- Enabled `validateRSCRequestHeaders` by default in *Next.js* to improve CDN distinction for React Server Components [4ba05cc3 · Zack Tanner].
- Hardened *CI/CD release processes* by using GitHub API commits for security and reliability [45842be4 · Anthony Shew] and standardizing authentication across workflows [4d276a2d · Gregor Martynus].
Observations
- The *`tbx` sandbox* component was a significant area of activity, with its initial introduction [c6f0d539 · Anthony Shew] followed by multiple fixes and improvements, including 3 waste commits ([409b6d82 · Anthony Shew], [7a3023dc · Anthony Shew], [78134f87 · Anthony Shew]) out of 7 related commits, indicating active development and stabilization efforts.
- *AI SDK* and its integrations (Anthropic, OpenTelemetry) received substantial attention, with new features, refactorings, and cleanup efforts across several commits.
- *Turbopack* development continued with a focus on performance, tracing, and internal refactoring, including two waste commits related to snapshot encoding [00a671b7 · Luke Sandberg] and module ID assignment [b694eeb5 · Niklas Mischkulnig].
- *Next.js* saw important bug fixes, such as handling falsey values in error boundaries [ea541987 · Janka Uryga] and correctly honoring route-level `expire` values for revalidation [8e4cfc50 · Hendrik Liebau], both contributing to the waste score.
- A consistent effort was observed in *CI/CD pipeline hardening*, *documentation updates*, and *release process improvements*, with several maintenance commits aimed at enhancing developer experience and operational stability.
- The overall waste score for April 2026 was 15, a +21% increase compared to the 5-month average of 13, distributed across various components like *`tbx` sandbox*, *Next.js*, *Turbopack*, *Vercel CLI*, and *CI/CD*, rather than being concentrated in a single area.
- Total commits (482) and total output (115) remained stable, showing only a +1% and +11% increase respectively compared to the 5-month averages (476 commits, 103 output), indicating a consistent pace of development.
Repositories
Active repositories ranked by average performance per developer per month (over the last 90 days). The chart shows monthly performance composition — each repo as a stacked layer, with the top of the stack representing total org performance per month. Top 9 repos shown; the remainder is aggregated as “Other”.
| Repository | ||||
|---|---|---|---|---|
| turborepo | 7 | 118 | 5.6 | +1349%since Q2 2025 |
| workflow | 9 | 94 | 3.5 | +104%since Q4 2025 |
| ai | 10 | 102 | 3.4 | +32%since Q2 2025 |
| next.js | 25 | 170 | 2.3 | +49%since Q2 2025 |
| vercel | 24 | 89 | 1.2 | +1979%since Q2 2025 |
| sdk | 1 | 2 | 0.7 | −39%since Q2 2025 |
| sandbox | 9 | 7 | 0.3 | — |
| next-forge | 2 | 0 | 0.0 | −87%since Q2 2025 |
| swr | 2 | 0 | 0.0 | −100%since Q3 2025 |
Company total9 repositories | 63unique devs | 582ETV total | 3.08ETV / dev / mo | +178%since Q2 2025 |
| Performance (ETV) is the sum of every repository above. Active devs at the company level counts unique contributors across all repos, so a contributor working in multiple repos is counted once here but appears in each repo's row (the per-repo column will sum higher). ETV / dev / mo = Company ETV ÷ unique devs ÷ 3 mo. The "Since start" column compares each repo's Q1 2026 quarterly performance to the first quarter it had any activity — for repos that existed in Q2 2025 (when this index began), that's Q2 2025; for younger repos it's the quarter they actually started. The company row uses Q2 2025 as the baseline since the index itself began then. | ||||
Performance Growth vs Active Contributors
Engineering performance is outpacing team growth by 11.7×. Left axis shows total performance score, right axis shows active contributor count. The gap between curves represents productivity gains — more delivered per person, not just more people. Unit: Engineering Throughput Value (ETV).
Cost per Performance Unit
−58%
If performance per engineer more than doubled, each unit of engineering performance now costs approximately 58% less than at the baseline 90-day window (ending 2025-06-29). This is a directional estimate — the exact figure depends on fully-loaded engineer cost, but the direction is unambiguous.
Effective Capacity Added
+89 engineers
At today's productivity, the current 63-person team delivers the performance equivalent of 152 engineers at the baseline 90-day rolling window (ending 2025-06-29). That's roughly 89 engineers worth of capacity added through productivity gains, not hiring.
Performance Composition
Stacked bars show total complexity performance split into Growth (new value), Maintenance (sustaining systems), and Fixes (rework). The yellow line overlays performance per contributor — rising line means each engineer is delivering more, regardless of team size changes. Unit: Engineering Throughput Value (ETV).
CapEx vs OpEx
Monthly CapEx vs OpEx split. CapEx (capitalizable investment) is Growth — new features and capabilities. OpEx (operating expense) is Maintenance plus Fixes — keeping the lights on and reworking what's already shipped. The yellow line is the CapEx share, a quick read on how much of the month went into building new vs sustaining existing. Unit: Engineering Throughput Value (ETV).
Hours per Repository
Trailing 90-day window (64 working days). Org-level capacity is allocated to each repo by its share of org performance, then split CapEx / OpEx by that repo's own Growth vs Maintenance + Fixes mix.
| next-forge | 86.7% | 13.3% |
| sandbox | 52.6% | 47.4% |
| vercel | 45.4% | 54.6% |
| sdk | 35.2% | 64.8% |
| workflow | 33.2% | 66.8% |
| next.js | 30.3% | 69.7% |
| ai | 26.8% | 73.2% |
| turborepo | 25.3% | 74.7% |
| swr | 0.0% | 0.0% |
| Total | 31.7% | 68.3% |
Fix Burden Distribution
Monthly rework volume broken down by who did it. Top contributors carry their named slice; everyone else is rolled into Others. Use this to spot whether fix work is concentrated on a small group (bus-factor risk) or distributed across the team.
Fix authorship over time
Monthly fix activity in this scope, split by who fixed the bug. Darker emerald = the original author fixed their own bug; lighter emerald = someone else cleaned it up. A persistently high 'fixed by another author' share is a signal of bug-debt landing on the team rather than its author. X-axis is fix-time — bugs introduced but not yet detected don't appear.
- Self-fix share
- 24%
- Total bug impact
- 375.1
Quarterly Summary
The raw numbers behind the charts: commits analyzed, active contributors, total performance, performance per developer, and the Growth / Maintenance / Fixes split for each quarter.
| Quarter | ||||||||
|---|---|---|---|---|---|---|---|---|
| Q2'25 | 1,830 | 55 | 214.08 | 1.3 | 20.8% | 64.8% | 14.4% | — |
| Q3'25 | 1,848 | 62 | 251.46 | 1.4 | 23.8% | 58.2% | 18.1% | +17% |
| Q4'25 | 1,963 | 67 | 297.14 | 1.5 | 31.6% | 53.1% | 15.4% | +18% |
| Q1'26 | 2,964 | 70 | 594.53 | 2.8 | 33.9% | 50.2% | 15.8% | +100% |
Top Contributors
Contributors ranked by performance per month (Growth + Maintenance + Fixes), over the last 90 days normalized to a 30-day calendar month.
The best way to measure AI efficiency
SampleA preview of the Navigara engine running on a sample organization. The numbers below are illustrative, not part of the OSS500 benchmark above.
Measure
Score every commit by depth
GitHub commits are weighted by what it took to write them, not by lines of code. The result is ETV per developer per month.
SourceGitHub
Spend
Tie ETV to cost
AI token bills and seat costs are pulled per team and divided by the ETV produced. The result is your true cost per unit of work.
SourceToken usage + finance
Map
Tie work to objectives
Each ETV is mapped to your Jira epics and labels, so you can see what's key-aligned, aligned, or unmapped capacity.
SourceJira
Performance
ETV delivered per developer / month
9.4ETV / dev / month
5.6 below target- Non-AI 5.8
- AI 3.6
AI Efficiency
AI spend per ETV unit delivered
$4.20
$0.60 over target- Cost / ETV $4.20
Objective Alignment
Share of work mapped to key objectives
51%
24 pts below target- Key-aligned 28%
- Aligned 23%