kevin zingg

waslauft

Switzerland's event map, AI-powered & undetected

Finding events across Switzerland used to mean checking dozens of different sites, each with their own terrible UX. I scrape 50+ sources, extract the vibe with AI, and throw emojis on a map so you instantly know what's popping where.

Open waslauft →
waslauft map with emoji-categorized events

What it does

  • Scraping 1,000+ events per week from 50+ sources across all of Switzerland
  • Undetected web scraping (because getting blocked is for amateurs)
  • AI extracts emotion from event descriptions → emoji categorization
  • Vibrant map where each emoji shows the vibe: 🎵 concerts, 🎨 exhibitions, 🍻 festivals
  • React frontend + FastAPI backend, all self-hosted and containerized

The scraping game

Scraping events isn't hard. Scraping 1,000+ per week without getting banned? That's the game. I rotate everything: IPs, user agents, request patterns. Sites think I'm just a very enthusiastic human.

The AI vibe extraction

I don't just list events. AI reads descriptions and assigns the vibe: chill coffee meetup vs raging techno party. Then I slap an emoji on the map. Users see what's happening where, instantly.

The emoji categorization isn't just aesthetic—it's functional UX. You open the map, see a cluster of 🎵 in Zürich and know it's music night without reading anything.

Current focus

Covering all of Switzerland with 50+ sources. The infrastructure scales easily, just plug in a new scraper and the pipeline handles the rest.

Completely self-hosted and containerized. Scrapers run on schedule, FastAPI backend serves the data, React frontend displays it beautifully. No third-party dependencies, no rate limits, full control.

ReactFastAPIWeb ScrapingAI/LLMPythonDocker