← Building2025–nowLive

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.

Three local events feeds, each with its own audience and editorial voice

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.

Setlist Social Feed's desktop calendar for November 2026, viewed in mid-October: a month grid already filled with curated shows, such as Orville Peck, Superheaven, Rodrigo y Gabriela, Kurt Vile and Bonobo, with a count of shows on each day.
Planning beyond this weekend: Setlist Social's November calendar, viewed in mid-October.

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.

The Add an Event dialog in two real states. Left: a pasted text blurb about an experimental sound event at the Clyfford Still Museum, with an Autofill Event Details button. Right: the AI-drafted listing awaiting review, with suggested event name, format, topics, a short description, date, venue, neighborhood, a 6:30 PM start time, tiered prices and a high sellout risk, every field editable, ticket link and announcement date left blank, and an Add Event button the contributor still has to press.
In production: a pasted blurb (left) becomes a draft (right). The AI's values, including an estimated sellout risk, are suggestions; every field stays editable, and nothing is published until a person reviews it and submits.
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.

Two shows on the same night in Setlist Social Feed. Tyler Ballgame at Globe Hall carries a Scheduled tag that links to the Meetup group; Grace Cummings at Globe Hall still shows its upvote button.
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