Observable notebooks are lightweight documents that let you think, explore, and explain with code. Quick to sketch and infinitely flexible, use them to analyze or visualize data, craft beautiful explanations, and support data-driven workflows with custom apps.
We’re impatient because time is precious. Speed determines not just how long a task will take, but whether you do it at all. Observable accelerates the feedback and discovery loop. Inventing software should be a joy and not a chore.
Write faster by hand or with an agent. Quickly draft analysis in an Observable chat, then transition to a notebook to get hands-on. Or start directly in a notebook.
Batteries included. Query data, visualize, add interaction. Everything you need to immediately start analyzing data.
Just start writing. Edit and run code with a minimal UI that gets out of your way.

Even simple programs can be hard to understand. And yet the more we understand, the more we can get computers to do what we want. Code isn’t just execution instructions — code formalizes and clarifies thought. Observable aids interpretation by decomposing logic into cells, minimizing hidden state, and showing live values.


There’s more to see than console.log. In Observable, live values are shown adjacent to the code that defines them, while the dataflow panel gives an overview of the whole notebook. Observable reduces context switching by integrating running, reading, and editing code.
Literate programming. Explain code by interleaving prose and visuals. Reorder cells to make sense to you, not the computer.
Better for agents, too. Like you, the Observable agent can inspect runtime values, see interactive selections in charts and maps, and inject code into the running program.
The best work happens when people work together. But trust varies wildly across social boundaries, so collaboration can’t be one-size-fits-all. Observable supports both real-time multiplayer editing and git-style fork-and-merge workflows. And comments. And fine-grained access. And unlisted notebooks, versioned publishing, and more.

Notebooks are remixable, recomposable software. Any notebook can be forked and any value imported. Forking lets you copy a notebook and edit it. Merging lets you review and apply changes from one notebook to another — even across teams.
No stepping on toes. Built-in version history means you can review changes and rewind them at any time. (You can fork versions, too.)

A place for everything and everything in its place. Team workspaces allow serendipitous coordination and centralized management of data sources, component libraries, and more.

Take your notebooks anywhere with no strings attached. Local development, self hosting, custom integrations… you name it. Notebooks have a human-readable, plain-text file format and we provide free open-source tooling for generating static sites.

Open file format and open-source tooling. Edit notebooks in your preferred text editor. Preview live in your browser using Vite. Build and deploy static sites using automated actions.
Boring technology is built to last. Notebooks are written in vanilla JavaScript, TypeScript, HTML, SQL, etc.. Import any library from npm. If it runs on the web, it works in a notebook.
Some notebooks are like blog entries, thinking out loud; some are pedagogical examples, offering or seeking feedback; some are precision-honed masterpieces.
Observable is constantly improving. We rely on you to help us prioritize what we build. Tell us what excites you the most! We discuss our work on our weekly podcast and on the Observable forum, X, and Bluesky.
Learn the basics of working in Observable, or fork a notebook to start. Peruse our example, tutorials, and documentation.