Resistor Technology

Tools for Underground Music Culture

raiveFlier AI-Powered Flier Research Interface
Upload Analyze Research
Product

raiveFlier

"Upload a rave flier. Get the full story."

raiveFlier is an open-source analysis engine for electronic music culture. Upload an image of a rave flier — the photocopied, screen-printed, and digitally designed event posters that have documented underground dance music since the late 1980s — and the system produces deeply researched, citation-backed profiles of every artist, venue, promoter, and event found on the flier.

AI-Powered OCR

Multi-provider fallback chain — LLM Vision, EasyOCR, and Tesseract — handles the stylized, warped, neon-outlined typography found on rave fliers. Confidence scoring selects the best result automatically, with perceptual hashing to detect duplicate uploads.

5 Parallel Researchers

Dedicated researchers for artists, venues, promoters, date context, and event names query Discogs, MusicBrainz, Bandcamp, Beatport, and a RAG knowledge base simultaneously via asyncio. A human-in-the-loop confirmation gate lets users verify extracted entities before expensive research begins.

6-Tier Citation System

Every fact ranked from published books and academic articles (Tier 1) down to forum posts (Tier 6). Higher-tier sources are weighted more heavily in the LLM context window and displayed more prominently in results, giving you confidence in what you're reading.

Interconnection Mapping

LLM-powered relationship analysis maps shared record labels, recurring venue bookings, genre lineages, and geographic connections. A graph aggregation service visualizes these links across decades of electronic music history.

Core Architecture

RAG Pipeline — Retrieval-Augmented Generation

The RAG pipeline is what transforms raiveFlier from a "summarize web search results" tool into a deeply contextual analysis engine. A curated knowledge base of electronic music history — sourced from published books, interviews, longform journalism, and prior analyses — is chunked, embedded, and stored in a ChromaDB vector database. When the system researches an artist or venue, it doesn't just search the web: it retrieves semantically relevant passages from this corpus and injects them into the LLM prompt alongside live API data, producing answers grounded in verified, citation-backed sources.

Source Document Chunker (~500 tokens) MetadataExtractor Embedding ChromaDB

Ingestion: Source documents (books, articles, interviews, audio transcripts) are processed through format-specific parsers, split into overlapping ~500-token chunks with paragraph-aware boundaries, then enriched with LLM-extracted metadata tags — entity names, genres, geographic references, time periods — before being embedded and stored in ChromaDB.

Retrieval & Natural Language Queries: When a query enters the system, it passes through alias expansion (mapping artist names to known aliases), HyDE-lite query expansion via the LLM, and intelligent filter detection that extracts temporal, geographic, and genre signals from natural language. The expanded query is embedded and searched against the vector store with metadata filters. A tiered retrieval strategy queries books, articles, interviews, and events in parallel, with per-source deduplication (max 3 chunks from any single document) preventing one long source from dominating results.

Result Filtering: Results are filtered at three levels: ChromaDB-native filters for publication dates, source types, and citation tiers; Python post-filters for entity, geographic, and genre tag matching; and a final ranking pass that sorts by cosine similarity with configurable minimum thresholds. The LLM synthesizes the top-ranked passages into natural-language answers with inline citations.

Self-Improving Feedback Loop: Completed flier analyses are automatically ingested back into the corpus as tier-3 sources. The more fliers are analyzed, the richer the context available for future analyses — analyzing a 1993 Orbital flier creates corpus chunks about Orbital's early career, which later enhances analysis of a 1995 flier featuring Orbital alongside Aphex Twin.

In Progress

Perfecting Natural Language Responses

The RAG pipeline is production-ready and serving queries, but active development continues on three fronts:

  • Response Quality Tuning — System prompts are being iteratively refined to produce direct, expert-level answers without preamble or restating the question. Temperature tuning (0.1 for metadata extraction, higher for synthesis) is calibrated per use case.
  • Corpus Depth — The knowledge base is being expanded through raiveFeeder with book ingestion, interview transcription, and LLM-guided web crawling that scores page relevance before ingesting content.
  • Filter Precision — Genre tag matching currently uses bidirectional substring matching as a post-filter (ChromaDB doesn't natively support $contains on metadata). Work continues on more granular multi-faceted filtering and relevance threshold optimization to reduce noise in results.
  • Context Window Budgeting — Each chunk carries a token count for precise context window management, enabling smarter selection of which passages fit within the LLM's context limits while maximizing information density.
Companion Tool   In Development

raiveFeeder — Corpus Management

raiveFeeder is a companion FastAPI application (port 8001) that decouples corpus maintenance from the main analysis engine. It shares the same ChromaDB vector store and provider ecosystem as raiveFlier — content ingested through raiveFeeder is immediately available for RAG retrieval.

  • Multi-Format Document Ingestion — PDF, EPUB, TXT, DOCX, RTF, MOBI, and DJVU are converted, chunked, tagged, embedded, and stored in a unified pipeline.
  • Audio Transcription — Whisper integration (local via faster-whisper or cloud via OpenAI API) transcribes interviews, DJ sets, and lectures into searchable corpus chunks.
  • Image OCR Ingestion — Single-flier and multi-page scan modes extract text from historical flier archives and embed them directly into the knowledge base.
  • LLM-Guided Web Crawling — An intelligent crawler scores each page's relevance (0–10) to a natural language query and predicts link relevance before queueing, narrowing crawls to topically useful content. Blind mode available for full-site harvesting.
  • Content Approval Queue — Optional moderation with GitHub issue integration allows admin review before ingestion into the production corpus.
  • Corpus Publishing — One API call pushes the ChromaDB tarball to a GitHub release and triggers a Render redeploy, keeping the production knowledge base in sync.
Python 3.12 FastAPI Pydantic v2 ChromaDB WebSocket LLM Vision RAG Discogs MusicBrainz Bandcamp Beatport Whisper
30K+
Lines of Code
1,313
Tests
9
Interfaces
22
Adapters
Resistor Self-Booking Tour Platform
Book Tour Perform
Product

Resistor

"Reclaim Your Booking. Own Your Tour."

Resistor is a production-deployed, multi-sided marketplace enabling electronic music artists to self-book tours by connecting directly with promoters and venues. The platform eliminates traditional booking agency overhead through secure escrow payments, digital contract signing, real-time negotiation, and tour visualization tools — serving four distinct user roles: Artist, Promoter, Venue, and Admin.

Direct Booking

Self-service marketplace with configurable commission. Artists post city-by-city availability with minimum fees; promoters send structured booking offers and negotiate through unlimited counter-offer rounds with full history and delta tracking. Overlap detection prevents double-booking.

Interactive Map

Google Maps integration with dark custom styling. City selection mode builds tour itineraries with geodesic polylines. Promoters discover talent by city, date, genre, and fee range. Venues list availability and capacity — book talent and space in one platform. 40+ cities with timezone and airport data.

Three-Part Escrow

PayPal Commerce escrow with three timed disbursements: travel costs paid immediately on capture, 50% artist fee at T−14 days, and 50% at T−1 business day. All calculations use integer cents — no floating-point. Basis-point payment splits enable multi-party deals.

Auction Pricing

Promoters compete with offers above artist minimums through multi-round negotiation with color-coded delta indicators. Concurrent modification guards via updatedAt timestamps prevent race conditions. Fair market pricing driven by real demand.

Platform Architecture

Four-Sided Marketplace

Resistor serves four distinct user roles, each with dedicated workflows and dashboards:

  • Artists — Post availability windows (city, date, fee/travel range), receive and negotiate booking requests, sign digital contracts, manage tour calendars, and receive escrow-protected PayPal disbursements on a three-part schedule.
  • Promoters — Discover artists by genre, city, date, and fee range. Create booking offers, post "wanted listings" to attract artists, configure multi-party payment splits, and book venues independently.
  • Venues — List availability with capacity, pricing, and amenities. Receive and negotiate rental bookings from promoters. Track settlement payments and discover promoters for outreach.
  • Admin — User approval queue, dispute resolution with evidence review, payment management (refunds, retries, per-artist fee config), review moderation, audit logging, and service health monitoring.
Key Capabilities

Contracts, Messaging & i18n

  • Digital Contracts — Auto-generated from booking terms with HTML5 canvas signatures (brass-colored pen, touch support), server-side PDF generation via jsPDF, and dual-signature requirement before payment proceeds.
  • Real-Time Messaging — Direct role-to-role messaging via Server-Sent Events with unread tracking, badge counts, and inline translation for cross-language negotiation.
  • 10 Languages — Full internationalization: EN, DE, ES, FR, IT, NL, PL, JA, KO, ZH. Namespaced dictionary files per feature domain with automatic locale detection.
  • Calendar Integration — RFC 5545 iCal feeds secured with HMAC-SHA256 signed tokens, compatible with Google Calendar, Apple Calendar, and Outlook.
  • CPC Featured Listings — Self-regulating advertising market: daily budget determines search placement at $0.10/click, auto-pause on exhaustion.
Security

Defense-in-Depth

Production-grade security across every layer: NextAuth v5 with JWT sessions (15min access, 7-day refresh), RFC 6238 TOTP 2FA with backup codes, double-submit CSRF tokens with constant-time comparison, dual-backend rate limiting (Redis + in-memory fallback) with 12 presets, AES-256-GCM encryption at rest, Zod runtime validation on every API boundary, and restrictive Content-Security-Policy headers. GDPR-compliant with data export, soft deletes, and minimal cookies. WCAG 2.1 AA accessible with automated axe-core testing.

Next.js 14 TypeScript React 18 PostgreSQL Prisma 5 PayPal Commerce NextAuth v5 Upstash Redis Zod Google Maps Sentry Pino
69+
API Endpoints
32
DB Models
40+
Services
95%
Test Coverage
Philosophy

Technology

Layered Architecture

Enterprise layered design with dependency injection across both platforms. raiveFlier uses a 7-layer hierarchy (Frontend → API → Pipeline → Services → Interfaces → Providers → Models) with a single composition root. Resistor implements Clean Architecture with Presentation, Middleware, Application (DTOs), Business Logic (40+ services), Data Access (Repository interfaces), External Adapters, and Infrastructure layers — wired through a DI container managing ~50 services and ~25 repositories.

Open Source

MIT licensed tools built in the open. 300+ commits across both platforms. Transparent development with conventional commits, automated changelogs, and CI pipelines that enforce lint, typecheck, test, and security audit on every push.

Music-First

Built by musicians, for musicians and music culture. Every feature informed by real needs from the underground electronic music scene — from booking logistics and escrow payment scheduling to rave flier archival and cultural research.

Adapter Pattern

9 abstract interfaces in raiveFlier (ILLMProvider, IOCRProvider, IEmbeddingProvider, IVectorStoreProvider, IMusicDBProvider, and more), 25+ repository interfaces in Resistor — plus external adapters for PayPal, Resend, Cloudinary, and Sentry. Provider fallback chains are 3–4 levels deep: if the primary service fails, the system gracefully degrades to the next available option. No vendor lock-in, ever.

Dual Stack

Python 3.12 with FastAPI, Pydantic v2, and structlog for raiveFlier's research engine — immutable state objects, asyncio concurrency, and 4 embedding provider options. TypeScript 5 (strict) with Next.js 14, React 18, and Prisma 5 for Resistor's marketplace — React Server Components, cursor-based pagination, and tiered Redis caching. Deployed on Render and Vercel.

Security & Testing

Defense-in-depth across both platforms: OWASP Top-10 scanning, CSRF protection, rate limiting, AES-256-GCM encryption, and structured JSON logging. Zod + Pydantic validation on every API boundary. Combined 2,500+ tests across pytest (raiveFlier) and Vitest/Playwright (Resistor) with 95% coverage. Automated axe-core accessibility auditing targets WCAG 2.1 AA.

Interactive

Dr_Fun

Web Audio Drum Machine

Web Audio API Zero Dependencies 8 Synth Voices 64 Steps Dual Themes
Interactive

LakeShoreDr

TB-303 Bass Synthesizer

Web Audio API Zero Dependencies TB-303 Emulation 16 Steps Slide & Accent Distortion Dual Themes