Distribution

Creator-hosted releases.

Publisher Feeds are small HTTPS indexes that point to immutable AppC artifacts. The AppC remains the canonical source for application metadata and presentation.

Feed shape

{
  "appcFeed": 1,
  "publisher": {
    "id": "com.example",
    "name": "Example Software"
  },
  "applications": [{
    "id": "com.example.my-app",
    "channels": { "stable": "1.0.0" },
    "releases": [{
      "version": "1.0.0",
      "publishedAt": "2026-09-25T00:00:00Z",
      "status": "active",
      "package": {
        "url": "https://cdn.example.com/my-app/1.0.0/my-app.appc",
        "size": 123456,
        "sha256": "..."
      }
    }]
  }]
}

Discover and updates

Application Console validates the feed, remotely inspects package identity/version, verifies byte size and SHA-256 on download, and then imports the same immutable package through the normal install path.

Release promotion

node scripts/distribution/promote-appc-release-to-feed.mjs \
  --feed appc-feed.json \
  --package my-app.appc \
  --package-url https://cdn.example.com/my-app/1.0.0/my-app.appc \
  --channel stable \
  --appc ./appc

Use immutable, version-specific package URLs. A mutable latest.appc object should not be the release identity.