Desktop Apps — Auxiliary Feature Template
Use this page as a copyable checklist when scaffolding or redressing a desktop app (native, Electron/Tauri, hybrid GUI+CLI). Parent class index: Delivery classes. Vocabulary: Auxiliary features.
Must-understand constraints
-
Windows — plan installer + update path on day one (MSI/MSIX/winget and/or in-app). See Windows auto-updates.
-
macOS — App Store or notarized Sparkle-class / Homebrew cask; quit cleanly before replacing the
.appbundle. -
Linux — prefer distro/Flatpak/AppImage channels; do not overwrite a running ELF (see Unix/macOS auto-updates).
-
Prefer platform-native updates first; add in-app UX when channel speed or multi-track needs demand it.
Auxiliary feature matrix
Legend: A = 1.0 band · B = support/retention · C = fleets/scale · — = usually N/A
| Feature | Band | Done means |
|---|---|---|
Help menu / Help page |
A |
Discoverable Help: local HTML/CHM/adoc viewer or deep-link to versioned docs; includes shortcuts and “Report issue” |
About dialog |
A |
Version + build id + channel + license; update status; link to dump — About |
Check for updates |
A |
Manual check + optional background check; respects disable policy — Updates |
Apply update safely |
A |
Verify signature/hash; stage; restart/swap without bricking; rollback or last-known-good when feasible |
Debug dump / export logs |
A |
One click → redacted archive; never secrets by default |
Open logs / config folder |
A |
Reveals paths for support; documented per OS |
Preferences / Settings |
A |
Persisted settings; reset-to-defaults; paths for power users |
Crash breadcrumb |
A |
Local crash file with build id; optional opt-in upload |
Installer + uninstall |
A |
Signed package; ARP/Applications entry; clean uninstall — Distribution |
What’s new |
B |
Post-update notes or changelog link from About/Help |
First-run / onboarding |
B |
Short path to value; privacy choices up front |
Single-instance |
B |
Second launch focuses existing window (or documented multi-instance) |
Protocol / file handlers |
B |
Registered only if claimed; unregistered on uninstall |
Tray / menu bar presence |
B |
If backgrounded: quit, About, Open, Update status; no silent forever-run without UI |
Autostart |
B |
Opt-in; visible toggle; respects OS login-item norms |
Offline / connectivity UI |
B |
Clear state when network/API required features fail |
Report issue |
B |
Prefills version/build; points at issue tracker or email template |
Keyboard shortcuts reference |
B |
Help → Shortcuts or searchable command palette help |
Telemetry (opt-in) |
C |
Documented; off by default unless policy requires otherwise |
Enterprise update pin/disable |
C |
Policy/env/managed config documented for IT |
Proxy / custom CA notes |
C |
Documented for corp networks; doctor check when possible |
Localization |
C |
UI strings externalized; locale follow OS or picker |
Accessibility pass |
B |
Keyboard navigation; contrast; screen-reader labels on primary flows |
Repair / reset |
C |
Reinstall-friendly; “clear cache” without wiping user documents |
Help page (desktop specifics)
A desktop Help surface should answer:
-
What is this app and what is the current version?
-
Where are docs (offline copy preferred for air-gapped users)?
-
How do I update? How do I turn updates off?
-
Where are logs and how do I export a dump?
-
How do I report a bug?
Prefer versioned docs URLs (/docs/1.4/…) so old clients do not land on mismatched instructions.
Update behaviors by OS (summary)
| OS | Preferred apply pattern |
|---|---|
Windows |
Store/MSIX, winget upgrade, or in-app staged installer → restart. Files often locked: schedule replace on restart. |
macOS |
App Store; or Sparkle-class quit → replace |
Linux |
Package manager / Flatpak update (may stop unit or ask to close app); AppImage: download beside, atomic rename, relaunch. Avoid |
Details: Unix/macOS auto-updates, Windows auto-updates.