Sign in

Mike Bostock

@ocks.org
2.8K followers 77 following 112 posts

Visualization toolmaker. Founder of Observable. Creator of D3. Former NYT Graphics. Pronounced BOSS-tock.

PostsRepliesMedia
Reposted by Mike Bostock
Observable @observablehq.com · 22/09/2026
Pack four mirrored spheres inside the four walls of a tetrahedron (a pyramid). Paint the walls red, green, blue, and white. Then shoot rays out of your eyes. As they bounce, you find that the regions colored each color all somehow share a coastline. observablehq.com/@nxrix/wada-...
3156
Reposted by Mike Bostock
Jo Wood @jwolondon.bsky.social · 21/09/2026
Want to embed your @observablehq.com notebook cells in a Powerpoint-style presentation? I've created a tutorial and an interface to reveal.js that allows web-sharable interactive Observable cells to be embedded in full screen presentations. observablehq.com/@jwolondon/o...
Example slide  with a pale cream background from a presentation that uses slideshow. 

The slide shows a large square labelled 'Camden' in its bottom-left corner and five rows of small squares forming 15 horizontal bars aligned from the right of the large square. Each set of three rows shows a pale colour and sometimes darker colour in green, red, orange, blue and cyan from top to bottom. They represent political parties Greens, Labour, Liberal Democrats, Conservative and Reform respectively. To the right adjacent to the three orange bars are text labels saying 'alphabetically first within party', 'alphabetically second within party' and 'alphabetically third within party'. These form part of a visual explanation of the chart. Below the square and annotation is a legend across the slide width relating each of the colours to the political parties and 'unelected / elected' labels above the pale and darker version of each colour.
0175
Reposted by Mike Bostock
Bryce @brycemecum.com · 18/09/2026
TIL the new SQL cells on Observable support not just databases but variables defined in your notebook _and_ they output Arrow Tables which can be fed back into SQL cells: observablehq.com/@amoeba/sql-.... Nice.
observablehq.com
261
Mike Bostock @ocks.org · 16/09/2026
We’re improving the experience of individuals on Observable by no longer forcing everyone into a “team of one”. It’s tricky to simplify workspaces when you have users in every conceivable state! Here’s the flow we built, and you can read more here: observablehq.com/@observableh...
A flow chart showing the logic for Observable’s new user settings page; the flow branches initially for individuals with an existing personal workspace, individuals without a personal workspace, and teams; these branches branch again based on whether the team has more than one member and whether it is free.
1112
Mike Bostock @ocks.org · 01/09/2026
It’s finally here! So excited to be working out in the open again and for you all to try the new Observable. bsky.app/profile/obse...
16315
Reposted by Mike Bostock
Observable @observablehq.com · 01/09/2026
For more than a year, we’ve been quietly building an all-new Observable. Today, that new Observable is live on observablehq.com. Read Mike @ocks.org’s announcement: observablehq.com/@observableh...
A screenshot of the new Observable interface, showing a notebook visualizing “Bollinger bands”. Several interface elements are labeled. Along the top: workspace menu, new notebook button, user menu. Along the right side: file attachments, dependencies, comments, settings, enable tinkering, show AI. In the interior: cell inserter, cell menu, cell toolbar.
16115
Reposted by Mike Bostock
Observable @observablehq.com · 13/07/2026
Here @fil.rezo.net reproduces @climatecasino.net’s chart, using warped gridlines to represent both the absolute temperature and the deviation from the historical mean for each day of the year. new.observablehq.com/@fil/godzill...
A line chart with an x-axis showing days of the year, from start of January to end of December; a left y-axis showing temperature, from 22 to 31 ºC; and a right axis showing deviation, from -3σ to 4σ. An orange line shows the mean, starting the year around 26.3 ºC and peaking in May around 27.8 ºC. Faint blue lines show a huge amount of historical data. A bold red line representing 2026 begins the year below the mean, just below 26 ºC, and continues to present day far above the mean, 29.4 ºC. Gray gridlines get “pinched” in the middle, representing narrower summer deviations, highlighting that the current temperature is almost 3.5σ above the mean.
25523
Reposted by Mike Bostock
Observable @observablehq.com · 05/07/2026
Revisiting this is a great idea by @thelatentspace.bsky.social, and it sent @toph.me down a rabbit hole: when you fill in all the years in-between, you get a lot of self-intersection. new.observablehq.com/@tophtucker/...
0113
Reposted by Mike Bostock
Posit @posit.co · 09/06/2026
Mike Bostock's first data viz library ran on three 1x1 pixel GIFs and raw HTML tables. It kind of made a bar chart. He went on to build D3. Listen now on Spotify (open.spotify.com/episode/01BJ...) and Apple Podcasts (podcasts.apple.com/us/podcast/t...).
2428
Reposted by Mike Bostock
Observable @observablehq.com · 03/06/2026
“Data viz” is short for “Data vizualisation”
1203
Mike Bostock @ocks.org · 29/05/2026
I am surprised that Fetch doesn’t yet have a way to track upload progress — you have to go back (20+ years) to XMLHttpRequest! There’s a nice observer proposal linked here though. jakearchibald.com/2025/fetch-s...
jakearchibald.com
Fetch streams are great, but not for measuring upload/download progress
They're inaccurate, and there are better ways.
1221
Mike Bostock @ocks.org · 22/05/2026
A reviver/replacer technique for dates in JSON that won’t silently corrupt your data. observablehq.com/@mbostock/th...
observablehq.com
The problem of dates in JSON
JSON lacks a native date type, so I often run into the problem of serializing and deserializing dates with it. JavaScript provides some support; the `Date` class stringifies to JSON natively using the...
1162
Reposted by Mike Bostock
Observable @observablehq.com · 20/05/2026
In this notebook, @laotzunami.bsky.social visualizes a state space of possible chart types and transitions among them along defined edges. Transitions between unconnected types are achieved by routing through intermediate types. observablehq.com/d/3c8b082818...
212627
Mike Bostock @ocks.org · 11/05/2026
Latest podcast includes a sneak preview of new AI for notebooks!
050
Reposted by Mike Bostock
Observable @observablehq.com · 07/05/2026
We had a 9-minute outage earlier today caused by a database migration. Sorry! You can read more here: observablehq.com/@observableh...
observablehq.com
Notes on the 2026-05-06 outage
Earlier today we had a 9-minute (17:12–17:20 UTC) outage caused by a planned database migration. These notes summarize what happened and what we’re doing to prevent similar outages from occurring agai...
051
Reposted by Mike Bostock
Jo Wood @jwolondon.bsky.social · 02/05/2026
A reassuring podcast. Good to see the value of community recognised. This seems strongly aligned with what notebooks are best at - communication between people, using computation and vis as support. Increasing prominence of infrastructure like forums and trending notebooks would help here too.
231
Mike Bostock @ocks.org · 01/05/2026
In this week’s Observable Podcast, co-CEO Julio and I discuss our mission to make computation easier for humans to use and understand. We need a better medium! youtu.be/0uBOL9NP8Iw?...
youtu.be
What even is Observable? | Observable Podcast
YouTube video by Observable
4161
Mike Bostock @ocks.org · 24/04/2026
Episode one of the Observable Podcast! Wherein @toph.me and I chat reactivity, mistakes in designing Observable JavaScript, and vanilla JavaScript in Notebooks 2.0. www.youtube.com/watch?v=AUh5...
youtube.com
Reactivity in vanilla JavaScript | Observable Podcast
YouTube video by Observable
2252
Mike Bostock @ocks.org · 19/04/2026
Episode zero of the new Observable Podcast! Wherein @toph.me and I discuss the magic of Next.js. youtu.be/B2BFi3SyQM4
youtu.be
Does Next.js have too much magic? | Observable Podcast
YouTube video by Observable
2120
Mike Bostock @ocks.org · 19/04/2026
‎apps/web/src/app/(app)/@sidebar/[at]/page.tsx how many “app”s can i put in a single path
050
Reposted by Mike Bostock
Karim Douieb @karimdouieb.bsky.social · 21/11/2025
I did a short interview with @observablehq.com about keeping visuals simple, clear, and easy to connect with. I also touched on curiosity, emotion, and what I’m still figuring out. Grateful for the conversation. 👇
observablehq.com
Creator spotlight: The anatomy of an impactful data visualization with Karim Douieb
Explore how data viz designer Karim Douieb creates impactful data visualizations. Learn his five principles behind visuals that clarify, connect, and spark insight.
0111
Reposted by Mike Bostock
Jo Wood @jwolondon.bsky.social · 17/09/2025
🚨#datavis Job alert 🚨 Fancy working with us in London as a researcher using @observablehq.com Plot for accessible #datavis? To support people with language disability in the use of data visualization for everyday decision making. www.citystgeorges.ac.uk/about/jobs/a...
citystgeorges.ac.uk
Details | City St George's, University of London
Details of job vacancy at City St George's,, University of London
12415
Mike Bostock @ocks.org · 16/09/2025
Observable Plot has crossed 100,000 weekly downloads (and very close to 5,000⭐️s)! observablehq.observablehq.cloud/oss-analytic...
A time-series chart shows daily downloads of Observable Plot from npm; downloads have grown from a couple thousand per day in October 2022 to about 15,000 per day in September 2025 (7-day moving average); a tooltip shows 20,229 downloads on September 10, 2025.
1356
Mike Bostock @ocks.org · 16/09/2025
Observable Notebook Kit & Desktop 1.4 now support TypeScript cells, along with TypeScript for Node.js data loader cells. (Just type stripping, but greatly helps interoperability.)
2314
Reposted by Mike Bostock
hrbrmstr 🇺🇦 🇬🇱 🇨🇦 🏳️‍🌈 @hrbrmstr.dev · 14/09/2025
This week, the Bonus Drop features a practical example of using Python data loaders in Observable Notebooks 2.0. They enhance notebook performance by executing code in advance, facilitating access to diverse data formats. dailydrop.hrbrmstr.dev/2025/09/14/b...
dailydrop.hrbrmstr.dev
Bonus Drop #98 (2025-09-14): Observable Notebooks Data Loaders Example
This week, the Bonus Drop features a practical example of using Python data loaders in Observable Notebooks 2.0. Data loaders enhance notebook performance by executing code in advance, facilitating…
1112
Mike Bostock @ocks.org · 11/09/2025
A small but significantly useful victory: I got file association working with Observable Desktop.
A screenshot of the macOS file info window, showing a file that will open with Observable Desktop by default.
2140
Reposted by Mike Bostock
James King @jamesking.io · 09/09/2025
Big fan of @observablehq.com and since their preview release of Observable Notebooks 2.0 my team at Fora Health have integrated Notebook Kit into our app. Works really well so far. Quick demo ⬇️ screen.studio/share/TqvyfFbU
screen.studio
Observable Notebooks 2.0 in Fora Health — Screen Studio
Observable Notebooks 2.0 in Fora Health — Created and shared with Screen Studio
2125
Mike Bostock @ocks.org · 10/09/2025
Observable Notebook Kit and Desktop 1.3.0 are out, featuring data loader cells. You can now (finally!!) write Python and Node.js in notebooks. 🐍 observablehq.com/notebook-kit...
1326
Mike Bostock @ocks.org · 29/08/2025
Observable Notebook Kit and Desktop 1.2.0 add Google BigQuery and Databricks database connectors! observablehq.com/notebook-kit...
A screenshot of querying the most frequent words in the works of Shakespeare, with a simple horizontal bar chart below.A screenshot of querying a dataset of taxi trips in New York City, counting the number of trips per day, with a simple time-series bar chart below.
090
Mike Bostock @ocks.org · 28/08/2025
Oops, seems I broke sign-in in yesterday’s Observable Desktop 1.1.0, but it should be fixed now in 1.1.1. Was it broken for you? Is it fixed now? Please give it a try and let me know. observablehq.com/notebook-kit...
observablehq.com
Observable Desktop | Observable
040
Mike Bostock @ocks.org · 27/08/2025
Observable Notebook Kit and Desktop 1.1 are out. Headline feature: database connectors! 🎉 You can now query DuckDB, SQLite, Postgres, and Snowflake directly from notebooks. And it’s self-hosted. And it saves results automatically for performance and stable analysis. observablehq.com/notebook-kit...
observablehq.com
Observable Notebooks Database connectors | Observable
2429
Reposted by Mike Bostock
Observable @observablehq.com · 26/08/2025
📣 Today we’re announcing big updates in Observable Canvases. Learn about our growing suite of built-in, interactive charts (Sankey diagrams, arc maps, beeswarms + more), new embeds and dashboards for fast sharing, added Postgres and Databricks support, and more:
buff.ly
Observable Canvases: New chart types, dashboards, and easier ways to share
Our biggest release yet for Observable Canvases is here with new chart types, support for internal embedding, and dashboard creation.
081
Mike Bostock @ocks.org · 26/08/2025
The Notebooks 2.0 gallery now has a dedicated page! observablehq.com/notebook-kit...
observablehq.com
Observable Notebooks 2.0 Gallery | Observable
0203
Mike Bostock @ocks.org · 19/08/2025
A little demo of reactive SQL in Observable Notebooks 2.0, first using (native) DuckDB to bake data from a remote source, followed by DuckDB-Wasm to create and query reactive views in the client. Should be released this week!
1557
Reposted by Mike Bostock
Gregor Aisch @driven-by-data.net · 02/08/2025
I've been playing with the new Observable Notebooks 2.0 over the past days and I'm amazed. While still a preview I think it's already a serious alternative to R or Jupyter notebooks. Love that it works locally now and that notebooks are just HTML files with vanilla JS observablehq.com/notebook-kit/
observablehq.com
Observable Notebooks 2.0 Technology Preview | Observable
1419
Mike Bostock @ocks.org · 29/07/2025
Notebooks 2.0 is here! 📓🔮 Previewing today:
Notebook Kit, an open file format for notebooks with open-source tooling for generating static sites; and
Observable Desktop, a macOS desktop application for editing notebooks as local files, with a radical new approach to AI. observablehq.com/notebooks/2/
observablehq.com
Observable Notebooks 2.0 Technology Preview | Observable
36525
Reposted by Mike Bostock
Jo Wood @jwolondon.bsky.social · 31/03/2025
Want to create your own custom marks in @observablehq.com Plot, but don't want to go full D3? I've created a guide with 6 approaches of varying sophistication for specifying reusable custom marks: observablehq.com/@jwolondon/h...
A selection of custom marks generated with Observable Plot. From top to bottom: A categorical bar chart with black hachured patterns in 6 different directions; A faceted bar chart using Isotope symbols showing cattle, pigs and sheep in red, grey and blue; a sequence of geometric symbols in blue gradually increasing in size: circle, triangle, square and fan, repeating 3 times, below which is a sequence of 12 human-like figures also increasing in size; A curve made up of ellipses that transition from vertical to horizontal to cicrcular shapes; a set of thee dot and whisker symbols in black and white; an abstract geometric arrangement of teardrop shapes in green to brown colours forming concentric bands away from the bottom left; a map of cycle hire journeys in London represented by asymmetric curves in a range of colours, overlaid over the river Thames; a map on London boroughs symbolised with dots of varying density with the highest density of dots towards the outside, lowest in the centre; a 'chart' of flowers of different shades of purple and orange.
85715
Reposted by Mike Bostock
fil.rezo.net @fil.rezo.net · 24/02/2025
AMA about my love of maps observablehq.com/blog/maps-an... thanks @allisonhorst.bsky.social for the cosy chat
observablehq.com
We can always talk about maps
Fil Rivière, Data Visualization Engineer at Observable, describes his path into data visualization, what he likes in a map, what’s hard about mapmaking, and why he’s asking if we need a “slow cartogra...
06924
Reposted by Mike Bostock
Mark Di Marco @markmarkoh.bsky.social · 19/11/2024
The implementation of the waffle mark in @observablehq.com’s Plot library is a lot more elegant and clever than I thought it would be: open.substack.com/pub/commithi... #javascript #dataviz
open.substack.com
ep8 plot: waffle mark 🧇
Observable's data visualization library is full of fun little tricks, especially with this waffle mark commit
1285
Reposted by Mike Bostock
fil.rezo.net @fil.rezo.net · 13/11/2024
🎺 I always like how modest our release notes and version numbers are. But here’s the quack 🐤🐤🐤. Observable Framework v1.13 — just released! — adds support for 🐤 DuckDB’s extensions 🐤 : SPATIAL, H3, VSS… you name it. observablehq.com/framework/li...
observablehq.com
DuckDB | Observable Framework
1193
Reposted by Mike Bostock
fil.rezo.net @fil.rezo.net · 24/09/2024
I was ★★ by this very simple and yet powerful interaction pattern that the NYT made on their election polls page; I knew I had to reproduce it. Lots of small details to figure out… now it's available as a reusable options transform for Observable Plot. observablehq.com/@observableh...
3289
Mike Bostock @ocks.org · 05/03/2024
I am excited about (and proud of) Observable Framework 1.1. It features Windows support, self-hosted npm: imports, and CommonMark compatibility. And it’s just three weeks since launch! More to come.
github.com
Release v1.1.0 · observablehq/framework
Windows support (and Node 18, too) 🎉 Framework now supports Windows! Thank you upvoting #90. 👍 Framework internally uses POSIX path delimiters (forward slashes /), and now converts to the Windows p...
0234