New Website, Improved API, and ESM Support

It's been a while since our last update, but don't worry - we've been hard at work! Check out the summary of updates we're launching!

ESM - ES Modules Support

Since launching the support for ESM about two years ago, we've been working on improving the compatibility with the existing packages, as well as the bundling performance. The improvements done over the past year include:

  • Support for the exports field, which allows package authors to configure which files will be served by the CDN by default.
  • Support for the imports field, which can be used to load different internal files based on the environment.
  • Support for the browser field, which allows substituting certain files for browser bundling or entirely excluding them.
  • Support for converting existing CJS modules to ESM.
  • Automated polyfilling of the supported node.js modules and globals.
  • Major performance improvements for large packages.
  • Various other smaller compatibility improvements.

Our current ESM bundling mode aims to strike a balance between the loading performance (the number of requests, amount of loaded data, and caching) and compatibility with most of the existing packages.

We're looking to further improve the compatibility with packages that can't be easily bundled or require custom configurations. If you are interested in more technical details, check out the related GitHub issue.

Improved API

Our data API has received a major overhaul recently, including:

All API changes are fully backward compatible. If you use an endpoint that has been deprecated, you'll now see a Deprecation header in the response, as well as a Link header pointing to the new endpoint. All deprecated endpoints will continue to work, but their new versions may provide additional features or improved data formats.

New Website

Our website has been redesigned to better showcase the new ESM and API features and overall improve the user experience:

  • The home page got dedicated sections for ESM, the API, and our custom CDN endpoints, and shows more of our usage stats.
  • The project pages were extended with:
    • an "install" section, which makes use of the automated entry points detection,
    • README files, which show documentation directly on our website,
    • an inline search widget, which allows search for the next package without going back to the home page,
    • more package usage stats.
  • Package search now allows filtering for specific file types (ESM/JS/CSS) and includes monthly downloads directly in the results.
  • The new About Us page explains who we are and what we do, with the History page documenting the most interesting steps of our journey.
  • The new Purge Tool provides a GUI way of purging our cache.

Additionally, we're happy to re-launch the new Statistics page, which uses the new API features to provide a nice summary of our CDN usage. You can learn which CDN providers we use and where, see the popularity of different browsers and operating systems, and explore the most popular projects. These statistics are based on fully anonymous, highly aggregated access data.

Stay tuned and follow us on Twitter @jsDelivr!