I'm excited to announce new improvements for the user experience, responsiveness and security of your deployments. We have revamped our Web UI for you to easily inspect the status of ongoing builds and new deployments.

We are also making it much easier to diagnose build errors on both the Web and CLI UIs.

Private Deployment URLs

One of the metrics we most obsess about at ZEIT is the "Time to Link". In other words: how soon after you enter now do we give you a URL where you can get realtime feedback about the state of the ongoing deployment.

Until today, since the URLs are unique and random, we simply streamed the logs of the ongoing build that you also would get on your terminal. To unify your https://zeit.co experience, we will now redirect you (using HTTP 303 See Other) to our private deployment URLs.


After you authenticate, the new deployment page will show you an overview of the deployment in terms of steps. By looking at these, you'll be able to get a sense of the evolution of your project's deployment performance.

After the deplyment completes, we'll automatically redirect you back to the project-uid.now.sh url. If needed, you can come back to the private deployment URL at a later time too see historical data.

If you don't have a username yet, we'll use your user id instead. We strongly encourage you to set up a username in your account's settings page.

Improved Error Handling

If your application's main process dies (such as the CMD instruction of a Dockerfile or npm start), we attempt to restart it automatically.

This is frequently desired because an intermittent failure (such as a disconnection from your database) can sometimes result in an unhandled failure scenario that makes the process die. Restarting it shortly thereafter would reconnect and make everything work again.

Until today, we were automatically retrying failed builds. This was primarily in order to alleviate frequent errors we would see with npm install that were, likewise, temporary. Since then, we've improved the npm deployment type significantly and have therefore decided to simplify our system and let developers retry if needed.

From today on, you will see the deployment's state set to BUILD_ERROR (if you are using the API) and a very clear error message, with instruction on how to retry if an error occurs:

The now process exit code is1 and a clear error is displayed

We hope you enjoy these improvements! Keep your eye out for exciting additions to this new Web experience.