Frea is GA and ready for your traffic!

Frea

Supporting the global JavaScript namespace

npm config set registry https://registry.freajs.org

Getting Started

To use Frea globally with npm

npm config set registry https://registry.freajs.org

To use Frea globally with yarn

yarn config set registry https://registry.freajs.org

To use Frea for a single project

cd /path/to/project
echo "https://registry.freajs.org" >> .npmrc

What is Frea?

The JavaScript community has a lot of large players involved, yet the burden of hosting the registry has fallen to a single company. There have been many efforts to build federated or decentralized JavaScript package registries, but none of them have solved for the global namespace in a way that doesn't fragment the community.

Frea is different

Frea doesn't attempt to create a new package registry. Inspired by popular Linux package managers, Frea is a collection of infrastructure pieces that, together, allows the JavaScript community to donate resources to help host the existing registry.

Architecture

We use Cloudflare workers to load balance across our donated mirrors. For example, below is a diagram of our infrastructure running on GCP. When the mirrors don't have content, the workers proxy the request back to npm to avoid race conditions with syncing between the mirrors for new packages.

By baking load balancing and routing into the network layer with Cloudflare workers, we reduce the availability requirements of donated mirrors. We can failover between mirrors at the network level without surfacing failures to users.

Interested in Donating?

We don't have anything automated for on-boarding mirrors yet. If you are interested in donating infrastructure, email us at frea@blankenship.io!