
Template details
Speedlify
Benchmark the web performance and accessibility of sites over time.
About this template
Speedlify is an open-source Eleventy-based tool that continuously tracks Lighthouse performance and accessibility scores for a list of websites, publishing the results as a static site.
What is Speedlify?
Speedlify takes a list of site URLs defined in JavaScript files under _data/sites/*.js, runs Lighthouse tests, and generates a static site that charts performance and accessibility scores over time. It requires Node 12+ and can run locally or directly on Netlify, where results are saved to the Netlify build cache. Speedlify was created by Zach Leatherman (@zachleat), the creator of the Eleventy static site generator.
Key Features
- Category-based site lists — Each file in
_data/sites/*.jsdefines a category containing multiple site URLs for comparison. - Continuous measurement — Re-run tests on a schedule via Netlify Build Hooks to track performance over time.
- Netlify deployment — Runs directly on Netlify, including tests, and saves results to the Netlify build cache via a build plugin (
plugins/keep-data-cache/). - Results backup — Downloads a
/results.ziparchive from any build for fallback backup if the cache is lost. - Leaderboard functionality — Powers the Eleventy Leaderboards, comparing site scores side-by-side.
- Score widget integration — Pairs with the
<speedlify-score>web component to show your Lighthouse scores on your own site footer. - Accessibility tracking — Measures accessibility alongside performance using Lighthouse metrics.
- Local development — Run
npm install,npm run test-pages, andnpm run startto test locally before deploying.
Who is it for?
- Web developers who want to keep their own sites fast by continuously monitoring Lighthouse scores.
- Static site authors using Eleventy who want to display performance scores in their project listings.
- Open-source maintainers wanting to benchmark multiple sites, like the Eleventy Starter Projects list.
- Agencies and consultants monitoring client sites' performance over time.
What can you do with Speedlify?
- Compare sites in a category: Define a category file with competitor or peer sites and see how your site ranks.
- Track performance regressions: Schedule weekly builds and watch score history to catch slowdowns early.
- Publish a public leaderboard: Use Speedlify to run something like the Eleventy Leaderboards.
- Embed scores on your site: Use the accompanying
speedlify-scorecomponent to display your Lighthouse scores in your site's footer.
How does Speedlify work?
Speedlify runs Lighthouse tests against every URL in your category files during a build, stores the JSON results, and generates a static site that charts scores over time. It is designed to run as a Netlify build, with the build plugin preserving the data cache between builds so history accumulates. You can trigger builds on a schedule using Netlify Build Hooks (e.g., via IFTTT).
Known Limitations
- If a URL's redirect changes (adding/removing
www.or moving domains), you should delete the old URL's data to avoid duplicate entries. - On Netlify, a single category has a maximum number of sites it can test due to the 15-minute build limit.
- A URL cannot be listed in two different categories yet.
Alternatives
Speedlify is intended as a stepping stone to more robust performance monitoring solutions like SpeedCurve, Calibre, and DebugBear, which offer deeper analytics and alerting.
FAQ
Is Speedlify free?
Speedlify is open-source under the project's GitHub repository and free to use. The only cost is for hosting your instance, such as a Netlify account.
What does Speedlify test?
Speedlify runs Lighthouse tests that measure performance and accessibility. The results are stored over time so you can see trends and catch regressions.
Can I run Speedlify without Netlify?
Yes. You can run it locally with Node 12+ using npm install, npm run test-pages, and npm run start. The Netlify integration is optional.
How do I add my site to Speedlify?
Create or edit a JavaScript file inside _data/sites/. Each file represents a category and returns a list of site URLs to benchmark.
Does Speedlify support multiple categories?
Yes, each file in _data/sites/*.js is a separate category. Note that the same URL cannot appear in more than one category at this time.
















