At long last, I have created the tech tree from my classic posts “In Defense of Tech Trees” and “What Counts as a Technology?”.
I call it the Historical Tech Tree. It’s a timeline to visualize the full history of all major technologies (or 1,780 of them, at least), from 3.3 million years ago to today. More importantly, it also contains more than 2,000 connections between them: prerequisites, improvements, inspirations: anything that allows you to understand how one thing led to another.
To mark this momentous occasion, here’s a fancy Substack button:
The Historical Tech Tree is by no means complete, but I’ve been working on it long enough that whatever comes next should be built in public. Starting now, I will also be accepting suggestions for missing technologies, additional connections, and other fix requests.
Here’s a small part of the tree, centered on the year 1857 and the Geissler tube:
I have an article about it coming out soon at the wonderful Asterisk Magazine, and you should all read it when it’s published (should be any week now!), or even earlier by grabbing a paper copy of the magazine. It contains a bunch of cool technological anecdotes and some thoughts on why and how I built the tree. The tree’s About page also has some discussion of the assumptions embedded in the project, such as the definition of technology I use and my approach to discretization and dating.1
In the rest of this article, I want to pull on two threads I haven’t had an occasion to write about in depth yet. The first is about vibe coding. The second is about historical complexity.
1. Vibe coding truly is the future
If the historical tech tree itself was a node in the historical tech tree, it would have large language models as one of its prerequisites.
I started compiling a list of inventions, with the purpose of building a tech tree in mind, more than 1.5 years ago. At the time, I didn’t know how I’d display the data, but I decided that it was a problem for later. I have a background in computer programming, so I figured I could eventually come up with a solution, either from some existing graphing software or something custom, but I didn’t really know what I’d do, and frankly the thought of putting a lot of work into that bored me (compared to the exciting task of compiling a list of all historical inventions). I’d never programmed a web app, and I lacked the activation energy to learn.
Then, one day in November 2024, I thought of describing my idea to the LLM Claude and asking how to code it. It worked way better than I expected. Within minutes, I had a basic web app that could import my data from a database and put it in an interactive flow chart.

Between November and today’s date of May 26, 2025, a lot of work had to be done. At first I would just ask Claude to do things and then copy-paste the results (and curse against its tendency to write a lot of “existing code here …” to make sure that I couldn’t simply copy-paste everything). Then I moved to Cursor — the fastest company to ever reach $100 million of annual revenue, by embedding AI into a code editor — where I proceeded to spend countless hours fighting with it to make the timeline scroll correctly or stop making my app so slow by loading all the content at once.

The app was “almost done” around February, but between “almost done” and “done” there lies a gulf. As they say, expect to spend 20% of your efforts on 80% of the result, and then 80% on the remaining 20%.
To be clear, human intelligence and software development skills were necessary at all points in the process. Vibe coding is still work, and it comes with drawbacks, such not understanding anything about your own code and introducing problems you never even knew were a thing. But this project truly made it click for me. AI has become a truly powerful enabler, and made me way more excited to work on software side projects from now on.
2. Tech is complicated, history is big — but we can do something about it!
The way I’ve been compiling the list of technologies is 100% manual. The reason for this is: what would have been the point of automating it? The fun part is learning about everything, from Acheulean stone tools to crystal oscillators, from logarithms to xerography, from simple gears to extreme ultraviolet lithography.
And the main thing I learned is that I knew nothing.
Here’s a self-evident statement: technology is very complicated. There’s a lot of it. Much of it requires both advanced scientific education and significant effort to grasp. The result is that most people, even most people who work in science and tech, understand at most tiny subsets of it. I have a reasonable handle on AI systems, thanks to my job. But there was never a reason for me to learn about different types of steel, or semiconductors, or knitting machines. Thus, most of the world around me felt somewhat magical, incomprehensible. I was okay with it, I trust that there are experts somewhere out there who care about making everything work. But it did mean I had a woefully incomplete model of the world.
And here’s a second self-evident statement: history is very big. There is even more history than there is technology. I once wrote an essay called The Four Shapes of History, in which I examined different ways we use to simplify the data in order to give us a chance of understanding it at all. Most ways to engage with history is to zoom into a tiny part of it, like “the life of Christopher Columbus,” or perhaps a slice across time or space, like “the history of European explorations” or “the state of the world in 1492.” Attempts at representing all of it in a single pass — what I have called 2D history — are very difficult and very rare, and they’re often too zoomed out to tell us much beyond “the Roman Empire was big at some point.”

I suspect that the complexity of both these things is at the root of many ills.
Because history is too big, many of us lack the proper historical knowledge to make sense of the world. Just the other day I saw someone on Twitter being skeptical that child mortality was as high as 40-50% in the 1800s; they just have no idea what the past was like. Such a person can’t understand how miraculous modern medicine is until they understand basic historical facts. When you pay attention, you realize that this sort of error is everywhere.
And because technology is too complicated, many of us cease to view it as what it is: a relentless quest to solve our problems using our ingenuity. Instead many of us start thinking that tech is a collection of magical miracles that we don’t and will never understand. And so we turn against progress; we stop believing that we can use our brains to solve our problems, even though history proves that we did just that thousands of times.
Fortunately, simply combining technology and history together seems to function as a partial antidote.
The reason I built the historical tech tree is — well, the true reason is that I’m a nerd who likes compiling lists of things. But the grander reason is that I hope it can make a dent in the complexity of the world. I think I managed to do that, at least for myself. By studying its history, I now understand just how random and serendipitous technology is, and how inventions can languish in obscurity for decades before becoming commercially successful, and how so much of it is just combining two unrelated things together. By studying the origins of each technological object around me, I now understand how history moves, and how much that depends on the actions of so many people trying to push it forward.
At least, I understand these things a little better than I used to. My model of the world is a little bit less incomplete.
Here’s the button again. I hope you’ll have as much fun exploring the 2D history of technology than I had mapping it out.
One last note: the tech tree costs me a little bit of money, not a lot, due to a couple of software subscriptions. If you like it, consider getting a paid subscription to this Substack as a way of supporting the project. And you’ll get all my essays as a bonus!
Not that kind of dating.
This is awesome
(Writing this under the assumption you don't know this stuff, apologies if you do) - Hosting the data on gitlab or github would let you include a license file, to make sure that it doesn't get stolen and used commercially, and also let others propose direct changes that you could discuss and review before merging in. I think it would be a good idea!