releaseflow
PricingDocsLog in

Quickstart

Docs

  • Overview
  • Quickstart
  • Sparkle (macOS)
  • Electron
  • License keys
  • Channels
  • API reference

1. Connect GitHub and create the app

Sign in, open /apps/new and press Connect GitHub. Pick the repository that holds the app’s releases (private repositories work), a name and a slug, and the type: Sparkle for native macOS apps or Electron for apps using electron-updater. The slug and your username form every public URL: https://releaseflow.net/{username}/{slug}.

Creating the app installs a GitHub webhook on the repository, so published, edited and deleted releases reach ReleaseFlow right away. Feeds also re-sync in the background when their data is older than an hour, and Sync Releases on the app page syncs on demand.

2. Tag a release

ReleaseFlow reads published GitHub releases and their assets; drafts are ignored. The tag is the version (a leading v is dropped), so use SemVer:

git tag v1.2.0
git push origin v1.2.0
# Then publish a GitHub release for the tag and attach the build files
# (for example with: gh release create v1.2.0 dist/*)

Attach the files each platform needs:

  • macOS: a .zip for updates (plus a .dmg for first installs if you want one). Sparkle apps add the .zip.sig signature, see the Sparkle guide.
  • Windows: the .exe installer (or .msi).
  • Linux: .AppImage, .deb or .rpm.
  • Electron: the latest*.yml files and .blockmaps electron-builder writes, see the Electron guide.

Tags containing alpha land in the alpha channel, tags containing beta or rc in beta, everything else in stable. See Channels.

3. Get the URLs

The app page in the dashboard lists every URL with a copy button. The public ones follow these shapes:

WhatURL
Download pagehttps://releaseflow.net/{username}/{slug}
Download (detects the OS)https://releaseflow.net/{username}/{slug}/download
Download one platformhttps://releaseflow.net/{username}/{slug}/download/{platform}
Releases JSONhttps://releaseflow.net/{username}/{slug}/releases
Sparkle appcasthttps://releaseflow.net/{username}/{slug}/sparkle/appcast.xml
Electron update checkhttps://releaseflow.net/{username}/{slug}/update/{platform}/{version}
Checkouthttps://releaseflow.net/{username}/{slug}/checkout
Customer portalhttps://releaseflow.net/{username}/{slug}/portal

{platform} is darwin, windows or linux (aliases such as mac, win and appimage work too). Downloads accept ?arch=arm64 or ?arch=x64 and ?channel=beta.

From a script or CI, read the same list from the REST API with an API key from Settings → API Keys:

curl
curl https://releaseflow.net/api/rest/apps/myapp/urls \
  -H "x-api-key: rf_..."
@releaseflow/sdk
import { configure, Apps } from "@releaseflow/sdk";

configure({ apiKey: process.env.RELEASEFLOW_API_KEY! });

const { data: urls } = await Apps.releaseflowGetUrls({
  path: { slug: "myapp" },
});
console.log(urls?.sparkle?.appcast ?? urls?.electron?.darwin);

Next

  • Sparkle (macOS)
  • Electron
  • License keys and device limits
← OverviewSparkle (macOS) →
releaseflow
PrivacyTermsDocsChangelogSupport