Introducing WP Composer as a WPackagist Replacement
For over a decade, WPackagist was the default way to install WordPress plugins and themes via Composer.
In March 2026, WPackagist was acquired by WP Engine, a private equity-backed hosting company. Infrastructure this central to the WordPress Composer workflow shouldn’t be controlled by a single corporation. So we built an alternative.
WP Composer is an independent, community-funded, fully open source Composer repository for WordPress plugins and themes, built and maintained by Roots.
Why this matters
WPackagist was originally built by Outlandish, who maintained it for years. In its later period, the project suffered from neglect. Slow updates, limited maintenance, and no meaningful community input. Its acquisition by WP Engine only deepened those concerns.
When foundational developer tooling is controlled by a single corporation, the community loses its voice. Decisions about availability, pricing, and direction get made in boardrooms, not in the open. It’s also unclear whether WPackagist remains truly open source — their GitHub repository no longer reflects the live site.
We think there should be an alternative that’s transparent, community-funded, and built by people who’ve been doing this for a long time.
See our full comparison of WP Composer vs WPackagist for details on performance, metadata, and how they differ.
What WP Composer provides
Every free plugin and theme from the WordPress.org directory, installable via Composer with clean package naming:
{
"repositories": [
{
"name": "wp-composer",
"type": "composer",
"url": "https://repo.wp-composer.com",
"only": ["wp-plugin/*", "wp-theme/*"]
}
],
"require": {
"wp-plugin/woocommerce": "^10.0",
"wp-theme/twentytwentyfive": "^1.0"
}
}
Plugins use wp-plugin/*, themes use wp-theme/*. No more wpackagist-plugin and wpackagist-theme prefixes.
WP Composer is also the recommended repository for use alongside our WordPress core packages — roots/wordpress, roots/wordpress-full, and roots/wordpress-no-content. A typical Bedrock project uses roots/wordpress for core and WP Composer for plugins and themes.
Migrating from WPackagist
Switching takes a few commands:
1. Remove your wpackagist packages:
composer remove wpackagist-plugin/woocommerce wpackagist-theme/twentytwentyfive
2. Swap the repository:
composer config --unset repositories.wpackagist && composer config repositories.wp-composer composer https://repo.wp-composer.com
3. Require packages with the new naming:
composer require wp-plugin/woocommerce wp-theme/twentytwentyfive
Or run the migration script to update your composer.json automatically:
curl -sO https://raw.githubusercontent.com/roots/wp-composer/main/scripts/migrate-from-wpackagist.sh && bash migrate-from-wpackagist.sh
If you use our GitHub Action for tracking plugin updates, we’ve also renamed WPackagist Changelog Action to WP Composer Changelog Action with full support for the new wp-plugin/* and wp-theme/* naming format.
Performance
WP Composer supports Composer v2’s metadata-url protocol, which lets Composer fetch metadata for only the packages it needs. WPackagist still uses the older provider-includes approach, which forces Composer to download large index files containing metadata for thousands of packages before it can resolve your dependencies.
Composer resolve times
Cold resolve (no cache) — lower is better.
| Plugins | WP Composer | WPackagist | Speedup |
|---|---|---|---|
| 10 plugins | 0.7s | 12.3s | 17x faster |
| 20 plugins | 1.1s | 19.0s | 17x faster |
Metadata & caching
| WP Composer | WPackagist | |
|---|---|---|
| Composer v2 metadata-url | Yes | No |
| CDN caching | public, max-age=300 | no-cache, private |
| Per-package files | Immutable, content-addressed, cached indefinitely | Not content-addressed |
Benchmarks run from a single location using Composer 2.7+. Results may vary by region and network conditions. Benchmark scripts are open source.
Fully open source
The entire project’s application code, documentation, and deployment configuration is open source on GitHub. Contributions are welcome. Anyone can fork it and run their own instance.
Community-funded
WP Composer is funded entirely by the community through GitHub Sponsors. Your sponsorship directly supports the infrastructure, development, and maintenance of WP Composer and the broader Roots ecosystem.
If you rely on Composer for WordPress development, consider sponsoring Roots to keep this tooling independent and freely available.