# Using Package Feeds

Source: https://www.jawsdeploy.net/guides/using-package-feeds

A feed is the catalogue. A package is a versioned artefact in it. A deployment step references both.

Three nouns: **feed**, **package**, **package version**. A feed is the catalogue (the artefact server). A package is a named artefact (`Checkout.Web`). A package version is a specific build of that package (`Checkout.Web 2026.5.17`).

## The flow

CI publishes a package version to a feed. The Jaws Deploy project has a step that references the package by name. When a release is created, the release picks a specific version of that package - either the latest, or one provided by CI. The release is now locked to that version forever.

**When to use it**

When you don't already have an artefact server. Push packages directly to Jaws Deploy. One less moving part.

**When to use it**

When CI already publishes to NuGet, Artifactory, Azure Artifacts, S3, or similar. Register it as an external feed and reference packages by name and version.

## What package formats are supported

Zip archives, tarballs, and NuGet packages all work as deployment packages. The deployment step extracts the package on the target before running post-deploy hooks. Container images are a different shape - they're typically deployed by a step that calls a container orchestrator rather than by extracting onto a target.

> **// Immutability - A given package version is pushed once.**
> 
> You cannot push a different artefact under the same version number. That sounds like a constraint until the first time someone tries to "just rebuild and push the same version" the day after a Production release.

