Rebuilding the Mobile-to-Desktop Onboarding Flow
Dropbox’s mobile onboarding redesign aims to get new users onto the desktop client with minimal friction. The core flow: a user logs into the website from their phone, initiates a desktop download, and the entire installation and sign-in process completes without the user ever typing a password on the computer. This breaks down into three stages: a phone-based desktop connect flow, a lightweight "meta-installer," and an automatic sign-in that validates the user through their existing web session.
Phone-Driven Desktop Connect
The process starts on the phone, guiding the user to visit dropbox.com/connect on their computer. A QR code with a unique token is generated server-side and displayed on the connect page, styled inside a Dropbox icon for a more engaging touch. The phone’s camera captures the code, extracts the token, and sends it to the server along with the signed-in user's ID. Meanwhile, the browser on the computer polls the server for that token. Once the server links the token to a user, the browser authenticates and logs them in immediately, greeting them by name with no credentials required.
With the user authenticated in the browser, the desktop download begins. The full Dropbox installer is roughly 35MB — it bundles a modified Python runtime needed to run the client on Windows, Mac, and Linux. Large downloads risk losing the user’s attention mid-process, so Dropbox created a "meta-installer": a small executable that preps the machine (acquiring installation permissions, for example) while fetching the full installer from a CDN in parallel.
The meta-installer also solves a visibility problem. Previously, the team had little insight into what happened after a download started — whether the user launched the installer, if it completed, or where it failed. Because the meta-installer is tiny, Dropbox can serve it directly (not via CDN) and generate a unique binary per request, embedding an ID token that can be traced through the entire install funnel.
Tagged Installers and Code Signing
Generating a unique meta-installer per request presented a technical hurdle: modifying a binary invalidates its code signature. Instead of re-signing every binary after embedding the token (a performance bottleneck), Dropbox built a custom signing tool that complies with the Authenticode spec (on Windows) while allowing safe post-signing modifications. The tool marks a 1KB "tag buffer" in the installer as an unverified section; this buffer can be rewritten per request without breaking the signature.
When the full installer runs, it reads the token from this buffer and uses it to report progress and failures back to the server. This gives the team a holistic, funnel-level view of installation behavior across different connection speeds and routes.
Secure Auto Sign-In
Once the desktop client is running, the goal is to log the user in automatically using their web session, eliminating the risk of forgotten passwords or distracted users abandoning the process. The same tag buffer technique embeds a one-time user token into the installer. The client then uses that token to authenticate — but only after a server-side security handshake:
- The server creates a meta-installer tagged with a unique, one-time user token (valid for a short window) and the specific browser used for the download.
- When the installer runs, it pings the server with the token to verify it's still valid and unused, sending a client-generated nonce along with it. The server associates the token and nonce.
- After installation, the client launches the same browser used to initiate the download, directing it to a page on
www.dropbox.comwith the user token and client nonce. The page has restrictions against iframe embedding and external linking, and POSTs both values to the server over SSL. - The server cross-checks the token and nonce against the user's browser cookie. If the token is valid, unused, and linked to the same user identified by the cookie, the server instructs the desktop client to log in automatically.
This cookie validation prevents a user from sending their installer binary to someone else and linking that person's machine to their account. The browser tag and nonce check stops interrupted flows from being resumed on a different device. If any condition fails, the flow aborts and asks for a standard email/password login. Auto sign-in is also skipped entirely for users with two-factor authentication or SSO enabled.
The result is a desktop client that is installed, linked, and ready to use with no credential entry — even though substantial backend coordination is happening, user studies showed almost no one noticed anything unusual occurred. The flow is live across Android, iOS, Mac, and Windows.



