Files
community-rule/performance-budgets.json
T
2026-04-18 14:12:49 -06:00

386 lines
8.2 KiB
JSON

{
"budgets": [
{
"name": "lcp",
"maxValue": 2500,
"description": "Largest Contentful Paint should be under 2.5s"
},
{
"name": "inp",
"maxValue": 200,
"description": "Interaction to Next Paint should be under 200ms"
},
{
"name": "cls",
"maxValue": 0.1,
"description": "Cumulative Layout Shift should be under 0.1"
},
{
"name": "fcp",
"maxValue": 1800,
"description": "First Contentful Paint should be under 1.8s"
},
{
"name": "ttfb",
"maxValue": 800,
"description": "Time to First Byte should be under 800ms"
},
{
"name": "bundle-size",
"maxSizeKB": 500,
"description": "Individual bundle size should be under 500KB"
},
{
"name": "total-size",
"maxSizeKB": 2000,
"description": "Total bundle size should be under 2MB"
}
],
"performance": {
"budgets": [
{
"path": "/*",
"timings": [
{
"metric": "first-contentful-paint",
"budget": 2000
},
{
"metric": "largest-contentful-paint",
"budget": 2500
},
{
"metric": "first-meaningful-paint",
"budget": 2000
},
{
"metric": "speed-index",
"budget": 3000
},
{
"metric": "interactive",
"budget": 3000
},
{
"metric": "total-blocking-time",
"budget": 300
},
{
"metric": "cumulative-layout-shift",
"budget": 0.1
},
{
"metric": "interaction-to-next-paint",
"budget": 200
}
],
"resourceSizes": [
{
"resourceType": "script",
"budget": 300
},
{
"resourceType": "total",
"budget": 500
},
{
"resourceType": "image",
"budget": 100
},
{
"resourceType": "stylesheet",
"budget": 50
},
{
"resourceType": "font",
"budget": 50
}
],
"resourceCounts": [
{
"resourceType": "script",
"budget": 10
},
{
"resourceType": "total",
"budget": 50
},
{
"resourceType": "image",
"budget": 20
},
{
"resourceType": "stylesheet",
"budget": 5
},
{
"resourceType": "font",
"budget": 5
}
]
}
]
},
"timing": {
"budgets": [
{
"path": "/*",
"timings": [
{
"metric": "first-contentful-paint",
"budget": 2000
},
{
"metric": "largest-contentful-paint",
"budget": 2500
},
{
"metric": "first-meaningful-paint",
"budget": 2000
},
{
"metric": "speed-index",
"budget": 3000
},
{
"metric": "interactive",
"budget": 3000
},
{
"metric": "total-blocking-time",
"budget": 300
},
{
"metric": "cumulative-layout-shift",
"budget": 0.1
},
{
"metric": "interaction-to-next-paint",
"budget": 200
}
]
}
]
},
"resourceSizes": {
"budgets": [
{
"path": "/*",
"resourceSizes": [
{
"resourceType": "script",
"budget": 300
},
{
"resourceType": "total",
"budget": 500
},
{
"resourceType": "image",
"budget": 100
},
{
"resourceType": "stylesheet",
"budget": 50
},
{
"resourceType": "font",
"budget": 50
}
]
}
]
},
"resourceCounts": {
"budgets": [
{
"path": "/*",
"resourceCounts": [
{
"resourceType": "script",
"budget": 10
},
{
"resourceType": "total",
"budget": 50
},
{
"resourceType": "image",
"budget": 20
},
{
"resourceType": "stylesheet",
"budget": 5
},
{
"resourceType": "font",
"budget": 5
}
]
},
{
"path": "/blog",
"timings": [
{
"metric": "first-contentful-paint",
"budget": 2000
},
{
"metric": "largest-contentful-paint",
"budget": 2500
},
{
"metric": "first-meaningful-paint",
"budget": 2000
},
{
"metric": "speed-index",
"budget": 3000
},
{
"metric": "interactive",
"budget": 3000
},
{
"metric": "total-blocking-time",
"budget": 300
},
{
"metric": "cumulative-layout-shift",
"budget": 0.1
},
{
"metric": "interaction-to-next-paint",
"budget": 200
}
],
"resourceSizes": [
{
"resourceType": "script",
"budget": 300
},
{
"resourceType": "total",
"budget": 500
},
{
"resourceType": "image",
"budget": 100
},
{
"resourceType": "stylesheet",
"budget": 50
},
{
"resourceType": "font",
"budget": 50
}
],
"resourceCounts": [
{
"resourceType": "script",
"budget": 10
},
{
"resourceType": "total",
"budget": 50
},
{
"resourceType": "image",
"budget": 20
},
{
"resourceType": "stylesheet",
"budget": 5
},
{
"resourceType": "font",
"budget": 5
}
]
},
{
"path": "/blog/*",
"timings": [
{
"metric": "first-contentful-paint",
"budget": 2000
},
{
"metric": "largest-contentful-paint",
"budget": 2500
},
{
"metric": "first-meaningful-paint",
"budget": 2000
},
{
"metric": "speed-index",
"budget": 3000
},
{
"metric": "interactive",
"budget": 3000
},
{
"metric": "total-blocking-time",
"budget": 300
},
{
"metric": "cumulative-layout-shift",
"budget": 0.1
},
{
"metric": "interaction-to-next-paint",
"budget": 200
}
],
"resourceSizes": [
{
"resourceType": "script",
"budget": 300
},
{
"resourceType": "total",
"budget": 500
},
{
"resourceType": "image",
"budget": 100
},
{
"resourceType": "stylesheet",
"budget": 50
},
{
"resourceType": "font",
"budget": 50
}
],
"resourceCounts": [
{
"resourceType": "script",
"budget": 10
},
{
"resourceType": "total",
"budget": 50
},
{
"resourceType": "image",
"budget": 20
},
{
"resourceType": "stylesheet",
"budget": 5
},
{
"resourceType": "font",
"budget": 5
}
]
}
]
}
}