Daniel Knowles

distortnewyork

distort new york

go to distort new york

visit the repo

DistortNewYork is a live-music discovery engine for New York's underground scene. Listings are aggregated daily from venue sites by a fleet of Playwright scrapers, then passed through Claude Haiku to extract clean, structured data — artist, date, venue, ticket link — before landing in the database. The result is a single, searchable, constantly-refreshed source of truth for what's actually happening in the city this week.

Features

Built for fans, by fans: DistortNewYork exists so nobody has to dig through Instagram stories and venue calendars to find the next good show.

Live search and browsing: Every page is a Server Component rendered against a fresh database read — keyword search, date filters, and venue browsing resolve in a single round trip with no client-side waterfalls.

Venue-first listings: Shows are linked to structured venue records, not free-text location strings, so a venue's full upcoming lineup is one click from any listing.

Community layer: Every show has its own comment thread. Organizers can submit their own shows via the contact form with image uploads handled by Vercel Blob, giving independent and nontraditional venues a path to the front page.

Newsletter: Weekly digest of featured shows, handled by a Server Action so signup never leaves the page.

Technologies Used

Framework: Next.js (App Router)

Language: TypeScript

Database: Neon Postgres (serverless) via Prisma 7

Storage: Vercel Blob

Scraping: Playwright + Claude Haiku (structured extraction via tool-use)

Analytics: @vercel/analytics

Styling: CSS Modules, mobile-first, CSS Grid for layout

Architecture: Server Components for reads, Server Actions for mutations

Hosting: Vercel (Production + Preview)