About Camdram Connected

How the site works, what it is built with, and why some searches take longer than others.

Live analytics

Site page views

Traffic snapshot across Camdram Connected.

Loading... total views
Loading... last month
Loading... last week

What It Does

Camdram Connected explores Camdram credits to find links between two people in Cambridge theatre. Each connection is built from shared shows and roles, then displayed as both a graph and a step-by-step explanation.

Tech Stack

Vanilla JavaScript

Runs search UI, API access, in-memory caches, and pathfinding logic in one client-side app.

vis-network

Draws an interactive people-and-show graph with pan, zoom, and node highlighting.

Cloudflare Pages

Hosts the site as static assets with no build step.

Pages Function Proxy

Handles `/api/*` requests, adds CORS headers, and caches Camdram responses at the edge.

Camdram API

Provides source data for people, productions, and role credits.

Algorithms

Autocomplete

Waits briefly after each burst of typing before searching Camdram. Debouncing cuts duplicate queries while still feeling immediate, and exact selection avoids confusion between similar names.

Rate Limiting

Inserts a small delay between outbound requests. Search often needs many person-role and show-role lookups in sequence, so paced requests reduce load spikes and keep behaviour predictable.

Breadth-First Search

Treats graph as person-to-show-to-person hops. Shortest-path mode explores layer by layer, so the first successful route found is also the minimum-degree connection.

All-Path Search

Continues collecting routes at the same depth instead of stopping at the first hit. That reveals multiple valid explanations, but branch count can grow quickly for well-connected people.

Lazy Graph Discovery

Fetches people and show data only when the frontier reaches them. The app never tries to preload the whole theatre network, which keeps initial searches practical.

Caching

Stores fetched people, role lists, and show casts in memory for the current session. Repeated searches can reuse known data instead of hitting the API again.

Visited-State Tracking

Remembers explored people and shows so search does not loop through repeated collaborations. Important because Cambridge theatre graph is dense and highly interconnected.

Depth Limits

Caps how far the search can expand. Quick mode prunes aggressively for responsiveness, while deeper modes spend more requests and processing to uncover longer routes.

Why Search Time Varies

Some people have worked on many productions, which creates much larger search branches. Quick mode stops earlier. Deeper and exhaustive modes explore more of the graph, so they can reveal more paths but require more API requests and processing.