# Context
We want to upgrade our existing Satis repository. We currently use it to proxy packagist.org as a public proxy and to host some internal packages.
Due to the very long time it takes to reindex all packages (~30min), we worked around Satis by using GitLab to host some packages (Centrifuge, Heap, Tycoon among others). It works well but has a limitation: it can only store the latest revision of a branch: https://gitlab.com/gitlab-org/gitlab/-/issues/288033
# Options
## Update Satis
https://github.com/composer/satis
We need to evaluate if we can use "partial updates" to reduce build time when building a single dependency: https://getcomposer.org/doc/articles/handling-private-packages.md#partial-updates
We would probably need to use a webhook to trigger the partial update: https://github.com/adanlobato/satis-webhook
:::success
**Pros**
* Tool we already know
* Popular & Supported
* Free
:::
:::danger
**Cons:**
* Long build times, could be mitigated by using partial updates?
:::
## Use Private Packagist
https://packagist.com/
:::success
**Pros**
* Written by Composer authors
* Many features
* Blazing fast build times
:::
:::danger
**Cons:**
* Expensive to use or self-host
:::
## Repman
https://repman.io/
:::success
**Pros**
* Free
* GitLab integration
* API support
:::
:::danger
**Cons:**
* Relatively new
:::
## Packeton
https://github.com/vtsykun/packeton
:::success
**Pros**
* Free
* Packagist fork
:::
:::danger
**Cons:**
* Relatively new
:::
## Sonatype Nexus Repository OSS
https://www.sonatype.com/products/sonatype-nexus-oss-download
https://github.com/sonatype-nexus-community/nexus-repository-composer/blob/master/docs/COMPOSER_USER_DOCUMENTATION.md
:::success
**Pros**
* Free
* Can replace Satis, Verdaccio & Harbor
:::
:::danger
**Cons:**
* Heavy
* "Experimental" Composer support
:::