Docs /Uploading Products Dashboard →

Uploading Products

Best practices for organising, uploading, and managing your digital products on Continuata.

Preparing Your Files

Proper file organisation before upload ensures your customers have the best experience.

Recommended Folder Structure

epic-drum-kit-v1/
├── README.txt
├── samples/
│   ├── kicks/
│   │   ├── kick_01.wav
│   │   └── kick_02.wav
│   └── snares/
│       ├── snare_01.wav
│       └── snare_02.wav
├── loops/
│   └── full_beat.wav
└── license.txt

✓ Best Practices

  • Logical folder hierarchy
  • Descriptive file names
  • Include README files
  • Add license information
  • Consistent naming conventions

✗ Avoid

  • Special characters in names
  • Very deep folder nesting
  • Empty folders
  • Hidden system files
  • Temporary files (.tmp, .cache)

Upload Methods

Dashboard Upload (Recommended)

  1. Go to your Continuata dashboard and open your product (use Chrome or Edge — folder selection isn't supported in Safari/Firefox)
  2. Click the Versions tab
  3. Enter a new version number (e.g. 1.1.0) — never re-use an existing one
  4. If the product already has an active version, leave the mode on Changed files only (see Updating an Existing Product below)
  5. Click Select Folder to Upload and choose your whole product folder
  6. Check the review summary — nothing uploads until you confirm — then click Upload
  7. Wait for hashing, packing, uploading, and verification to complete. You can pause and resume at any point — speed and ETA are shown throughout.
  8. Optionally run Test Download on the new version, then use the Publish a version wizard on the product's Overview tab to make it live — with or without emailing customers (see Updates & Emails)

Interrupted upload? If the browser reloads or crashes mid-upload, a resume banner appears on the Versions tab. Continue re-prompts for folder access and skips every pack already uploaded; Discard clears the session. The saved state survives page reloads and is only cleared on success or an explicit Discard.

API Upload

Programmatic uploads follow the same pipeline the dashboard uses:

// 1. Open an upload session — returns already-stored pack hashes for dedupe
POST /api/upload-session            { productId, version }

// 2. Get presigned PUT URLs for the packs that are actually new, then upload
POST /api/upload-urls               { hashes: ["sha256_pack1", ...] }
PUT  {presignedUrl}                 [raw ~8MB pack bytes]

// 3. Request a presigned manifest URL, then PUT the manifest JSON to it
POST /api/manifest-url              { productId, version }
PUT  {uploadUrl}                    { "v": 3, "packs": [...], "files": [...] }

// 4. Record the version (appears in Version History as Ready)
POST /api/products/{productId}/versions

The dashboard uploader remains the recommended path — it handles packing, dedupe, resume, and verification for you.

Version Management

Each product can have multiple versions with different activation states:

Version States

Draft

Uploaded, not yet live — version number and notes are still editable

Live

Currently served to customers

Superseded

Was live before — frozen, but can be made live again to roll back

The Versions tab lists versions read-only; everything you can do to one version lives on its detail page — Test download, Invite beta testers, Send rehearsal, Replace contents, Undo, and Delete, plus editing the version number and release notes (Draft versions only — once a version has ever been live, its number is frozen; notes stay editable).

Going live: Only one version per product is live at a time, and publishing immediately serves the new version to all existing download links. If the version replaces files in place you'll be asked to confirm overwriting them, and you choose whether to email owners about the update (see Updates & Emails). Publishing a version on a Draft product also publishes the product itself — no separate status change needed, and it's one-way: switching versions later never un-publishes.

Updating an Existing Product

To update a product (replace samples, fix instruments, add content), you upload a new version — you never edit a live version in place, and you never zip anything. Point Continuata at your whole product folder and it works out what changed.

Pick a new version number

Always enter a version number you haven't used before (e.g. 1.0.0 → 1.1.0). Version numbers are permanent identifiers and cannot be re-used.

The two upload modes

The mode toggle appears above the folder picker once a product has an active version (a brand-new product always does a full first upload):

Changed files only (default, recommended)

Compares your folder against the current active version and uploads only new or changed files. Every unchanged file is inherited — not re-packed or re-uploaded. A one-file change uploads roughly one file's worth of data, in seconds instead of hours.

Re-upload everything

Ignores stored data and re-packs the whole folder — the same thing the Force re-upload checkbox does. Use only if you suspect the stored data is corrupt; it's the slow path by design.

How "changed" is decided: a file is inherited only if its path and its content (SHA-256) match the current version. Same name, different bytes = replaced. Not in the current version = added. Missing from your folder = removed from the new version (its data stays in cloud storage so you can roll back). Moving a file counts as remove + add — a big folder reorganisation behaves like a full upload.

The review screen

Nothing uploads until you click Upload. After scanning, Continuata shows the counts (added / replaced / removed / inherited), how much will transfer ("N new packs"), the changed-file list, and the resulting file tree. If the summary claims far more than you actually changed, click Cancel and start the upload again — if the comparison against your current version fails, the uploader falls back to a full re-upload and tells you so in a banner.

Overwriting files on customer disks

If your upload replaces files customers already have (same path, different content), updating customers will see those files overwritten on disk — which can break projects that reference the old content. Where it makes sense, rename the changed file (e.g. Piano.nkiPiano v2.nki) so old and new coexist. You'll be asked to confirm the overwrite again when you Set Active.

Kontakt heads-up: Kontakt rewrites cache files (.nkc) whenever you save — even for instruments you didn't touch — so they legitimately show as "replaced" and inflate the upload and the overwrite warning. If your library doesn't depend on shipping them, exclude them from the folder; Kontakt regenerates caches on the customer's machine.

What customers see

The moment a version goes live, every existing download link serves it. Customers who re-download into their existing product folder fetch only the changed files, and their customer portal flips that purchase to "Update available" with the version delta. When publishing, you choose whether to email everyone who owns the product — the wizard shows the exact recipient count, or you can publish silently. Full details in Updates & Emails.

Rolling back

Removed and replaced files keep their data in cloud storage, so you can Set Active on an earlier version at any time without re-uploading it.

File Processing

The upload flow runs five stages in order. Each one shows live progress in the dashboard.

1

Scanning

Your folder is walked and each file is enumerated. Hidden files and system folders (__MACOSX, .DS_Store, etc.) are filtered out.

2

Hashing

Every file is SHA-256-fingerprinted in the browser and grouped into ~8MB packs. Small files are never split across packs; files larger than ~8MB span multiple packs as independently verified segments. Each pack is itself hashed with SHA-256 to enable deduplication across versions.

3

Uploading

Packs are stored at vendorId/packs/pack-{sha256}. Before transferring, the server is queried for which packs already exist — only new packs are uploaded.

4

Verifying

All packs (including ones reused from previous versions) are confirmed present in storage before the version is finalised.

5

Finalizing

The manifest is written with all file metadata, segment offsets, and pack references. The version then appears in the Version History list, ready to be activated.

Storage Optimization

Automatic Deduplication

Packs are deduplicated across versions. Before uploading, Continuata checks which packs already exist in storage — only packs containing changed or new files need to be transferred:

  • Version 1.0 upload → 150 packs stored
  • Version 1.1 upload → 12 files changed → 3 new packs uploaded
  • ✓ 147 unchanged packs are skipped entirely

Storage Efficiency Tips

  • Use consistent sample rates and bit depths across your library
  • Normalise audio levels before uploading to maximise deduplication
  • Keep common files (READMEs, licenses) identical across products
  • Use lossless formats for master files when possible

Pause & Resume

Uploads can be paused and resumed at any point during the uploading stage. Use the Pause button that appears once the upload begins. Current speed (MB/s) and estimated time remaining are shown throughout.

Because packs are content-addressed, a resumed upload picks up exactly where it left off — any packs already confirmed in storage are not re-transferred.

Troubleshooting Uploads

Upload fails or gets stuck

  • Check your internet connection stability
  • Ensure you haven't exceeded storage limits
  • Try uploading smaller batches of files
  • Clear browser cache and try again

Files missing after upload

  • Check that the version's status shows "Ready"
  • Verify files weren't filtered out (system files, temp files)
  • Ensure files don't exceed individual size limits
  • Check upload logs in the dashboard

Version won't go live

  • Ensure all files uploaded successfully — an incomplete upload shows "This version isn't ready to download yet — try re-uploading it"
  • Check that manifest generation completed (the version shows as Draft, not still processing)
  • Review any error messages in the upload logs

You no longer need to publish the product separately — publishing a version publishes a Draft product automatically.

Next Steps: Once your product is uploaded, learn how to publish and announce updates, create download tokens, or set up automated delivery.