¶ Reference

Wizard pages

The wizard is composed of up to eight pages. Each page is opt-out by default, configurable via the pages key in painda.config.ts.

Welcome

The first thing users see — branded splash with logo, app name, version, and an optional tagline.

painda.config.ts
pages: {
  welcome: {
    title: "Welcome to My App",
    subtitle: "Version 1.0.0",
    body: "This wizard will install My App on your computer.",
  },
},

License

EULA / Terms of Service page. Loaded from a .txt or .md file. The user must accept before proceeding.

painda.config.ts
license: {
  file: "./installer-assets/license.txt",
  mustScroll: true,  // require the user to scroll to the bottom
},
TipSet mustScroll: true to enforce that users actually see the full agreement before they can click Accept. Defaults to false.

Privacy

Optional dedicated privacy policy page. Loaded the same way as the license.

painda.config.ts
privacy: {
  file: "./installer-assets/privacy.txt",
},

Options

Where the user picks the install location and shortcut preferences.

painda.config.ts
options: {
  allowChangeInstallPath: true,
  defaultPath: "${LOCALAPPDATA}/Programs/${appId}",
  desktopShortcut: true,
  startMenuShortcut: true,
  launchOnStartup: false,
},

Available path tokens:

  • ${LOCALAPPDATA}%LOCALAPPDATA% on Windows
  • ${PROGRAMFILES}%PROGRAMFILES%
  • ${appId} — your app.id
  • ${appName} — your app.name
TipThe default install path is in %LOCALAPPDATA% so the installer does not require admin elevation. Switch to %PROGRAMFILES% only if you need a system-wide install.

Progress

Animated progress bar with live status during file extraction and shortcut creation. No configuration — driven entirely by the install pipeline.

Maintenance

Shown automatically when the user runs the installer and the app is already installed. Offers three actions:

  • Repair — re-extract files, leave settings
  • Reinstall — full clean reinstall
  • Uninstall — remove the app completely

Update

Triggered when launched by electron-updater with the update flag. Shows a streamlined progress UI and skips the Welcome / License pages.

Finish

Closing page with optional confetti, a launch checkbox, and custom links.

painda.config.ts
finish: {
  runApp: true,
  links: [
    { label: "Documentation", url: "https://example.com/docs" },
    { label: "Support",       url: "https://example.com/support" },
  ],
},