See and share Core Web Vitals and PageSpeed Insights results simply and easily.
The aim of page-speed.dev is to make it easy and straightforward to share web performance results. Currently, PageSpeed Insights and Core Web Vitals results are difficult to share, and and often shared via screenshot rather than via a link back to the source.
So:
- Results are cached for a day plus next request making subsequent requests fast and easy to share.
- Mobile results are displayed. (Desktop results are too easy to get good results for and don't adequately reflect a site's performance.)
- Core Web Vitals are prioritised where available as these are a better measure of performance than Lighthouse/PageSpeed Insights results.
- Metrics in OpenGraph images to provide an easy way to share data.
- UI improvements and further optimisations
- explain (and link out to resources on) the meaning of core web vitals acronyms (LCP, CLS, INP)
- compute single web vitals score or make it easier to see what vital 'failed' the site
- Built on Nuxt
- Nitro server API routes
- CrUX API and PageSpeed Insights API
- UnoCSS
- nuxt-og-image, powered by Satori
- Deployed on Azure Static Web Apps
- Using unjs/unstorage for caching on Azure Blob Storage
- Using route rules to persist images, HTML and API requests
You will need to generate a new Google API token here with permissions to access PageSpeed Insights API
and Chrome UX Report API
, and add the token to your .env
file:
NUXT_GOOGLE_API_TOKEN=<your api token>
# install dependencies
corepack enable
pnpm install
# serve in dev mode, with hot reload at localhost:3000
pnpm dev
# build for production
pnpm build
# preview in production mode
pnpm preview
Many thanks to Barry Pollard for providing essential review and suggestions! ❤️
- there is a Raycast extension which uses this API as a backend
Made with ❤️
Published under MIT License.