Distribution And Quality Gates

Distribution is the hidden hard part. A stack is not viable until you know how users get a release build and how you prove it works.

Gates By Family

FamilyMinimum gate
Static/contentBuild output exists, internal/protected route works, links resolve
PWAHTTPS, manifest, service worker, offline fallback, target-browser install test
Android nativeRelease build, device/emulator smoke test, permissions declared, Play policy reviewed
iOS nativeArchive build, simulator/device smoke, signing/provisioning path known
Expo/React NativeDevelopment build or EAS build path, platform smoke tests, update policy known
FlutterPlatform release build for target OS, plugin/native integration smoke test
TauriPlatform bundle, CSP/capabilities reviewed, signing/updater path known
ElectronPackaged app, security checklist, updater/signing path, performance smoke test
Windows App SDKMSIX/package or unpackaged deployment decision, runtime deployment path, WinUI test constraints known
CLIInstall path, help text, exit codes, smoke command, release binary/package
Backend/APIDeployment, migrations, health check, logs, backup/export, auth/secret checks
AI-nativeTool sandbox, connector scope, audit logs, secret handling, workspace isolation smoke test

Universal Definition Of Done

Create command:
Dev command:
Test command:
Lint/format command:
Build command:
Package command:
Release/distribution path:
Manual device/browser/runtime gate:
Known blocked gate:

Manual Gates Are Valid

Some gates require accounts, devices, store consoles, certificates, or paid services. Record them explicitly instead of pretending automation covers them.

Gotcha: If the first real package happens at launch week, the stack decision was not validated. Package early, even with a throwaway app.