Cassidy James Blaede edited this page Nov 8, 2018 · 23 revisions

The installation experience should be attractive and effortless to reassure new users that their new OS is the right choice. The process should feel safe and should only highlight risk when necessary (e.g. when data will be destroyed). This installer intends to cater to:

  1. New users with no understanding of the nature of an operating system.
  2. Users who want to perform typical installations like a clean install or dual-boot in a hands-off manner.
  3. Expert users who have very specific configuration requirements.
  4. OEM-like users who are performing the OS installation, but leaving user-specific details for the final end user.

Every Install is an OEM Install

For the sake of providing a single installer experience, every install is treated as an OEM install; the primary purpose of the installer is to get the bootable OS onto a device. Additional setup (like creating users) will happen after the first boot into the clean system and not in the installer. This requires an initial setup tool in the installed OS.


The installer may also be used as a recovery medium, whether used from an external drive or from a special partition on the device. If booting to the recovery partition, we may want to slightly tailor the experience and copy.

Downstream Customization

One goal of the installer is to be customizable by downstream projects wishing to ship it. We should include style classes in each view to facilitate custom CSS, and always use the system-wide OS name rather than hardcoding any specific OS.


The flow of the installer is relatively linear with a few areas that branch off.

Scary (but hopefully accurate) chart

This represents the eventual goal of the installer. A minimum viable implementation might not cover every screen below; see the list above and in the sidebar for the current implementation plans.

Flow chart

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.