# Introducing WP Composer as a WPackagist Replacement

March 19th 2026 update: We've renamed WP Composer to **[WP Packages](https://wp-packages.org/)**. [See our announcement for further details](https://roots.io/wp-composer-is-now-wp-packages/).

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](https://wp-packages.org) 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](https://github.com/outlandishideas/wpackagist) 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](https://wp-packages.org/wp-packages-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-packages",
      "type": "composer",
      "url": "https://repo.wp-packages.org"
    }
  ],
  "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`](https://wp-composer.com/roots-wordpress), `roots/wordpress-full`, and `roots/wordpress-no-content`. A typical [Bedrock](https://roots.io/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-packages composer https://repo.wp-packages.org
```

**3. Require packages with the new naming:**

```
composer require wp-plugin/woocommerce wp-theme/twentytwentyfive
```

Or run the [migration script](https://github.com/roots/wp-composer/blob/main/scripts/migrate-from-wpackagist.sh) to update your `composer.json` automatically:

```
curl -sO https://raw.githubusercontent.com/roots/wp-packages/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 Packages Changelog Action](https://github.com/roots/wp-packages-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 &amp; 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](https://github.com/roots/wp-composer/tree/main/benchmarks).

## Fully open source

The entire project's application code, documentation, and deployment configuration is [open source on GitHub](https://github.com/roots/wp-packages). 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](https://github.com/sponsors/roots). 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](https://github.com/sponsors/roots) to keep this tooling independent and freely available.