Skip to content

Gatsby willit.build benchmarks #174

Description

@herflis

These benchmarks are very important. Beyond being a valuable resource for those looking to build projects with Gatsby + your CMS, they also act as performance tests. These Willlit.build benchmarks help us identify issues and optimize performance in Gatsby Cloud and in source plugins. Check out our instructions for creating a Willit.build benchmark to get started.

The tasks are:

Creating the Benchmark Sites

  • Create 4 separate repository ("To make this as realistic as possible we recommend populating unique instances of the CMS with each of the required data sets"), three with business plan and one with enterprise (because of the number of contents limit)
  • Create a content type to store articles with a title (shorttext), body field (longtext), and image url (shorttext).
  • Import content from the appropriate folders to the appropriate repositories https://github.com/gatsbyjs/will-it-generate/tree/develop/src/data/articles (they're benchmarking only 512, 4096, 8192 and 32768)

"It’s generally recommended to use a script that pulls data from the provided data and generates the posts in your CMS (but do what works best for your CMS)."

Frontend tasks

The next step is to create a Gatsby site that can be built using the data from the previously created data sets. This Gatsby site must:

  • Provide a listing page that lists (at minimum) all titles of the benchmark dataset
  • Provide individual pages for each piece of content from the benchmark dataset
  • Include the corresponding image (processed through Sharp and using Gatsby Image) on each individual Gatsby page
  • Have gatsby-plugin-benchmark-reporting installed for reporting
  • Both your data source plugin and gatsby-plugin-benchmark-reporting should have their version set to “*” in thepackage.json. This allows the latest version to always be used when benchmarking.
  • No lock file should be committed to the repository for the benchmark site.

Misc

  • The gatsby site needs to have an update script in place to update the title of a post for incremental builds. See example script for updating Drupal data. This script needs to be executable via yarn data-update or npm run data-update.
  • Your CMS will also need to trigger the appropriate webhooks on this data change, just like it would in production. These webhooks will be provided to you by the Gatsby team after you submit your benchmark site for inclusion on WIB.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions