New Observable
Observable just released a brand new version. There's a lot to like about it:
- It splits the editing & viewing modes so that notebooks are less confusing for readers who don't read code. Back when we tried to make editing a quick hop from reading, it was too easy to accidentally edit, and that was really overwhelming for people.
- Like Notebook Kit, it supports JavaScript (and TypeScript) properly. Observable JavaScript (OJS) was a dialect of JavaScript with extra keywords, like
viewof, and different syntax, like anonymous blocks. The tradeoffs for a custom language are pretty bad with few exceptions, especially when it so closely resembles another language that people assume everything that works in one should work in another. Trust me - I've worked on CartoCSS, Observable JavaScript, and the dialect of JavaScript that Val Town initially ran on. Embracing standard TypeScript is even more important now that lots of people are producing code with LLMs, and the training set for TypeScript is much, much bigger than for OJS. - It has a proper LLM chat interface that can fetch data, render charts, read images of those charts, and then those charts can be transformed into notebooks. And notebooks now have a built-in LLM assistant. AI integrations are polarizing but the portion of users who are polarized toward AI are heavy users who completely rely on it. Observable's previous experiments with LLMs felt a little half-hearted in that they required users to "bring their own API token" to pay for the usage. Now there's built-in Anthropic-backed models, with a very limited free allowance. Adding a way for people to buy credits seems like an extremely pressing need for the new Observable.
- It looks like they've switched to Vercel as a host for both the product and data connectors. And I think this shipped before the big rewrite, but the website shell is all Next.js based now.
- The new list of supported languages is: TypeScript, Markdown, HTML, SQL, TeX, DOT, JavaScript, and Observable JavaScript.
- The TypeScript support in the editor is just fine. I have learned firsthand how incredibly hard it is to create a web-based TypeScript-aware editor with completions, so it isn't surprising that the completions are incomplete and there are no hover hints. Probably you'd want to run a TypeScript 7 LSP server in a container, similar to how we do with Val Town. But on the other hand, for the trends of 2026, it's probably more important to take the LLM-assisted code generation angle more seriously.
Updating my table from my last Observable update:
| Product | Launched | Local/hosted | Languages | OSS | Layout | Collaboration |
|---|---|---|---|---|---|---|
| Notebooks | ~2018 | Hosted | ojs, md, html, sql | no* | notebook | live |
| Framework | 2024 | Hybrid | js, md, sql, many others | yes | mixed | none/github |
| Canvas | 2025 | Hosted | js, sql | no | canvas | live |
| Notebooks 2.0 | 2025 | Local* | ojs, js, md, html, tex, dot | yes* | mixed | none/github |
| New Observable | 2026 | Hosted | ts, js, md, HTML, SQL, TeX, DOT, ojs | no | notebook | live |
Backstory/full disclosure: I was the first hire at Observable and hold equity in the company.