eventsproductscavio

Event Aggregation as Product (2026)

Side-project to product framework for vertical event search. Curation is the moat; Scavio + Reddit is the data layer. Lifestyle business shape, not VC-scale.

5 min read

An r/AnnArbor post hit 110 upvotes by aggregating events for one mid-size city. The product shape generalizes: vertical event search, local newsletter feeders, college-town guides, niche community aggregators. Here's the framework for taking it from side project to product.

Why this category exists

Most cities have no canonical events feed. Eventbrite and Meetup cover ticketed and platform-organized events; they miss venue-direct calendars, university events, community spaces, and most smaller meetups. A curated aggregator + Reddit signal fills the gap that single-platform aggregators can't.

Side-project vs product

Side-project shape: one city, daily cron, public list, no monetization, $50/mo to run. Product shape: multi-city scale, monetization (sponsored slots, affiliate, paid promote tier), engineering for reliability and coverage. Most operators stop at side-project; that's fine. The product shape is for those who want a business.

The data layer (same for both)

Curated venue domain list per city (5-15 sources) + Scavio site-search + Scavio Reddit search + LLM normalization + dedup. Daily cron writes a static JSON. The product layer is everything above this.

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

DOMAINS = {
    'AnnArbor': ['theark.org', 'thelivery.com', 'umich.edu/events'],
    # ... more cities
}

def pull_city(city):
    out = []
    for d in DOMAINS[city]:
        r = requests.post('https://api.scavio.dev/api/v1/search',
                          headers=H,
                          json={'query': f'site:{d} events 2026'}).json()
        out += r.get('organic_results', [])[:10]
    r = requests.post('https://api.scavio.dev/api/v1/search',
                      headers=H,
                      json={'query': f'reddit r/{city} this weekend events 2026'}).json()
    out += r.get('organic_results', [])[:10]
    return out

What separates product from side-project

  • Multi-city expansion with disciplined per-city source curation.
  • Categorization (music / theatre / sports / community / kids / etc.) usable for filtering.
  • Datetime parsing accurate enough for "this weekend" queries.
  • Dedup discipline: events on multiple feeds collapse cleanly.
  • Coverage gaps: for cities where venues don't publish online, manual sourcing is required.

Monetization paths that work

Sponsored event slots (clearly labeled). Affiliate links to Eventbrite / venue ticketing. Paid "promote" tier for venues. Newsletter sponsorships once you have a mailing list. Most product-stage operators layer 2-3 of these; none on its own typically pays the bills.

The traffic shape

Local + recurring. Users come Friday afternoon, Saturday morning, weeknight planning. Build for fast page loads, mobile-first, no login. SEO around "[CityName] this weekend" and "things to do in [CityName]" long-tail queries.

Curation as moat

The 5-30 source domains per city is the value-add. Anyone can scrape Eventbrite. Few build the discipline of knowing which 15 venues actually drive a city's scene. The curation list is hard to copy and keeps improving with operator attention.

Product-stage cost

20 cities × $30/mo Scavio Project tier each? No — one Scavio plan covers many cities at scale (Pro tier $100/mo for 28K credits handles 20-50 cities depending on cron cadence). Hosting: cheap (static JSON + CDN). Domain + SSL: trivial. Per-month at 20 cities: roughly $100-200/mo all-in.

What kills it

Login walls. Generic "all the events" coverage that misses the venue-direct stuff people actually care about. Trying to monetize before traction. Skipping curation in favor of generic scraping. Building a complicated UI when a clean public list is what users want.

Honest about the unit economics

At product stage, an aggregator with 20 cities and steady local traffic earns somewhere between $0 and $5K/mo from sponsorships and affiliates. It's a lifestyle business, not a venture-scale one. The AnnArbor OP's thread shows the audience is real; the monetization ceiling is local-business-budget-shaped.

What to do this week

Pick one city you know well. Curate the source list (5-15 venues + local subreddit). Build the cron. Ship to a static page. Observe traffic for 30 days before committing to expansion. The first city is the proof point; after that, it's a curation-execution game.

Verified-online May 2026 against the source post and Scavio API.