WP Composer: A Faster Composer Repository for WordPress

For over a decade, WPackagist has been the default way to install WordPress plugins and themes with Composer. It worked, but it was slow — and earlier this month it was acquired by WP Engine, a private equity-backed company.

We’ve been building open source WordPress tools at Roots since 2011. Our roots/wordpress Composer package has nearly 20 million downloads, and a large portion of the modern WordPress Composer workflow already runs through Roots tooling. Building a Composer repository felt like a natural next step.

So we built WP Composer — an independent, open source Composer repository for WordPress plugins and themes.

Why it’s faster

WPackagist uses Composer’s older provider-includes protocol, which forces Composer to download large index files containing metadata for thousands of packages before it can resolve your dependencies.

WP Composer uses Composer v2’s metadata-url protocol, which lets Composer fetch metadata for only the packages it needs.

Plugins WP Composer WPackagist Speedup
10 plugins 0.7s 12.3s 17x faster
20 plugins 1.1s 19.0s 17x faster

Cold resolve, no cache.

What else is different

Switching

Replace the WPackagist repository in your composer.json:

{
  "repositories": [
    {
      "type": "composer",
      "url": "https://repo.wp-composer.com"
    }
  ]
}

Then update your package names from wpackagist-plugin/* to wp-plugin/* and wpackagist-theme/* to wp-theme/*. There’s also a migration script in our GitHub repo that handles this automatically.

How it’s built

WP Composer is a single Go binary backed by SQLite. A pipeline runs every 5 minutes that discovers packages from the WordPress.org SVN repository, fetches metadata from the WordPress.org API, and builds Composer metadata files that get deployed to Cloudflare R2.

The project is community-funded through GitHub Sponsors.

Full comparison: WP Composer vs WPackagist