Release notes

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

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

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 Framework 1.10.0

  • Add FileAttachment.arquero for loading an Arrow, Parquet, CSV, TSV, or JSON file as an Arquero table.

  • Inputs.table now supports the select option to suppress user selection (checkboxes).

  • In narrow windows, you can now close the floating sidebar with Escape.

  • The inspector now preserves the deep expanded state for dynamic values.

  • Fix a bug where expanded inspected values would not be cleaned up on invalidation.

  • Fix a crash when expanding inspected values while certain text is selected.

  • Fix a spurious error when using Control-C to terminate the preview server.

  • Fix modulepreload for local components during preview.

  • Optimize imports of npm:react-dom.

  • Tweak format of project identifiers in prompts during deploy.

  • Fix spinner rendering when not in a TTY.

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.

UI updates to workspace homepage

  • The workspace sidebar has been reorganized into Projects, Notebooks, and Settings.

  • Instead of a “Home” link, click your workspace name to navigate back to your workspace.

  • Database and Membership pages have been removed from the sidebar, but are still accessible through the the Settings section.

  • Links to pages that were previously found in the lower left corner of the side bar can now be located within the top navigation bar. (e.g. documentation, trending notebooks, etc.)

  • The “Learn” and “Quick guides” sections are now only displayed to new users. Quick guides can still be found at https://observablehq.com/guides.