Skip to content

Building & deploying

Data apps

Building your data app runs its data loaders and page loaders, often using secrets to access private data, and outputs static files and pages. Deploying your data app uploads those resulting static files (collectively, “the build”) to a server that hosts them so you can see your data app live on the web.

Building locally and deploying to the cloud

To connect your data app to Observable, deploy it from the command line:

npm run deploy

This builds your app locally, so your data and page loaders run on your own machine, and then deploys it to Observable. Once deployed, you’ll see your app listed on Observable and can use all the other features of Observable Cloud. Learn more in the Observable Framework documentation.

Building and deploying in the cloud

INFO

Building in the cloud requires your app to be using Framework 1.9.0 or higher.

Once your data app is on Observable, you can set it up to build and deploy entirely in the cloud. Go to your app’s “Build settings” tab and connect to GitHub. You’ll have to give Observable permission to see your data app’s repository, and then link that repository to this data app. Learn more about connecting to GitHub.

Screenshot of the “Deploy status” section of a data app settings page. There is a progress bar showing the status of the latest deploy, and a “Deploy” button in the top right of the section.

Linking a repository enables three new ways to kick off building and deploying your data app in the cloud:

  1. Manually: Click the “Deploy” button in the top right of “Deploy status” in app settings.
  2. On commit: Every push to the configured branch of your repository starts a new deploy. You can disable automatic deploys under “Build settings”.
  3. On schedule: You can configure your app to build daily or weekly. Learn more about schedules.

Your build will run on a Docker container running Debian and a suite of useful command-line software; learn more about our default environment, running your own scripts, installing dependencies, and setting up an on-premises environment.

Status and logs

You can view the status of a data app’s latest deploy on its app settings page. When a deploy is ongoing, a progress bar in the “Deploy status” section shows live updates as the deploy progresses.

Screenshot of the “Deploy status” section of a data app settings page. There is a progress bar showing the progress of the deploy. The deploy has been running for 12 seconds.
Status of an ongoing deploy.

You can view logs from a deploy by clicking on “View logs” on the latest deploy, or by navigating to the “History” tab and clicking on a previous deploy. The “History” tab lists a data app’s deploys from the past 30 days.

Screenshot of the deploy history for a Framework project. You can see who deployed, when, and if there was any message tied to that deploy.
A list of deploys in the “History" tab.

The deploy logs page shows all of the logs that were emitted from a particular deploy, with sensitive information redacted.

Screenshot of the logs page of a deploy.
Deploy metadata and logs.

Custom domains

EnterpriseLearn more about Enterprise

Enterprise customers can serve their projects from custom domains, e.g., https://dashboards.example.net or https://example.net instead of https://example-net.observablehq.cloud/dashboard. While each app requires a unique domain, customers can use multiple subdomains with no limit.

Customers will need to be able to administer DNS records for the domain they want to use. The process involves creating a CNAME record pointing to Observable’s servers and a TXT record to verify ownership. Once verified, traffic will be routed to the customer’s data app. TLS certificates are automatically provisioned and renewed for custom domains.

Contact support@observablehq.com to get set up.

A screenshot of a web browser with dashboards.example.net in the URL bar showing a dashboard built in Observable Framework.