Release notes

Subscribe to release notes via RSS, or follow @observablehq on X to keep up to date with everything we ship.

Observable Canvases early access

Early access is now available for Observable Canvases, a collaborative, visual medium for exploring, analyzing, and communicating with data. Learn more

Deprecating Observable Cloud

We are deprecating building and hosting data apps on Observable Cloud on the following timeline.

On April 15 (today), we are discouraging deploying new data apps to Observable Cloud by hiding data app-related pages in the Observable workspace for users who do not already have a data app hosted on Observable Cloud. These users will still be able to navigate to data app-related pages directly, and to deploy new data apps from the command line.

On May 15 (in one month), any users that do not already have a data app hosted on Observable Cloud will no longer be able to deploy new data apps.

On October 15 (in six months), or at the end of your Enterprise customer contract if it is later, we will discontinue building and deploying of data apps to Observable Cloud. We will continue serving traffic to data apps hosted on Observable Cloud until at least this date.

If you are a current Observable Cloud customer, we encourage you to migrate any Observable-hosted data apps to your preferred static site hosting provider at your earliest convenience. You can host data apps built with the open-source Observable Framework on a wide variety of providers, including GitHub Pages, Render, Vercel, Cloudflare Pages, and Netlify; see also our guide on automating deploys on GitHub. If you have any questions or concerns, please email support@observablehq.com. After migrating your data app to a new provider, please contact support if you would like us to set up a redirect from Observable Cloud.

For more context on this deprecation, please read our blog post about what’s next.

Embedded analytics

For Enterprise workspaces, Observable Cloud now lets you embed components from your Observable Framework data apps into other websites and applications. Learn more in the documentation.

  • Export JavaScript modules to power interactive components in other apps.

  • Export static files (like SVG, PNG, CSV, or JSON) that update whenever your app builds.

  • Configure CORS to choose which domains can embed your components.

  • Configure URL signing keys to securely embed private components.

  • View analytics about which exports are being used.

Also, for all users:

  • The “Analytics” tab in data app settings is now called “Pages”.

  • Data app sharing settings have been consolidated in the new “Access” tab.

  • When new users sign up, it’s easier to join or create a workspace at the same time.

Observable Framework 1.13

New features

Bug fixes and other improvements

  • Fix automatic cleaning of dist when building on Windows

  • Add explicit <html>, <head>, and <body> tags to generated HTML

  • Suppress checkboxes on tables in SQL code blocks

  • Fix resolution of absolute paths in SQL front matter

  • Avoid a top-level await bug on Safari in SQLite

  • Fix importing of npm:sql.js by adding an ES module export shim

  • Fix resolution of absolute global imports

  • Fix deduplication of resolved imports

  • Fix parameterized routing when a parameter value is its name in brackets

  • Support the NO_COLOR environment variable (via picocolors)

  • Remove automatic redirect to strip basic authentication

  • Fix updating the app title when deploying to Observable Cloud

  • Various documentation improvements

See release notes on GitHub for more details.

Observable Framework 1.12

New features

Bug fixes and other improvements

  • Allow import.meta.resolve to be used for local files

  • Favor observablehq:stdlib over npm:@observablehq/stdlib

  • Detect broken links during build

  • Detect missing files during build

  • Detect file name conflicts during build

  • Fix crash during preview with temporary files (e.g., Vim)

  • Fix content hashes for modules that import builtins

  • Fix reactivity during preview for data loaders from modules

  • Fix reactivity during preview for parameterized modules

  • Use registry.npmjs.org instead of data.jsdelivr.com to resolve npm package versions

See release notes on GitHub for more details.

Add data apps from GitHub, etc.

  • You can now import an existing Observable Framework repository from GitHub to create a new data app on Observable without having to go through the command line. Click “+” in the upper right, then “New data app”, or click here.

  • The creator of a data app will now receive an email notification if a build fails. If the build was initiated manually by clicking “Deploy”, whoever clicked it will be notified, too.

  • We've renamed “Likes” to “Stars”. They function the same as before, just with a fresh name. Starred notebooks are found on the workspace’s “Starred” page or in your personal area; starred data apps are pinned to the top of the data apps list.

Observable Cloud

Update: As of April 15, 2025, Observable Cloud has been deprecated. Existing instances will continue to function, but new instances cannot be created. Deploy your Observable Framework data app to Observable Cloud to run your data loaders automatically in the background so your dashboards are always fresh and fast. Read more in our founder Mike Bostock’s blog post.

  • Deploy from the cloud on schedule, when you push new code, or manually.

  • Secrets let you securely give data loaders access to your private data.

  • Schedules let you define how often to rebuild your app.

  • GitHub integration keeps your app in sync with your repository.

  • Segmentation (in beta) lets Enterprise customers build parallel versions of their app for different viewer segments.

Enterprise customers can talk to us to configure an on-premises environment to take advantage of these features without their data ever leaving their system. Contact sales@observablehq.com to get started or to upgrade.

New UI for organizing data apps and notebooks

  • Observable Framework projects are now called “data apps.”

  • The site navigation has been reorganized into “Data apps,” “Notebooks,” “Team,” and “Settings” (⚙). Schedules, secrets, databases, and embed keys (formerly “notebook keys”) are now under “Notebooks.” Recent activity, members, and groups are now under “Team.” “Settings” now covers controls, like billing and privacy, that are for workspace owners only.

  • You can see which notebooks you’ve liked within the current workspace. You can also still see your likes across all workspaces (alongside personal settings) if you click your profile picture in the upper righthand corner.

  • The new “Help” menu in the upper righthand corner consolidates links to get support, read documentation, and see examples.

Observable Framework 1.11.0

New features

Bug fixes and other improvements

  • The build command now empties the output root before building.

  • The convert command now outputs to the source root by default.

  • Fix rendering of command-line select prompts with many choices.

  • Inputs.file now supports the file.href property.

  • Pages now include a <meta name="generator"> tag.

  • Use CREATE TABLE for small Parquet files with DuckDBClient.of.

  • Fix building when SQL front matter refers to a remote file.

New examples and documentation

See release notes on GitHub for more details.

Observable Framework 1.10.1

  • Allow opt-out of link normalization via <a href rel="external">

  • Fix crash attempting to preserve expanded state.

  • Fix content hashes of global imports in _observablehq, _npm, and more.

  • Optimize resize to ignore height changes for unary render functions.

  • Improve slugify algorithm used for Markdown header anchors.

See release notes on GitHub for more details.

Observable Plot 0.6.16

  • Add the waffle mark 🧇 for comparing countable quantities.

  • Add support for GeoJSON data and GeoJSON property shorthand to all marks.

  • Add support for the tip option to the geo mark (via an implicit centroid transform).

  • Add support for Apache Arrow as native data, allowing channel shorthand.

  • Add per-side and per-corner rounding options (r, rx1, ry1, etc.) to rect-like marks.

  • Add className mark option.

  • Add differenceX and shiftY.

  • Change the tip mark to ignore channels of literal color values.

  • Optimize clip path rendering.

  • Fix marker options on lines with variable aesthetics.

  • Fix the default plot height when a projection domain is set.

  • Fix the default plot height when the ordinal y scale domain is empty.

  • Fix the Voronoi mark with the pointer transform.

  • Fix the Voronoi mark with non-exclusive facets.

  • Fix detection of date columns with Apache Arrow data.

See release notes on GitHub for more details.