11ty / eleventy

A simpler site generator. Transforms a directory of templates (of varying types) into HTML.
https://www.11ty.dev/
MIT License
16.84k stars 487 forks source link

Corpus of large projects for automated performance testing. #2220

Open zachleat opened 2 years ago

zachleat commented 2 years ago

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 zach@zachleat.com)

zachleat commented 2 years ago

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.

cfjedimaster commented 2 years ago

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

nhoizey commented 2 years ago

I can help with my personal website:

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.

AleksandrHovhannisyan commented 2 years ago

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.

cfjedimaster commented 2 years ago

@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. :)

nhoizey commented 2 years ago

@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.

zachleat commented 2 years ago

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