QNTX Distribution Strategy

Current State

What We Build

What We Distribute

Distribution Channels

1. GitHub Releases (Quick Win - High Priority)

What: Attach binaries to git tags automatically

Platforms to distribute:

Implementation:

Benefits:

Effort: Medium (1-2 days)


2. Homebrew (High Priority - macOS/Linux)

What: Package manager for macOS and Linux

Command:

brew install teranos/tap/qntx

Requirements:

Benefits:

Effort: Low (few hours after GitHub Releases exist)


3. Container Registries (Already Done ✓)

Current:

Could Add:

Multi-arch manifests: ✅ Already implemented


4. Package Managers by Platform

macOS

Windows

Linux


5. Mobile App Stores

Android

Options:

  1. Google Play Store (Recommended)

  2. F-Droid (Open source alternative)

  3. GitHub Releases (Sideloading)

Recommendation: Start with GitHub Releases (APK), add Play Store when ready for wider distribution.

iOS


6. Language-Specific Package Managers

Not Recommended (QNTX is a platform, not a library):


Implementation Roadmap

Phase 1: Foundation (Week 1)

Goal: Make QNTX downloadable

  1. GitHub Releases workflow

  2. Update README

Deliverable: Users can download QNTX for their platform from GitHub


Phase 2: Package Managers (Week 2-3)

Goal: Native installation experience

  1. Homebrew tap

  2. winget manifest

Deliverable:

brew install teranos/tap/qntx        # macOS/Linux
winget install Teranos.QNTX          # Windows

Phase 3: Linux Distribution (Week 4)

Goal: Native package managers for Linux

  1. APT repository (Debian/Ubuntu)

  2. Snap package

Deliverable:

sudo apt install qntx               # Debian/Ubuntu
snap install qntx                   # Any Linux

Phase 4: Mobile (Month 2)

Goal: Official app store presence

  1. Google Play Store

  2. iOS App Store (if budget allows)


Technical Implementation Details

CLI Binary Distribution

Using goreleaser:

.goreleaser.yml:

builds:
  - main: ./cmd/qntx
    binary: qntx
    goos:
      - linux
      - darwin
      - windows
    goarch:
      - amd64
      - arm64
    ldflags:
      - -X github.com/teranos/QNTX/internal/version.Version={{.Version}}
      - -X github.com/teranos/QNTX/internal/version.CommitHash={{.Commit}}

archives:
  - format: tar.gz
    format_overrides:
      - goos: windows
        format: zip

release:
  github:
    owner: teranos
    name: QNTX

GitHub workflow:

- uses: goreleaser/goreleaser-action@v5
  with:
    version: latest
    args: release --clean
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Tauri App Distribution

Add to existing workflows:

- name: Build Tauri app
  uses: tauri-apps/tauri-action@v0
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  with:
    tagName: ${{ github.ref_name }}
    releaseName: 'QNTX ${{ github.ref_name }}'
    releaseBody: 'See CHANGELOG.md for details'
    releaseDraft: false
    prerelease: false

Tauri automatically:


Homebrew Formula

homebrew-tap/Formula/qntx.rb:

class Qntx < Formula
  desc "Continuous Intelligence Platform"
  homepage "https://github.com/teranos/QNTX"
  version "0.16.14"

  on_macos do
    if Hardware::CPU.arm?
      url "https://github.com/teranos/QNTX/releases/download/v0.16.14/qntx_Darwin_arm64.tar.gz"
      sha256 "..."
    else
      url "https://github.com/teranos/QNTX/releases/download/v0.16.14/qntx_Darwin_x86_64.tar.gz"
      sha256 "..."
    end
  end

  on_linux do
    if Hardware::CPU.arm?
      url "https://github.com/teranos/QNTX/releases/download/v0.16.14/qntx_Linux_arm64.tar.gz"
      sha256 "..."
    else
      url "https://github.com/teranos/QNTX/releases/download/v0.16.14/qntx_Linux_x86_64.tar.gz"
      sha256 "..."
    end
  end

  def install
    bin.install "qntx"
  end
end

Auto-update with brew bump-formula-pr.


winget Manifest

microsoft/winget-pkgs/manifests/t/Teranos/QNTX/0.16.14/:

PackageIdentifier: Teranos.QNTX
PackageVersion: 0.16.14
PackageLocale: en-US
Publisher: Teranos
PackageName: QNTX
License: MIT
ShortDescription: Continuous Intelligence Platform
Installers:
  - Architecture: x64
    InstallerType: msi
    InstallerUrl: https://github.com/teranos/QNTX/releases/download/v0.16.14/qntx_Windows_x64.msi
    InstallerSha256: ...

Cost Analysis

ChannelSetup CostOngoing CostEffort
GitHub ReleasesFreeFreeMedium
HomebrewFreeFreeLow
wingetFreeFreeLow
Docker (GHCR)FreeFreeDone ✓
Snap StoreFreeFreeMedium
Google Play$25 onceFreeMedium
Apple App StoreFree (have account?)$99/yearHigh
F-DroidFreeFreeMedium

Total upfront: $25-124 (depending on iOS) Annual: $0-99 (depending on iOS)


Metrics to Track

Post-distribution, monitor:


Recommended Priority

  1. GitHub Releases (CLI + desktop apps) - Week 1
  2. Homebrew - Week 2
  3. winget - Week 2
  4. Docker - Already done ✓
  5. Snap/APT - Week 3-4
  6. Google Play - Month 2
  7. iOS App Store - When budget allows

Next Steps

  1. Create .goreleaser.yml for CLI builds
  2. Add release workflow (.github/workflows/release.yml)
  3. Update Tauri workflows to build on tags (not just check)
  4. Create release (tag v0.16.15 to test)
  5. Document installation methods in README
  6. Create homebrew-tap repository
  7. Submit winget manifest

Questions to Answer