User's Perspective

1. Core Modules

Core modules constitute the basic functionality and feature-set of the program. They are loaded unconditionally at startup.

2. Automatic Optional Modules

In addition to core modules, there are a number of optional modules. Some optional modules are enabled by default, and it is these that are termed automatic optional modules. They are loaded before the rc, which gives the user an opportunity to configure any features they provide. They can be prevented from being loaded by a set of preferences.

FAQ: Why are some optional modules enabled by default and others not?
Optional modules are enabled by default only if the features they provide are unobtrusive, i.e., they don't cause the program to behave in counterintuitive ways. Page-modes can fall into this category when they can be reasonably judged as an unambiguously beneficial improvement to the website that they affect.

3. RC

The user's javascript configuration is loaded after core modules and automatic optional modules. In the rc, other optional modules can be loaded, modules can be configured, or preferences can be set to disable automatic optional modules (for the next restart after evaluation).

4. GUI

Last of all, windows and buffers are created. Startup is now done.