Blendo Itch Uploader: Quick Setup Guide for Indie Devs

Automate Your Itch.io Releases with Blendo Itch UploaderReleasing games on itch.io is exciting — and repetitive. Uploading builds, updating metadata, managing changelogs and draft/public states, and ensuring the right files are attached to the right releases can quickly eat time that could be spent making games. Blendo Itch Uploader is a tool designed to automate that release workflow so you can spend less time on uploads and more time on development and promotion.

This article explains what Blendo Itch Uploader does, why automation matters, how to set it up, common workflows and examples, best practices, troubleshooting tips, and ways to integrate it into CI/CD pipelines.


What Blendo Itch Uploader does

Blendo Itch Uploader automates repetitive tasks involved in publishing to itch.io. Key capabilities typically include:

  • Uploading builds (zip, exe, app bundles, HTML5 exports) to a specified upload target.
  • Creating and updating release entries and attaching files to releases.
  • Setting or updating release metadata (title, description, visibility, tags).
  • Managing release channels (e.g., alpha, beta, public) and release types (patches, full releases).
  • Updating version numbers and changelogs.
  • Running from command line or integrating into scripts and continuous integration systems.

Why this matters: Automation reduces manual errors (wrong file attached, incorrect visibility), ensures consistent release practices, and lets teams push updates quickly, especially for frequent builds or live-testing channels.


When to use Blendo Itch Uploader

Use it when you:

  • Ship frequent builds (daily/weekly).
  • Maintain multiple channels (alpha, beta, public).
  • Need deterministic, repeatable release processes.
  • Want to integrate itch.io deployment into CI/CD (GitHub Actions, GitLab CI, Bitbucket Pipelines, etc.).
  • Work in a small team where manual mistakes are costly.

Setting up Blendo Itch Uploader

Below is a general, step-by-step setup workflow. Specific commands and options may vary by the exact tool version.

  1. Install
  • If distributed via package managers, install accordingly (e.g., npm, pip, or a binary download).
  • Example (npm-style):
    
    npm install -g blendo-itch-uploader 
  1. Acquire an itch.io API key
  • Log into itch.io → Settings → API keys → Create a new key. Keep this secret.
  1. Configure authentication
  • Set an environment variable (preferred) so CI systems don’t store secrets in repo:
    • Unix/macOS:
      
      export ITCH_API_KEY=your_api_key_here 
    • Windows PowerShell:
      
      $env:ITCH_API_KEY="your_api_key_here" 
  • Alternatively, use the tool’s local config file (ensure it’s in .gitignore).
  1. Create a project config file
  • Typical config fields:
    • project_url or project_id
    • channel name (optional)
    • files to upload (patterns)
    • metadata fields (title, description, visibility)
    • changelog path
  • Example (YAML): “`yaml project_id: myusername/mygame channel: public visibility: public files:
    • dist/*.zip changelog: CHANGELOG.md “`
  1. Test locally
  • Run a dry-run flag if supported:
    
    blendo-itch-uploader --config blendo.yml --dry-run 
  1. Integrate into CI
  • Add upload step to your pipeline after build artifacts are produced.
  • Example (GitHub Actions snippet): “`yaml
    • name: Upload to itch.io uses: actions/checkout@v3
    • name: Install Blendo Uploader run: npm install -g blendo-itch-uploader
    • name: Upload build env: ITCH_API_KEY: ${{ secrets.ITCH_API_KEY }} run: blendo-itch-uploader –config blendo.yml “`

Example workflows

  1. Single-release public update
  • Build → package → run uploader to replace existing public build and update changelog.
  1. Beta channel rapid iteration
  • Build nightly → uploader publishes to channel “beta” with visibility restricted; testers use password or key.
  1. Patch-only update
  • Use file patterns to only upload changed platform builds (e.g., Windows exe), and update release notes without overwriting other files.

Tips and best practices

  • Use environment variables for credentials; never commit API keys.
  • Keep a manifest or config in repo to ensure consistent behavior across contributors.
  • Use semantic versioning in filenames and metadata for clarity (v1.2.0).
  • Automate changelog generation where possible (git log-based tools).
  • Use dry-run and verbose flags until you trust your pipeline.
  • Limit release visibility for pre-release channels to control access.
  • Tag your repository on release in the same step as uploading to sync code and builds.

Troubleshooting common issues

  • Authentication failures: ensure API key is correct, set in CI secrets, and exported in environment where uploader runs.
  • Wrong project: confirm project_id/project_url in config matches the itch.io project slug (username/project-name).
  • Files not found: check glob patterns and build artifact paths; run uploader after build step completes.
  • Partial uploads failing: network interruptions can corrupt uploads; re-run or use retry logic provided by uploader.
  • Rate limits: if doing many uploads programmatically, add small delays or batch uploads to avoid being rate-limited.

Integrating into CI/CD — sample GitHub Actions file

name: Build and Deploy to itch.io on:   push:     tags:       - 'v*.*.*' jobs:   build-deploy:     runs-on: ubuntu-latest     steps:       - uses: actions/checkout@v3       - name: Set up Node.js         uses: actions/setup-node@v4         with:           node-version: '18'       - name: Install dependencies & build         run: |           npm ci           npm run build       - name: Install Blendo Uploader         run: npm install -g blendo-itch-uploader       - name: Upload to itch.io         env:           ITCH_API_KEY: ${{ secrets.ITCH_API_KEY }}         run: blendo-itch-uploader --config blendo.yml --version ${{ github.ref_name }} 

Security and compliance notes

  • Protect API keys in CI secrets vaults.
  • Restrict visibility for test channels and ensure no sensitive debug files are included.
  • Monitor uploads and use logs/notifications to detect unintended releases.

Alternatives and complementary tools

  • itch.io’s official Butler command-line tool (widely used for uploads).
  • Custom scripts using itch.io API client libraries.
  • Build servers/plugins (Unity Cloud Build, GitHub Actions, GitLab CI) that call upload tools.

Comparison (simple):

Tool Strength
Blendo Itch Uploader Automation-focused, config-driven
Butler (itch.io) Official, robust for incremental uploads
Custom scripts Highly customizable, requires maintenance

If you want, I can:

  • produce a ready-to-run blendo.yml for your project structure,
  • convert the GitHub Actions example to GitLab CI or CircleCI,
  • or write a script that selectively uploads platform-specific builds.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *