Denver Feeds
Three event feeds for the Denver communities I host, with about 2,400 listings curated since March 2025. AI drafts and a person approves, a rule I set after halting an auto-publishing agent the day it shipped.

01 – What
Three event feeds, each with its own audience and editorial voice:
Setlist Social: live music, mostly indie, with every artist described in one “sounds like” line. setlistsocialfeed.com/
Amuse-Bouche: pop-ups, supper clubs, and special dinners, led by price, reservations, and sellout risk, plus a guide to ~280 restaurants. amuseboucheinsider.com/
Artistry/Nerdistry: talks, workshops, exhibitions, and games, sorted by format and topic (Talks & Lectures × Astronomy). artistrynerdistry.com/
Designed like a zine
The visual system is deliberately loud and lo-fi, closer to a flyer taped to a venue door than a polished events app: clashing color pairs, heavy type, dense listings. Each feed has its own palette and voice, and a shared structure keeps them recognizable as one family. It should feel like it was made by someone who actually goes to these things.
How it grew
Seeded with real data. The music feed launched in March 2025 from my spreadsheet through a bulk CSV upload, so it was useful on day one.
AI enrichment, then grounding. In August 2025 I added a parser that builds a listing from a band name alone. In early 2026 I moved its facts onto structured sources (Bandsintown, Songkick, AXS, Dice), with web search and manual entry as fallbacks.
Built for my own workflow first. In March 2026 I launched Amuse-Bouche and Artistry/Nerdistry back to back, along with screenshot parsing, so I could turn Instagram finds into listings instead of retyping them into a spreadsheet.
Complexity on demand. Regional venue filters, recurring events, and sellout-risk estimates arrived as the volume and variety of events required them.
- Role
- Founder: product, design, curation
- Team
- Me + AI coding agents
- Since
- March 2025
- Built with
- Replit Agent → Claude Code
On the day I first shared Artistry/Nerdistry with our Meetup group, a member spotted an event, invited others to join him the next day, and two people did. I didn’t have to host anything.
02 – Why
Portland and New York both had heartbeats you could feel on almost any street. When I moved to Denver, I couldn't find its heartbeat. My best guess was that it was in people's cars, headed for the mountains.
It turned out the scene was there all along: indie shows, supper clubs, visiting scientists' talks, chefs starting to earn Michelin stars. It just wasn't visible from the sidewalk. DenverFeeds makes it easier to find, so more people show up for the artists, cooks, and curious-minded hosts keeping it going. It's my part in helping Denver feel like the place it already is.
More on why
I've organized groups in every city I've lived in. In New York it was an indie-show crew and a hiking group, and curation came easy: Oh My Rockness surfaced great unknown bands, and the New York–New Jersey Trail Conference mapped roughly 170 trails you could reach by public transit. (Yes, that's a thing.) Music followed me west. Bandsintown still knew the bands I'd found back east, and I still chip in to Oh My Rockness even though they don't cover Denver, because their Recommended list is how I find lesser-known bands worth seeing live.
Everything else was harder. My restaurant wishlist lived in a Mandi-crazy spreadsheet that was getting unwieldy, and I wasn't finding the pop-ups, talks, and insider nights I'd counted on in my old cities. So in 2024 I ran an experiment on my own feed. Guessing those events were promoted on social, I muted my friends on Instagram, unfollowed about 2,000 art-direction inspiration accounts, and systematically followed chefs, restaurants, universities, bars, and venues until the algorithm learned what I was after. It worked.
Logging it all was tedious, though, and people kept asking me to share the spreadsheet: the first sign it could be useful beyond me.

What members can do
- Browse
- filters, search, and a calendar view, with cues for what's new this week and what's still running.
- Go
- every listing links to the next step, whether that's the artist on Spotify, the venue on Maps, the date in Google Calendar, or tickets.
- Subscribe
- each feed publishes a calendar subscription, so upcoming events land in your own calendar.
- Join a Meetup
- shows I'm hosting are marked Scheduled and link to our Meetup group.
- Add an event
- no account needed. Paste a screenshot or blurb, review the AI-drafted listing, and submit.
- Follow a series
- recurring events have real schedules, per-date notes ("This round: Sichuan mala broth"), and skippable dates. About 250 listings recur.
03 – Three decisions and what they taught me
Decision 01
One platform, three voices
Each community gets its own feed, and all three share one platform. Three separate products would have tripled the build; one generic Denver feed would have fit none of them.
The full story
Bet
It started in March 2025 as a feed for my music group. As I organized more Meetups, I saw that the same discovery engine could serve my food and arts-and-sciences communities.
What happened
The audiences aren't interchangeable. Someone who loves a $12 show at Hi-Dive isn't necessarily shopping for a $100 dinner. But there's real crossover among people who know me as the host of all three groups. So each feed has its own voice, categories, and design, and all three share a platform and link to one another.
Cost
Three voices take three times the curation, and every feature has to be built for all three or deliberately for one.
Decision 02
AI drafts; people decide
A plausible-looking wrong listing is worse than a missing one.
The full story
Bet
In August 2025 I shipped automatic concert discovery that could publish listings on its own.
What happened
I halted its publishing the same day, after spotting inaccurate dates and venues, and within a day it fed a review queue where I approve or reject what it finds. Later I rebuilt the lookup so facts come from structured sources first (Bandsintown, Songkick, AXS, Dice), then general web search, then manual entry. Claude writes only the creative fields, and each listing shows where its details came from. Every AI feature now follows the same rule: the parser, the "sounds like" lines, and the stale-listing refresh all draft, and nothing publishes until a person approves it.
Cost
My review time is the bottleneck.

- 1
- Share an instagram screenshot or paste a blurb
- 2
- Every drafted field stays editable
- 3
- Sellout risk is an AI estimate, shown as a suggestion
- 4
- Nothing publishes until a person presses Add Event
Decision 03
What members said vs. what they did
Liking an idea, being free to act on it, and speaking for the wider group are different signals.

The full story
Upvotes
On Setlist Social, members upvote shows they'd like me to host. Early on, the votes shaped which Meetups I scheduled, but RSVPs kept landing well below them. People voted for bands they loved even when they had conflicts or no ticket budget, and a small, active minority did most of the voting. So when I launched Artistry/Nerdistry, I left voting out entirely.
Open contribution
I kept submission account-free and added AI parsing, bounded by rate limits and a daily AI budget instead of a login wall. Still, only about 66 listings (~3%) came from someone other than me. My working hypothesis is that members come because someone else does the discovering and vetting. They do share finds in our WhatsApp groups, so the bigger opportunity may be capturing those conversations rather than pushing people toward a form. Listings now record how they were created, so the next experiment is measurable.
Results so far
~100
Meetups hosted across three communities in the past year
~2,400
listings curated since March 2025
~500
upcoming events
~280
restaurants in the Amuse-Bouche guide
What's next
Discovery, take two: an agent that watches far more sources than I can and proposes events into my review queue. Before it earns more autonomy, I'll evaluate it against my own accept/reject decisions as ground truth.
A few for you: a short, explainable personal-picks list that works without accounts.
04 – How
AI coding agents wrote the code from my specs; I reviewed the plans, tested every change in the running product, and decided what shipped. The AI features run on Anthropic's Claude API. My part was deciding where AI helps, what it's allowed to do, and how a person reviews it.
- product & experience
- the three feeds, who each serves, their layouts and categories.
- Editorial voice
- each feed’s voice guide, grounded in my own direction, examples and edits.
- Direction
- specs, task breakdowns, and priorities.
- Curation
- most of the listings, week after week.
- Operation
- deploys, database migrations, backups and AI cost limits.
Tools, constraints & technical notes
Replit Agent took it from a one-page music feed to three products (March 2025 to July 2026). I ran the move to GitHub, Vercel, and Supabase as a deliberate test of Claude Fable 5 in Claude Code, shortly after its release. It ported the whole codebase in under an hour, and post-migration QA turned up a single regression. I also used v0 as a design collaborator for the Add/Edit forms.
I set four constraints: one production database, no new paid infrastructure, anonymous contribution stays open, and nothing reaches production without my approval.
The port was faithful, including to problems Replit had been hiding: runaway session records, write access without a real admin boundary, and uncapped anonymous AI calls. I prioritized fixing them ahead of new features. Everything beyond browsing, voting, and adding events is now admin-only by default, anonymous AI use is capped, and security tests run against a throwaway database. Details are on GitHub.
Community · AI