Over the years, I’ve read quite a few books. I’ve forgotten more about each of them than I remember.
For many of them, I remember virtually nothing. A Passage to India? I think there was a jeep in it. To Kill a Mockingbird? I’m proud that I remember the names Scout, and Boo Radley, and that Atticus defended a man named Tom. I think Scout or her brother broke their arm at some point.
I’ve probably read more of the “classics” of literature than most people, but there’s a part of me that feels bad that I haven’t read more of them.
There’s also a part of me that’s glad I haven’t wasted my time, since I’d have forgotten most of them anyway. My friend Rich Meadows co-hosts a podcast called Do You Even Lit?, and one of the things I get from listening to many episodes is that I feel validated for not having read the books they’ve discussed. (And yes, I’ve told that to him! It’s not a reflection of their analysis putting me off reading them!)
Weirdly enough, though, I like knowing about the classics. I get a special sense of satisfaction learning from Rich and Cam and Benny that Middlemarch influenced Leo Tolstoy as he wrote Anna Karenina. Or how different translations of The Odyssey have different strengths and weaknesses.
There’s part of me that still wants to read the classics: but the ones that are most likely to resonate with me in the right way at the right time.
So I built a tool. One reason was to scratch my itch: of having a better understanding of the “canon” and how these works fit together. And another was to see how quickly I could build a tool like this, and use it to showcase what you can do with the help of AI – and in this case, Anthropic’s large language models using Claude Code. (The models I used were, in order of how much I used them: Opus 4.8 (medium effort), Fable 5 (low effort), and Sonnet 5 (default effort, whatever that is).)
“Classics” by Future Friends Software
You can check it out here.
With the help of Claude Code, I created a database (SQLite) based on a variety of internet searches, focusing primarily on Wikipedia. I used Claude Code to help me create a list of classic works of literature, and get it to find and edit data about each of them.
I then created a few different interfaces for viewing this information:
- A map view which lets you visualise relationships between works, authors, genres, periods, events, characters, and themes.
- A timeline view, which shows when in time various works were published, and also shows the lifespans of each of the authors and when they published their works. This lets you see that Mary Shelley and Frankenstein predate Charles Dickens, who in turn predated Leo Tolstoy. It reminds me that F. Scott Fitzgerald, Hemingway, and Faulkner were contemporaries (who liked each other to varying degrees).
- Tables listing Works, Authors, Characters, and various Topics (including events, genres, locations, movements, and themes)
- Dedicated pages for:
- Works, which include a description and explanation of why it matters, plus various information including key characters, genre, period, and themes
- Authors, also including a description and explanation of why they matter, plus information about who they were influenced by and who they influenced
- Themes, including a brief explanatory note and works that explore this theme
- Characters, with a brief note about them
Within each of these views I’ve tried to include as many links from one view to the next.
All of this information is populated at varying degrees of detail. And – most likely – accuracy. (Having said that, the database knows which is which: every entry records whether it was looked up, drafted by AI, or checked by me. This is so I can validate at a later date.)
For now, however, I’m satisfied with the information being “good enough” and just wanting to share what I’ve done so far.
What it cost
I started working on this project last Wednesday evening, while watching TV with my wife. I deployed it to the internet on Saturday evening, three days later.
Over this time, I spent a total of 13.5 hours with Claude Code developing it. That’s less time than it would have taken to read most of the works that are on the list.
For much of this time (probably over half) I was doing other things at the same time – watching TV, working on other projects simultaneously, or even preparing dinner while my laptop was on the kitchen bench and I waited for Claude Code to spin up the next set of changes.
I exercised a fair amount of judgement. For one thing, I decided what I wanted to be created.
I also decided what key features I wanted to have. I told Claude Code what tech stack I wanted to use: HTML, CSS, vanilla JS, and SQLite. During development I also used Python and Flask. However, I set out that when I deployed it to a website I wanted it to be a static website with pre-rendered pages that didn’t need to rely on an interactive server on my part. I have dozens of projects that I’m working on at any given time, and the approach I take is to try to maintain as much consistency across them as possible, so that I can think of everything I work on as if they are a single project, with slight variations across them. So I was prescriptive about how the project should be structured and which documentation should be created and updated to help me and the LLMs. I was also quite explicit about the “voice” it should use when writing, and also how it should exercise judgement in terms of what information to include.
But I didn’t write a single line of code. I wrote far less than 1% of the text.
Most of the time was spent on scoping the project: going back and forth about what I wanted and didn’t want, at all different levels, and then going back and forth in terms of what I liked and didn’t like.
And after 13.5 hours I landed on v1 of the site, which I deployed to the Future Friends website on Saturday evening.
Is it perfect?
Of course not!
It’s a narrow tool, built for one person’s slightly odd itch.
Some of its connections are wrong and awaiting correction.
It will never be a substitute for reading Dostoevsky, and it isn’t trying to be.
But it’s mine. It answers exactly the questions I have, in the shape I want them.
Until very recently, a tool this specific to one person didn’t get built.
Nobody was ever going to sell it to me. The market for “Sonnie’s personal map of the classics” is one.
But I was able to create it.
And make it in a way where I can share it to other people, at little to no additional cost.
It might be useful to you or to someone you love. I hope that’s the case! If so, that makes me happy, even though it has already achieved everything I want in terms of my own wants and needs.
What about you?
What’s the weirdly specific, only-useful-to-you thing you’d build if you could?
Maybe it was impossible a few years ago. But maybe it’s possible now.
