eleventy icon indicating copy to clipboard operation
eleventy copied to clipboard

Corpus of large projects for automated performance testing.

Open zachleat opened this issue 3 years ago • 7 comments

I’d like to put together a list of large Eleventy sites for performance testing and benchmarking new Eleventy releases (potentially resulting in an automated test). This will likely be most useful in minor version releases, but if we can get site stakeholders/maintainers involved it could potentially help on pre-releases of major versions too.

Criteria for inclusion:

  1. A large site (not sure what the cutoff should be yet—maybe ~1500 output pages?)
  2. Must be on Eleventy 1.0 and actively maintained
  3. Must be publicly available source code (does not necessarily need to be open source licensed)

(Inspired by #2214 and https://github.com/11ty/eleventy-benchmark)

If your site fits these criteria, please leave a comment here (or message me privately on Twitter or [email protected])

zachleat avatar Feb 16 '22 14:02 zachleat

Via @jeffposnick, web.dev might be a good candidate, see https://github.com/11ty/eleventy/issues/2214#issuecomment-1040850389

If you want to try it yourself, you shouldn't have to do much more than clone https://github.com/GoogleChrome/web.dev, hack the package.json a bit to pull in a local copy of 11ty (e.g. "@11ty/eleventy": "file://../eleventy", or use npm link), and then execute npm run eleventy.

zachleat avatar Feb 16 '22 14:02 zachleat

You are free to use https://github.com/cfjedimaster/raymondcamden2020. Currently outputs over 6200 pages.

cfjedimaster avatar Feb 16 '22 14:02 cfjedimaster

I can help with my personal website:

  • number of output pages: Copied 928 files / Wrote 1820 files in 39.31 seconds (21.6ms each, v0.12.1)
  • live version: https://nicolas-hoizey.com
  • source: https://github.com/nhoizey/nicolas-hoizey.com/

Some build features require access to APIs (Twitter, YouTube) for which I have private keys in the environment. I don't know how you could run the build without them. Maybe this will be a concern for other sites too.

nhoizey avatar Feb 16 '22 15:02 nhoizey

Some build features require access to APIs (Twitter, YouTube) for which I have private keys in the environment. I don't know how you could run the build without them. Maybe this will be a concern for other sites too.

@nhoizey This is a good point! To get around that issue in one of my recent projects, I explicitly checked process.env.THE_KEY, and if it wasn't present, I just returned some fallback data (like an empty array or some other sensible default). Can also add feature flags to your site so that if an environment variable is missing, you don't render a particular page/slice of markup. e.g., dynamic logic in permalink or eleventyComputed.

AleksandrHovhannisyan avatar Feb 16 '22 19:02 AleksandrHovhannisyan

@nhoizey ditto @AleksandrHovhannisyan - so if the Eleventy folks need me to do anything to make my site more testable, I'm definitely open to it. :)

cfjedimaster avatar Feb 16 '22 20:02 cfjedimaster

@AleksandrHovhannisyan unfortunately some of these environment variables are required by plugins. I could however have a feature flag (aka Eleventy build environment?) to not load these plugins.

nhoizey avatar Feb 16 '22 22:02 nhoizey

A few more that came out of #2360, though just to note that these are test cases (not real world projects)

@pdehaan’s https://github.com/pdehaan/11ty-lorem @signpostmarv’s https://github.com/SignpostMarv/11ty-eleventy-issue-2226/ @peruvianidol’s https://github.com/peruvianidol/twitter-data

zachleat avatar May 04 '22 13:05 zachleat