Data into meaning
Amelia Wattenberger introduces herself in one sentence on her home page: “I create things on the web, explore novel interfaces, turn data into meaning, and empower devs with AI.” At the time of reading she is “a Principal Research Engineer exploring novel UIs + playing with ML on a tiny R&D team within GitHub,” which is GitHub Next. Earlier, on the landing page for her book, she wrote as a front-end developer at The Pudding: “Over the past ten years that I’ve been visualizing data, I’ve been perfecting my method and collecting helpful tricks.” Maggie Appleton’s collection lists her as “Research & development at GitHub. Previously Designer at Adept.” Her home page lists her earlier writing, kept on a 2019 archive, and the titles say what she taught front-end developers for years: Combining React and D3, Use the d3 force, The CSS Cascade, Scaling SVG Elements, Thinking in React Hooks, How to learn D3.js.
Fullstack D3 and Data Visualization is that decade condensed. The pitch is direct: “Charts are like an x-ray for your data,” and they “communicate ideas with simplicity, clarity, and detail.” The book is “not a reprint of the API docs” but “a practical guide to everything you need to create charts as quickly as possible,” and it promises that “Within the first 10 minutes you’ll be creating your own custom D3 charts.” It is not only code: “In this book we cover design principles, do’s-and-don’ts of design, and when to use certain kinds of charts.” Readers quoted on the page name the bar chart chapter, the Sankey diagram chapter, the enter-exit-update pattern, and join(). The course version runs to more than five hours of video across more than fifty lessons. The thread that runs from this book through everything after it is the one in her self-description: data into meaning, with the reader in control of the view.
Her GitHub Next work applies the same instinct to code. The repo-visualizer replaces the folders-and-files view with a picture: “each file and folder as a circle: the circle’s color is the type of file, and the circle’s size represents the size of the file,” enough of a “fingerprint” to read a codebase’s structure at a glance, shipped as a GitHub Action that redraws the diagram on every change. GitHub Blocks argued that “READMEs don’t have to be static” and that “Just because the files are textual, doesn’t mean you have to see them as text,” with blocks for files, folders, and whole repositories. Collaborative coding workspaces started from the observation that pair programming “involves more than simultaneously typing into the same text buffer,” or as her home page puts it, “Remote collaboration isn’t about multiple cursors, it’s about sharing context.” Code Brushes in Copilot Labs asked whether editing code could feel as tactile as painting: “Just select a few lines, choose your brush, and see your code update.” Copilot for Docs asked “What would it feel like to have an expert on hand?” and insisted on answers with citations into the original docs, so that “Instead of acting like an oracle” the tool helps developers grow their understanding. And Code Atlas took the core tension of the moment, that LLMs bring fluid reasoning while “we still need rigid reasoning for trust, safety, and reliability,” and made the model build its answer as a visible workflow of small JavaScript code blocks with inputs and outputs, so that “the user can play with it at almost no cost.” (A side benefit she notes: counting letters, which models struggle with, is easy in a code snippet.) The Blocks, Copilot Labs, and Copilot for Docs previews all ended on December 15, 2023; the ideas did not.
The essays on her site argue for the same thing from the other side. Why Chatbots Are Not the Future opens by asking to “discuss a few reasons chatbots are not the future of interfaces,” and the first reason is affordance. “Good tools make it clear how they should be used. And more importantly, how they should not be used.” A good pair of gloves is obviously for hands: “They’re hand-shaped!” A chat box, by contrast, “looks the same as a Google search box, a login form, and a credit card field.” The second reason is that “everything you put in a prompt is a piece of context,” and “the burden to learn what works still lies with every single user. When it could instead be baked into the interface.” The third is that responses are isolated; comparing two answers means scrolling back and forth line by line, and she calls the lack of a working buffer “a complete non-starter.” The fourth is the craft loop: a painter alternates between smooshing paint up close and stepping back to evaluate, and “Good tools let the user choose when to switch between implementation and evaluation,” whereas a chatbot forces the switch every few seconds. The essay ends on a spectrum from human task to machine, with a No man’s land in between, and a position: “I want to see more tools and fewer operated machines.” The closing is generous: at the very least, “we can add controls, information, and affordances to our chatbot interfaces to make them more usable.”
Three shorter essays sharpen the picture. Our interfaces have lost their senses says the digital world has been “Reduced to text under glass screens,” that “Being on a computer used to be a full-body experience,” and that chatbots strip away “texture, color, shape. Instead of interactive controls, we have a text input.” Her line for it: “We made painting feel like typing, but we should have made typing feel like painting.” She lists output modalities (text for depth and precision, visualizations for spatial relationships and trends, sound for alerts and background awareness, haptics for passive feedback) and input modalities (typing, clicking and dragging, tapping and swiping, gesturing, speaking) and says “the real magic happens when we combine different modalities.” Fish eyes borrows from maps, “a true masterclass for visualizing the same information in a variety of ways,” and proposes the fish eye as the model for answers: a detailed article in the centre with broader, similar, narrower, and related topics around it, or a code editor where “the function you’re working on is fully expanded, related functions are summarized nearby, and the overall structure of your codebase is abstracted above.” A chatbot answer, by comparison, is “as if you opened a book to one random sentence, read it, and closed the book again.” And she ties it back to her first discipline: “Is 42 a high number? A low one? Without context, it’s impossible to say.” Putting knowledge in its place makes the same point about context for the human rather than the model: follow-up questions feel “like searching a dark room by pointing a flashlight and turning it on for a second at a time,” and “Unknown unknowns are hard to stumble on when you’re only given the information you explicitly ask for.” Show the chosen pizza in the distribution of prices and ratings and the reader feels oriented.
The later essays move from critique toward construction. LLMs as a tool for thought says most people use chatbots “only as a way to steer somewhere,” but that a model can be “A wonderful brainstorming partner,” because “A good tool for thought is an extension of your mind,” one that preserves thoughts outside working memory and can “match whatever cadence feels natural to our thinking.” Bridging the hard and the soft starts from the dictionary (“a point where two systems, subjects, organizations, etc. meet and interact”) and frames interfaces as the meeting of soft, adaptable humans and hard, deterministic machines. Rigidity gives structure and predictability; softness gives flexibility; ChatGPT “can feel too soft,” and the answer she borrows from nature is a spine: hard segments connected by soft material, and gradual transitions from bone to skin. In interface terms that means hard-coded modules a model can use “to give the user solid ground to stand on,” and interfaces that start rigid for new users and loosen as familiarity grows. Getting creative with embeddings is the most hands-on: a writing app, PenPal, built “In defiance of the ‘AI will write everything for us’ narrative,” around one idea, “making the implicit explicit.” Her 2020 sentence-lengths tool simply mapped character counts to a colour scale; with embeddings she averages a few examples of each extreme of a scale into two points and places any new sentence on the vector between them, so “a sentence with a score of 0.5 is halfway between the two examples.” And in Code was our medium for thought she turns the lens on agentic coding: “We thought code was the output,” she writes, “but code was also where we did our thinking,” and asks, “What if agents created a custom whiteboard or playground for us, as soon as we started working?”
Read together, the book, the research projects, and the essays are one argument with different materials. A chart is data made visible and steerable. A repo drawn as circles is a codebase made visible. Code Atlas is a model’s reasoning made visible and editable. The chatbot critique is a complaint that a text box makes none of that visible and leaves the steering to the user’s typing. For your own work, the practical test is hers: when a tool you build shows a result, ask whether the reader can see where it sits (the distribution, the neighbours, the structure above and below) and whether they can reach in and adjust it without starting over. If the answer is a scroll of text, you have built an oracle where a tool was needed.