iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
5여 년간의 라이브 음악을 시각적으로 담은 사랑 편지. 1984‑2026년 184공연, 257아티스트, 79공연장, 11,448앨범
A visual love letter to 5+ decades of live music. 184 concerts from 1984-2026, featuring 257 artists across 79 venues and 11,448 albums.
미디어TypeScript · HTMLGitHub @mmorper온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
For the love of live music
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Morperhaus Concert Archives
A visual love letter to four decades of live music.
An interactive web app for exploring personal concert history. Six scenes—Timeline, Venues, Geography, Genres, Artists, Ask the Archive—each offering a different lens on 184 shows spanning 1984 to today. Click through decades, trace connections between venues and artists, see where the music happened on a map. All enriched with artist photos, venue imagery, and setlist data.README 전문 보기 ↗A visual love letter to four decades of live music.
An interactive web app for exploring personal concert history. Six scenes—Timeline, Venues, Geography, Genres, Artists, Ask the Archive—each offering a different lens on 185 shows spanning 1984 to today. Click through decades, trace connections between venues and artists, see where the music happened on a map. All enriched with artist photos, venue imagery, and setlist data.
Live at concerts.morperhaus.org • 185 shows • 258 artists • 80 venues • 5+ decades
v6.0.0 🎸 The Cure played the Hollywood Bowl in May 2023 and put five songs from Songs of a Lost World into the set — a record that was still seventeen months away. The archive has now worked out which album almost every song I've watched came off, so a setlist reads as a shape rather than a list: what the night leaned on, what was brand new, and what hadn't arrived yet. Hear the arc.
v5.3.0 🎭 One man, four marquees. Brian Setzer has played here seven times since 1995 — as himself, as the Orchestra, as the Nashvillians, once as a '68 Comeback Special — and the archive had him down as four different artists. It knows better now. It also learned to read setlists properly, so it can spot a song coming back years later or a guest who was never on the ticket, and a few photographs that had quietly stopped loading are back where they belong. See the mosaic.
v5.2.0 🎲 Every story gets a turn. The archive writes its own liner notes, and it had fallen into a rut — of fifteen kinds of story it can tell, the same five kept coming up and five had never appeared once. They weren't worse; they just couldn't score as highly, and the highest score won every week. Now they take turns, and twenty posts link straight through to what was played that night. Read the liner notes.
v5.0.0 🎙️ Ask the Archive — right here. Forty years of shows are now a conversation: ask on the site (the journey ends in a chat — or press ⌘K from anywhere), or bring it into Claude. It answers in the archive’s own voice, always true to the shows that really happened. Ask the archive.
v4.6.0 ✨ How It Works! Ever wonder how a spreadsheet row becomes a richly connected concert record? Now you can watch it happen. The new How It Works page walks you through every enrichment tier—from raw artist name and venue to geographic coordinates, artist photos, audio previews, and song-by-song setlists—as an animated cascade in real time.
v4.4.0 📖 Liner Notes! Forty-two years of concerts, now with stories. The archive analyzes your history and writes original essays—personal milestones, cultural context, and deep cuts drawn straight from the data. Browse the feed at /liner-notes, filter by category, and subscribe via RSS. App release notes have moved to What's Playing.
Want the full story? Explore recent updates in What's Playing.
I've been going to concerts since 1984. My wife and I have been going together since we started dating in the '90s. From packed arena tours to sweaty club shows, from bands we grew up worshipping to ones we discovered opening for someone else entirely.
During the pandemic, we thought it would be fun to see if we could list every concert we'd ever attended in a Google Sheet. It was a good project to keep us busy during that not-so-great time. Of course, I feature-creeped it almost immediately—adding opening acts, venues, genres, who attended which show, reference links. What started as a simple list became a proper database.
For a while I had it hooked up to a Google Looker Studio dashboard. It was... fine. Functional. But it didn't feel like anything. It was data, not memories.
This project is my attempt to turn that data into something that actually captures what it feels like to flip through ticket stubs.
Six interactive scenes, each one a different lens on the same history:
The Timeline — Every concert laid out chronologically. Scroll through four decades, see the density of shows ebb and flow. Hover over any year to preview artist imagery and concert counts with subtle parallax effects.
The Venues — A network graph connecting venues to the artists who played them. Turns out we've been to Irvine Meadows a lot. Click any venue to see photos, stats, and concert history.
The Geography — A map of everywhere we've seen live music. Filter by region, click a venue marker to see photos and details of where the shows happened. Legacy badges mark closed or demolished venues.
The Genres — A sunburst chart breaking down our musical diet. Click into a genre to see every artist.
The Artists — Browse everyone we've seen, from headliners to openers. Gatefold album art vibes with artist photos, concert histories, setlist integration, and live tour dates with ticket links.
Ask the Archive — Forty years of shows, as a conversation. Ask in plain language—which venue we've been to most, who we saw twice in one year, what we played on repeat that summer—and get answers grounded in shows that actually happened, rendered as small exhibits rather than walls of text. Press ⌘K from anywhere.
All concert data starts in a Google Sheet I've been maintaining since the pandemic—date, headliner, openers, venue, city, who attended, reference links. That's the single source of truth.
But raw data isn't enough. The app enriches everything at build time:
The build-time pipeline fetches, validates, enriches, and generates static JSON files. Runtime features like tour dates load client-side with smart caching. Zero backend servers. Zero monthly costs (beyond the domain).
Want the technical details? See docs/DATA_PIPELINE.md for the complete data pipeline documentation, or docs/WORKFLOW.md for how this whole thing gets built and maintained.
Honestly? I did this to learn.
I wanted to see if I could build a real Jamstack app from scratch. No backend servers, just static files, APIs for data enrichment, and modern frontend tooling. I'd never done it before.
I also wanted to see what was possible using Claude Code as a collaborator—treating AI as a pair programmer rather than just a search engine. Every feature in here was planned, spec'd, and built through that workflow. The docs/ folder is basically a paper trail of that experiment.
The result is an app that pulls concert data from a Google Sheet, enriches it with artist images and venue photos from APIs, geocodes every venue, and renders it all as a smooth, animated single-page app. Zero runtime cost. Zero monthly bills (well, except for my Cloudflare Pages domain).
The stack: Vite, React, TypeScript, and Tailwind CSS. D3.js handles the timeline and genre visualizations. Leaflet powers the map. Framer Motion makes everything feel good to scroll through.
If you care about that sort of thing, see docs/ROADMAP.md for what's coming next and docs/WORKFLOW.md for technical details.
Want to see how it works first? Just run it:
git clone https://github.com/yourusername/concerts.git
cd concerts
npm install
npm run dev
The app includes my concert data as static JSON—no setup required. Browse 185 shows to see how it works.
Ready to build your own concert archive? Follow these steps:
1. Clone the repository
git clone https://github.com/yourusername/concerts.git
cd concerts
npm install
2. Prepare your concert data
Create a Google Sheet with your concerts using the required format:
Required columns: Date, Headliner, Venue, City, State Optional columns: Opener_1 through Opener_15, Reference
3. Set up API credentials
Configure the APIs needed for the data pipeline:
Follow the complete setup guide: docs/api-setup.md
4. Run the data pipeline
npm run build-data # Fetches from Google Sheets and enriches data
npm run dev # Starts the dev server
For details on the data pipeline and enrichment process, see docs/DATA_PIPELINE.md.
A few things I'm thinking about (whenever I get around to them):
New Capabilities Conversation has landed: the in-app "Ask the Archive" chat lets you talk to the collection right on the site—ask a question in plain language and get answers grounded in real shows, rendered as little exhibits rather than walls of text (press ⌘K from anywhere). (The archive also speaks to AI assistants through its MCP connector—this brings that same voice onto the site itself.) Next: the Artist Scene gains a full discography view (#5), bringing every artist's catalog to life alongside the shows you saw—now that the archive knows which record each song came from, those two halves can finally meet. Audio preview playback comes to setlist items (#22), so you can hear any song from a night's setlist with a single click.
Enhancements Smaller refinements that make the archive easier to roam. Jump straight from a venue's artist network into the Artists scene (#9) to trace who you saw where; see renamed venues at a glance on the map (#8); and watch the opening cascade arrive more gracefully, a piece at a time instead of all at once (#114).
Fixes Foundational work that keeps everything honest and quick: richer genre coverage for opening acts (#69) so the data tells the whole story, trimming payload the page never needed (#115) for faster loads, and a tag-triggered release pipeline (#13) so shipping a version is one deliberate act rather than several.
And always: more shows to add to the list.
Built with ❤️ for live music.