Mike Bostock @ocks.org · 23/09/2026This post giving strong emission theory vibes. en.wikipedia.org/wiki/Emissio...en.wikipedia.orgEmission theory (vision) - Wikipedia 100
Mike Bostock @ocks.org · 22/09/2026I love seeing all the cool notebooks people are sharing again! 020
Reposted by Mike BostockObservable @observablehq.com · 22/09/2026Pack 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 BostockJo Wood @jwolondon.bsky.social · 21/09/2026Want 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... 0175
Reposted by Mike BostockBryce @brycemecum.com · 18/09/2026TIL 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 · 19/09/2026You can implement your own custom DatabaseClient, too; it’s just an object with a sql method (that typically returns a promise to an Arrow.Table). observablehq.com/d/1ab5adcc5f...observablehq.com 110
Mike Bostock @ocks.org · 19/09/2026Thanks for sharing! This feature uses DuckDB-Wasm under the hood. Here’s the equivalent using DuckDBClient, which is handy if you want to join multiple datasets. observablehq.com/d/aff4d0e2c2...observablehq.com 120
Mike Bostock @ocks.org · 17/09/2026Nice! Were you inspired by our open-source analytics Framework project? observablehq.github.io/oss-analytics/observablehq.github.ioOpen-source analytics 120
Mike Bostock @ocks.org · 16/09/2026(The flow chart was built in a notebook, naturally. And the internal version labels every edge with counts queried from our data warehouse so we know exactly how frequently each case occurs!) 040
Mike Bostock @ocks.org · 16/09/2026We’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... 1112
Mike Bostock @ocks.org · 04/09/2026We haven’t shipped search for the new Observable yet, but the old one is still available here old.observablehq.com/searchold.observablehq.comSearch | Observable 110
Mike Bostock @ocks.org · 02/09/2026Yep, thanks for trying it out, Ricky! We always love to see your notebooks. The free tier gives fairly limited tokens but soon you will be able to upgrade to Pro for more. 010
Mike Bostock @ocks.org · 02/09/2026Thank you Mattias! Reach out if you want any help, or to tell us more about your experience. 110
Mike Bostock @ocks.org · 02/09/2026It’s been pretty painless so far! And we’re glad to move beyond the JSON era. The only issue I recall is that the Databricks driver doesn’t yet support query parameters but we worked around that by doing SQL escaping ourselves. 030
Mike Bostock @ocks.org · 02/09/2026The new programmatic file attachment API is pretty cool and also powers our new fetch caching. observablehq.com/@observableh...observablehq.com 041
Mike Bostock @ocks.org · 02/09/2026Our data connectors are serverless Vercel functions. We stream Arrow IPC back to the client, using Flechette on the client to read tables. The client also automatically saves query results to the notebook. observablehq.com/@observableh...observablehq.com 251
Mike Bostock @ocks.org · 02/09/2026And we use columnar.tech/dbc/ to install the drivers.columnar.techdbc | The package manager for modern database driversInstall dbc, then use it to install ADBC drivers. 130
Mike Bostock @ocks.org · 02/09/2026This quickstart describes pretty much what we do. We pass the relative path to the desired driver (e.g., ./path/to/libadbc_driver_snowflake.dylib). arrow.apache.org/adbc/current...arrow.apache.orgQuickstartHere we’ll briefly tour basic features of ADBC with JavaScript using the SQLite driver for Node.js. Installation: Installing Drivers: See Installing Drivers for instructions on installing ADBC driv... 250
Mike Bostock @ocks.org · 01/09/2026It’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... 16415
Reposted by Mike BostockObservable @observablehq.com · 01/09/2026For 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... 16115
Mike Bostock @ocks.org · 31/08/2026Plot’s API is extensible with custom marks, channels, data transforms, render transforms, all expressed with code (D3 or DOM API etc.) so agents can readily move to lower-level abstractions as needed. Needs more documentation, though. E.g. observablehq.com/@observableh...observablehq.comPlot: LeBron James’ shotsA recreation of Matt Stiles’ and Mitchell Thorson’s basketball shot charts in Observable Plot, demonstrating a custom mark to render the court markings. Based on work by Nicholas Ortenzio. The bin tra... 010
Mike Bostock @ocks.org · 05/08/2026Yep, it’s a completely different approach. Rather than compiling TypeScript to JavaScript before parsing, we now parse the TypeScript directly and then erase type annotations. 111
Reposted by Mike BostockObservable @observablehq.com · 13/07/2026Here @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... 25523
Reposted by Mike BostockObservable @observablehq.com · 05/07/2026Revisiting 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 BostockPosit @posit.co · 09/06/2026Mike 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 BostockObservable @observablehq.com · 03/06/2026“Data viz” is short for “Data vizualisation” 1203
Mike Bostock @ocks.org · 29/05/2026I 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.comFetch streams are great, but not for measuring upload/download progressThey're inaccurate, and there are better ways. 1221
Mike Bostock @ocks.org · 22/05/2026A reviver/replacer technique for dates in JSON that won’t silently corrupt your data. observablehq.com/@mbostock/th...observablehq.comThe problem of dates in JSONJSON 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 BostockObservable @observablehq.com · 20/05/2026In 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/2026Latest podcast includes a sneak preview of new AI for notebooks! 050
Reposted by Mike BostockObservable @observablehq.com · 07/05/2026We had a 9-minute outage earlier today caused by a database migration. Sorry! You can read more here: observablehq.com/@observableh...observablehq.comNotes on the 2026-05-06 outageEarlier 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
Mike Bostock @ocks.org · 02/05/2026Hey, we’re working on distributing audio via podcast mechanisms, we just haven’t learned how to do it yet, lol. We’ll figure it out soon. 110
Mike Bostock @ocks.org · 02/05/2026Thanks, and yes! It’s been convenient to use Discourse for forums but I’ve always wished notebooks could be more seamlessly woven into discussions, and likewise the discussions integrated into the main site and more discoverable. It’s a lot to do but we’ll make it better. 010
Reposted by Mike BostockJo Wood @jwolondon.bsky.social · 02/05/2026A 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 · 02/05/2026Thanks Tom! Definitely quality over quantity… Rage against complexity. Nothing makes me happier than deleting code. 010
Mike Bostock @ocks.org · 01/05/2026In 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.beWhat even is Observable? | Observable PodcastYouTube video by Observable 4161
Mike Bostock @ocks.org · 26/04/2026Yeah it’s more a vlog than a podcast I guess? I don’t know how well it plays audio-only, but we can look into syndicating via RSS to all the apps. 020
Mike Bostock @ocks.org · 25/04/2026Thanks for the encouragement! Is there an easy way to do that with YouTube? You can subscribe to us there. 100
Mike Bostock @ocks.org · 24/04/2026Episode 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.comReactivity in vanilla JavaScript | Observable PodcastYouTube video by Observable 2252
Mike Bostock @ocks.org · 24/04/2026I dunno how to setup RSS from YouTube, but you can subscribe there and there’s also a playlist. Thanks for your interest! www.youtube.com/playlist?lis...youtube.comObservable Podcast - YouTubeThe weekly podcast on all things Observable! 110
Mike Bostock @ocks.org · 23/04/2026Thanks! This is a good guide: nextjs.org/docs/app/gui...nextjs.orgGuides: Data Security | Next.jsLearn the built-in data security features in Next.js and learn best practices for protecting your application's data. 110
Mike Bostock @ocks.org · 19/04/2026Episode zero of the new Observable Podcast! Wherein @toph.me and I discuss the magic of Next.js. youtu.be/B2BFi3SyQM4youtu.beDoes Next.js have too much magic? | Observable PodcastYouTube video by Observable 2120
Mike Bostock @ocks.org · 19/04/2026apps/web/src/app/(app)/@sidebar/[at]/page.tsx how many “app”s can i put in a single path 050