Music Histomap Generator
How I turned unplanned availability into an AI sabbatical — one that gave me first-hand experience of AI’s growing impact on software product teams, and turned an idea born from my passion for music into a working music-history application built with only a ChatGPT Plus subscription.
Where this project came from
Three years ago, artificial intelligence started registering meaningfully on my radar. As a card-carrying geek, I’d clocked the earlier milestones — the 1997 chess match between Deep Blue and Garry Kasparov among them — but a ChatGPT subscription was different. It felt less like science fiction and more like something I could actually pick up and use, and the part of my brain that likes to build things lit up. Like a hammer to a nail, I went looking for ways to put it to work in my day job: software product management.
There was plenty to do. I drove the adoption of Azure AI Services into our product stack, where we built an LLM-based service to classify company records by industry — value we couldn’t cost-justify buying from Hoovers, so we grew our own. That uncorked real customer value in trend and peer-comparison data, and soon after we shipped a second service that curated global security news for each company. The LLM was good at that, too.
Fast-forward to February of this year, when the itch to do more was stronger than ever — but my day job left no time for it. Then, having completed the post-acquisition platform integration of my team’s SaaS Security application, ConnectWise — which had acquired SkyKick, where we built it — thanked me for hitting the milestone by laying me off.
No one enjoys having the decision to leave a job taken out of their hands, but the timing could not have been better. This was the exact moment AI tooling began reshaping how software gets built. Claude Code, ChatGPT Codex, Cursor, Claude Cowork and Design, and others were throwing open questions about how product organizations would work, how they’d be staffed, and how they’d be tooled.
I started with a passion project I’d wanted to build for years: a music-history visualization app based on the original Rand McNally Histomap. What follows is the story of that project, from idea to working application. As a product leader, it became my way to experience first-hand how this technology is changing the way product management, design, and engineering build things. There were so many lessons along the way — and at the end of it, my idea came to life. Best of all, you can try the Music Histomap application for yourself.
Inspiration strikes
I don’t remember how I first came across it, but one of my favorite possessions is a nearly five-foot poster from Rand McNally — the company some of us remember for tabletop atlases and desktop globes. It’s called the “Histomap of World History,” created by John B. Sparks and originally published in 1931.
I can stare at this poster for hours, tracing who the major civilizations were along a vertical timeline that spans 4,000 years. Major events and people appear within each civilization, and you can watch their global influence ebb and flow as time moves down the page. You can see how things you already know connect — how close together, or how far apart, they actually happened. (I was always frustrated by high-school history teachers who made us memorize the dates of key events for a Friday quiz. Here they all are instead, staring back at me. And I’m transfixed.)
I could go on for days about that poster — trust me. But the crux of this story is how AI is changing the nature of product management and development, and the Histomap turns out to play a central role in how that learning happened.
The first thing to know about me is that I’m a builder at heart. Long before I took an interest in programming, I liked working with my hands — small repairs around the house, turning a wrench on the car, the simple satisfaction of fixing and making things. Those instincts served me well in college, during many all-nighters in the computer lab wrestling with programming languages I’d rather not admit to today. Conjuring software out of nothing but a vision in my head still gives me great joy.
That joy is exactly what drew me to ChatGPT and Claude. As brainstorming partners, these tools are amazing. But actually materializing ideas into working apps with Codex, Claude Code, and Claude Design is another level of joy entirely.
This story could have been “How AI Helped Me Find a New Job,” or “How I Used OpenClaw Agents to Run My Job Search.” I had a different goal in mind. I wanted a new mindset for how product teams should build software going forward — to answer the same kinds of questions we faced when agile replaced waterfall. If Codex and Claude Code weren’t going to replace our jobs outright, how does building with them change the way we all collaborate with one another — including with the AI?
My imagined music histomap was going to be the vehicle for answering those questions.
AI-enabled development (some assembly required)
Free time evaporated quickly as I started drinking from the firehose of AI podcasts and YouTube channels. Talking heads cheered on the latest features while putting their own spin on how to wring the most out of them. “Steal my skills.” “Schedule these tasks.” “Activate this connector.” “Build these agents.” My head was buzzing, and I had no idea where to start.
Once I got hands-on, I realized how early we still are when it comes to a mature, AI-enabled software development platform. Comparing notes with former colleagues, I found their companies all over the map — from those ignoring AI entirely to those throwing serious money at tokens. Either way, standardized practices were (and still are) a long way off for anyone hoping to arm a whole team with an AI-powered product assembly line.
This moment must have been how Paul Allen and Bill Gates felt — trying to piece together all the parts needed to assemble something people could actually run their business on.
For me, I felt I would benefit from wearing all the hats — from idea guy to release manager. I’d learn more by handholding each step of the process, or by being there for my AI companion as it wore some of those hats instead.
In the end, I signed up for ChatGPT Plus and kicked off my discovery and requirements phase. The other tool decisions could wait.
AI as a collaborator
Just ask my wife: I have this annoying habit. Whenever we encounter music out in the wild, I instinctively blurt out the name of the band, the singer, the guest musician on the track. My brain consumes music not just for entertainment but out of historical curiosity. I hear a lick on the guitar and know which artist it came from. I love learning why certain recording studios are sought after by artists chasing their signature sound. It’s this dynamic that made me think music history could be translated into a histomap. Though, to be fair, I didn’t really know.
The first question I put to ChatGPT was whether the Histomap concept could be extended to music. I was excited by the answer:
My confidence was high after that confirmation. Better still, it invited me to build a histomap specifically for the music genre I enjoy most.
But I’d come into this wanting to build an application, not a static map. I explained as much to ChatGPT, proposing an incremental next step toward the application I envisioned.
As we got going, I felt it was important to align with the chatbot on the equivalencies between the original histomap and the one we were building. Its earlier response suggested it had already formed an opinion about the underlying data model and the dynamics that drive how a map renders.
There were so many ways to come at it. Was the music histomap about popularity? About artistic expression, where the influence of a song or album mattered most? Or about the artist — about who saw The Beatles on the Ed Sullivan Show, or Jimi Hendrix at Woodstock?
Together, ChatGPT and I iterated until we shared an understanding of the data model and of how the ribbons should start, widen, and then shrink or disappear. The root of it was agreeing on an equivalency map between the classical histomap concept and the music one:
| Classical Histomap Concept | Music Histomap Equivalent | Notes |
|---|---|---|
| Civilization / Empire | Genre Root | Large-scale, enduring musical tradition (Rock, Jazz, Hip-Hop, Classical, EDM) |
| Dynasty / Kingdom / Cultural Era | Movement / Scene | Subdivisions within genres that rise, branch, merge, and decline over time |
| Political Leader / Monarch | Artist / Band | Primary identifiable actors driving cultural direction |
| Historical Event | Album / Landmark Work | Albums are milestone events, not influence drivers |
| Territorial Expansion | Growth in Listener Popularity | Represented by ribbon width |
| Cultural Influence | Artist Influence | Represented separately from popularity |
| Population Size | Audience Reach / Popularity | Distinct from artistic importance |
| Military / Political Alliances | Collaborations / Shared Scenes | Producer networks, touring circuits, labels, collective movements |
| Conquest / Assimilation | Genre Absorption / Fusion | One movement influencing or overtaking another |
| Migration / Trade Routes | Cross-Genre Influence Flows | Geographic and stylistic propagation |
| Historical Timeline | Musical Timeline | Usually a year-based horizontal or vertical axis |
| Rise and Fall of Nations | Emergence and Decline of Movements | Core visual narrative of the Histomap |
| Important Documents / Inventions | Influential Albums / Technologies | Landmark recordings, instruments, production innovations |
| Religious / Philosophical Schools | Aesthetic or Ideological Schools | Punk ethos, progressive experimentation, lo-fi authenticity, etc. |
| Geographic Regions | Regional Scenes | Seattle grunge, Detroit techno, Nashville country, UK shoegaze |
| Historical Figures | Producers / Executives / Engineers | Non-performers who materially shaped the movement |
| Wars / Schisms | Scene Fragmentation | Splits into subgenres or opposing stylistic camps |
| Trade Networks | Distribution Channels | Radio, MTV, streaming, labels, indie circuits |
| Historical Momentum | Cultural Relevance Over Time | Can persist even after commercial decline |
The speed at which ChatGPT decomposed the original Histomap and recomposed it around a music model amazed me. This was early in my use of AI for product definition, and it was already making quick work of key requirements. We had the advantage of working backward from a paper example toward an application that could generate its own — which sped up requirements definition considerably.
Product-management muscle does the heavy lifting
As satisfying as it was to watch the data model take shape, I was itching to see that data rendered. As I pushed ChatGPT in that direction, I was floored at how quickly results started appearing.
I’d assumed I’d have to wade through the math and the science of how histomaps get rendered. To my surprise, AI handled all of it.
Right away I could see conceptual relationships between the subgenres — the “movements.” The map opened in the mid-1960s with The Beatles and the British Invasion; Psychedelic Rock emerged just after, surfacing Cream, The Doors, and Pink Floyd.
I could see the rendering was working, but something big was gnawing at me. Nothing conveyed the influence factors that should drive the size and shape of the ribbons. All the text was the same size, stacked in the middle and overlapping itself. It was very rough. The layout rules were missing — and so was the logic behind them.
Solving that meant solving a more fundamental problem my product instincts had been flagging: who are we building this for?
To be fair, I started building it for me — a music lover with album covers and concert posters on his office walls. But my own taste could never fit on a single histomap poster. Too many bands, too many genres, too many albums. Even if I could press a button and print a five-foot poster covering 60-odd years of rock instead of 4,000 years of world history, it would never work; the genres alone would crowd out any room to plot the artists and their work. I had to think about the user differently.
So I broke it into personas. One was a classic-rock fan. Another, punk. Another preferred Americana. Another was twenty-five and into EDM or hip-hop. Now I was onto something.
But what if that persona lived in the UK? In Eastern Europe? Even sharing genres with someone in the States, wouldn’t they expect to see the artists they grew up with, in their own language? And then there were the audiophiles, who wanted to trace the influence of particular producers, studios, and session musicians.
The point is, I used personas to help ChatGPT understand who we were building for — and the variables, constraints, and controls each would need to render the slice of music history that matched their interests.
This is where ChatGPT really started to shine. I didn’t have to document every persona myself. I’d define a couple of examples, explain what made them relevant to the app, and the model would take it from there. Better yet, it kept anticipating the next step — proposing, for instance, that we add “Places” (the artist’s home country) to the filtering model, and emitting a schema definition in the context of everything else.
As I introduced genres (Rock, Country, EDM, and so on) and described the subgenres within them, ChatGPT introduced variable time dimensions to capture the beginning and end of each movement, and together we mapped each one across that timeline.
All this progress had me itching to start prototyping. In the next chapter, I’ll share what it was like to move from requirements to code.
AI coding for the first time
When the Music Histomap idea began to take shape, there was no question I’d lean on ChatGPT to do the coding. “Vibe coding” was entering the zeitgeist and I was all for it. Besides, while VS Code was installed on my machine, I’d only ever used it to view and edit HTML and PowerShell.
To be honest, I had no idea whether vibe coding meant interacting with Claude Code or Codex inside the IDE, or something else entirely. Not knowing any better, I plowed ahead.
I told ChatGPT I didn’t want to touch a single line of code: the persona I was playing was pure product management, and ChatGPT was my development team.
Even so, after some back-and-forth I learned I’d have to get my laptop configured properly. ChatGPT gave me apps to install and PowerShell scripts to run in my console — that part was straightforward. Once we got to program code, things got clumsier.
The first Python files were easy enough to copy and paste into my app folders through Notepad. But when something broke and needed fixing, ChatGPT would sometimes forget my “no code” rule and ask me to add a block here or replace something there. I’d push back and remind it of the requirement.
I later learned that newer releases made it far easier to grant the AI access to my application folders, set up GitHub, and run the process the way a real developer would. My “backups,” meanwhile, were compressed zip files. Stubborn, and convinced we were making great time, I kept copying and replacing whole files by hand.
In fairness, that approach worked well enough through the whole build-out. Every so often I’d have to start a fresh chat thread when Chrome stopped responding; I hadn’t yet learned about managing memory and token limits. Slow and steady, the app was materializing.
In hindsight, things would have gone more smoothly if I’d paused building long enough to evolve my environment. But the components were shifting constantly — a problem that persists to this day — so it would have been hard to know when to stop tinkering. Either way, I learned a lot doing it the hard way, and I came to appreciate the friction that newer releases stripped out of later projects.
At the very least, I have a real appreciation for the work it’s saving me.
Fast-forward to the end: what I learned
I could keep going — describing how we built out the music data model, refined the rendering service, and added interactivity, or how a few design decisions let the generator support entirely new art domains like Automotive Design and Animation on the same generalized architecture. I could list the features still unfinished: the album covers, car photos, and movie posters waiting for me to wire in. But by now you’ve probably seen all of that for yourself, playing with the application.
The real point of the exercise was to teach me something about how AI is changing the professions of the people who build software for a living. Whether my next chapter is another role as a product executive or a turn as a founder — now that building a commercial product from scratch is suddenly within reach — the Histomap gave me the perfect excuse to form an informed point of view.
At the speed AI is moving, these conclusions may not have a long shelf life. But here’s where I landed: