Renaissance Faire Tracker
Goal
Track Renaissance festivals, faires, and similar themed events (Highland games, Viking festivals, pirate festivals, medieval faires) — plus, as of v5/v6, Roleplay/LARP campaigns, immersive experience events (like Hynafol), and costuming-friendly conventions (like Dragon Con) — within driving range, across however many weekends each one runs, so themes, pricing, and overlaps are visible at a glance — plus how far each one is from a given starting address, and where they sit on a map. Every entry carries an event type (🏰 Ren Faire, ⚔️ Roleplay (+LARP), 🎭 Immersive, or 🎫 Convention) shown as a colored badge everywhere its name appears, filterable from the panel above the data views, browsable on its own dedicated tab, and color-coded on the Map tab's pins — see the in-app Sources tab for how that taxonomy was applied. Coverage spans 43 events as of this writing. See Settings for the exact event/weekend counts and how they're calculated — that used to live in a subheadline on this page; it moved so the header could stay uncluttered. This entire list — every entry, every date, every classification — was researched and written by Claude (an AI assistant) working inside Austin's account, not hand-curated or independently fact-checked by Austin himself. Expect some inaccurate, outdated, or missing details; see the in-app Sources tab for the full caveat and for the per-entry 🤖/✅ verification badge explained there.
Layout
The page is full-width now (no fixed content column). Title is top-left; a low-key "← Austin's toolbox" link and the Settings button sit top-right, inline with the title. Below that is the tab bar, then the collapsible "Filters & address" panel (your starting address lives inside it now, not its own separate box), then the current tab's content. On narrow screens the tab bar collapses into a single "☰ Menu • current tab" button that expands a vertical dropdown instead of scrolling or wrapping. Settings is reached via its own header button, not a tab, so it's always one click away regardless of which data tab you're on.
Views
Twelve tabs (plus Settings, in the header) on the same underlying data, since no single layout won outright in the prototype, ordered By Weekend → Season Timeline → Grid → Map → · divider · → Festivals → Roleplay/LARP → Immersive → Convention → Community → · divider · → Event Prep → Sources:
- By Weekend — grouped chronologically, so overlapping festivals on the same weekend (several share Labor Day weekend in the data) surface automatically. Also flags the current weekend, the next upcoming one, and any estimated (unconfirmed) ones. A subtle horizontal-line divider with the year (e.g. "2027") marks anywhere the list crosses into a new calendar year.
- Season Timeline — a Gantt-style bar per festival across the season, with a marker for today and a dashed style for estimated weekends; click a bar for that weekend's full detail.
- Grid — festivals down the side, weekends across the top. The current weekend (or the next upcoming one, if none is happening right now) gets a bold, underlined, gently-glowing column header.
- Map — every filtered event plotted on an OpenStreetMap-tiled map (via Leaflet, loaded from a CDN only when you open this tab; the map is taller than earlier versions), color-coded pin per event type (see the legend under the map), plus your starting address if you've set one and an optional soft "range ring" circle around it (see Map range ring below). Click a pin's "Full details" button for the same popup the other views use — that popup now opens centered on screen, above the map, and can use most of the viewport's height.
- Festivals — one card per event across every type, full weekend list inside (with the same year-crossing divider as By Weekend). Best for browsing.
- Roleplay/LARP, Immersive, Convention — the same card layout as Festivals, but each locked to just that one event type regardless of the Event Type checkboxes above (a dedicated home for that category); still respects the date/camping/distance filters.
- Community — not part of the calendar/filter system at all: a plain directory of ongoing local groups (currently Fort Wayne/Indianapolis-area) that teach LARP/roleplay/combat, sword fighting (HEMA), or run a makerspace. No dates, no map pins yet — a dedicated calendar/map for this tab is a planned future addition.
- Event Prep — an AI-compiled list of costuming/gear how-tos, communities, and general first-timer prep resources, grouped by event type (Ren Faire, Roleplay/LARP, Immersive, Convention/Costuming).
- Sources — explains who did this research (Claude, not Austin), what the 🤖/✅ verification badge means, where the cross-references come from, and how current the data is.
- Settings (header button, not a tab) — the tracked-event count and how it's calculated, a show/hide toggle for every individual event, a filter reset, and Export/Import/Reset for everything this tool saves.
By Weekend, Season Timeline, Grid, Map, Festivals, Roleplay/LARP, Immersive, and Convention all share one filter panel (collapsed by default under a "Filters & address (…)" toggle above the tab bar's content, summarizing the active distance setting and date range) and the same underlying filtered event list. Every event name and every themed-weekend name, anywhere it appears, opens a detail pop-up with a thumbnail (the event's own favicon, or a generated placeholder if it has none or it fails to load), its event type and verification badges, full weekend list, address, distance from your saved address, a pricing summary, country, camping status, official site link, and a "Last updated / Sourced by" line at the bottom.
Map range ring
A small control above the map (below the Filters toggle) lets you draw a faint dashed circle around your saved address at a chosen radius — purely visual, separate from the Distance filter (which actually hides festivals outside the range; the ring just shows you where a distance falls on the map). Toggle it on/off, pick 100/200/300 miles, or choose Custom and enter your own mile radius. Disabled until you've set a starting address above.
Filters
- Event type — 🏰 Ren Faire / ⚔️ Roleplay (+LARP) / 🎭 Immersive / 🎫 Convention, checkboxes, default: all four checked. Matches the colored badge shown next to every event's name and its pin color on the Map tab. Hidden (replaced with a one-line note) on the dedicated Roleplay/LARP, Immersive, and Convention tabs, since those tabs ignore this checkbox by design.
- When — Past / Current (this calendar year) / Upcoming (next calendar year and beyond), checkboxes, default: Current only. A weekend only drops into "Past" once the Tuesday after it ends has passed, so a festival that just ran this weekend still reads as current through Monday.
- Also show — four additive toggles (Previous 6 months / Upcoming 3 months / Upcoming 6 months / Upcoming 12 months) that OR together with the When checkboxes rather than replacing them, so turning one on adds to what's visible instead of narrowing it. Each toggle uses date-range overlap rather than just a weekend's start date, so a weekend already in progress today always stays visible under any active toggle.
- Country — checkboxes per country present in the data; hidden for now since every tracked event is currently in the USA, but the underlying filter (and its default of your browser's own region, if it matches one already tracked) is still there and the toggle reappears automatically the moment a second country is added.
- Camping — Yes / No / Unknown, all checked by default (most events in this dataset don't have confirmed camping info yet).
- Distance — Any / ≤100 mi / ≤200 mi / ≤300 mi / a custom min–max range; only takes effect once you've calculated a starting address above, since it needs a distance to filter on.
Filters, hidden events, and your last-viewed tab all persist in this browser via localStorage; Settings has a one-click reset back to the defaults above, plus Export/Import for moving that saved state between browsers or backing it up.
Distance
Free-tier, no API key, no billing:
- Geocoding your address: Nominatim (OpenStreetMap).
- Driving distance/time: OSRM's public router.
- Map tiles: OpenStreetMap's public tile server, via Leaflet loaded from a CDN.
- If either the geocoder or router is unreachable, it falls back to straight-line distance (haversine); geocoding itself falls back to a small hardcoded city table covering major cities along the Midwest-to-Texas corridor.
- The last address you calculated is cached in this browser, so returning to the page doesn't re-hit either API for the same location.
Client-side calls only for now — Nominatim's usage policy expects a real identifying User-Agent and rate limiting, which a browser can't set. Proxying both calls through a server route is the natural next step if this outgrows prototype status.
Current state
Work in progress. Festival and weekend data (FESTIVALS in index.html) is researched but unofficial — sourced from festival sites, general web search, and a TheRenList.com cross-reference pass, not independently re-verified against each site at read time. See the in-app Sources tab for the full explanation. Where a festival hasn't published next season's exact dates, its most recent confirmed season is projected forward a year at a time (same weekday, so "roughly this pattern") and clearly marked "Est." with a tooltip explaining it's unconfirmed — that's projectFutureSeasons() in index.html, and it applies automatically to any festival whose newest confirmed data predates 2027, not just the original three.
Notes
- Single-file HTML app — no build step, no server, except for the Leaflet map library, which loads from a CDN (
cdnjs.cloudflare.com) only when the Map tab is opened. - Camping and country data is thin for the newer, TheRenList-sourced festivals (mostly "Unknown"/"USA" defaults) since that detail wasn't published anywhere confirmable during that research pass — the Camping and Country filters are built generically so they'll do more as that data fills in.
- The Event Prep tab's links were checked for corroboration across multiple search results, not by loading each page directly in every case — worth a spot-check before leaning on any of them, same as the festival data.
- Every entry defaults to the 🤖 "AI-sourced — not yet hand-confirmed" verification badge (see Sources tab). Flip an entry's
verifiedfield to'austin'inFESTIVALS(inindex.html) once it's been personally checked against the event's own site, to switch it to the ✅ "Austin-confirmed" badge. Community-tab entries (COMMUNITY_GROUPS) use the sameverifiedfield and badge. - The chrome pill that other toolbox tools get is dormant site-wide (see the root
README.md), so this page (like every other live tool) doesn't have one right now — not specific to renfest.
Planned (from the original design notes, not yet built)
- Independently re-verify the researched festival data (dates, pricing, themed-weekend names, camping) against each official site — especially the batch pulled in from TheRenList.com, most of which only has address/website confirmed so far, not themed-weekend names or pricing.
- Party list / friend sign-ups for v2 — possibly as a quest-style feature if it ever moves into a multi-user app.
Changelog
- v7 — reordered the tab bar (By Weekend, Season Timeline, Grid, Map, ·, Festivals, Roleplay/LARP, Immersive, Convention, Community, ·, Event Prep, Sources) with visual divider dots between groups; added a Community tab (a plain directory of local LARP/roleplay/combat, HEMA/sword-fighting, and makerspace groups — currently Fort Wayne/Indianapolis-area, deliberately outside the calendar/filter system); moved Settings out of the tab row into its own header button (top-right, next to a new "← Austin's toolbox" link); made the page full-width; fixed a stray vertical scrollbar on the tab bar (an
overflow-x:auto/overflow-yCSS interaction) and added a collapsible "☰ Menu • current tab" dropdown for narrow screens; fixed the detail pop-up rendering behind the map when opened from a map-pin's "Full details" button (raised its z-index above Leaflet's own panes) and enlarged/centered it to use most of the viewport; added a year-crossing divider ("— 2027 —" style) to By Weekend, Festival cards, and the detail modal's weekend list; made the map ~30% taller and added an optional visual "range ring" around your saved address with 100/200/300/custom-mile presets; added a bit more breathing room between By Weekend entries; increased body/UI font sizes and headings further on top of that, site-wide on this page. - v6 — added a fourth event type, 🎫 Convention, for costuming-friendly conventions adjacent to this tracker's other categories; renamed the LARP type's label to "Roleplay (+LARP)"; added a
verifiedfield (🤖 AI-sourced / ✅ Austin-confirmed) to every entry plus a matching badge, and rewrote the Sources tab to be explicit that Claude (an AI assistant), not Austin, did this research; added dedicated Roleplay/LARP, Immersive, and Convention tabs (same card layout as Festivals, type-locked); renamed the Prep tab to "Event Prep" and added parallel Roleplay/LARP, Immersive, and Convention/Costuming prep-resource groups alongside the existing Ren Faire ones; added three more researched events — Amtgard Spring War (Roleplay/LARP), Dragon Con and TeslaCon (Convention); removed the page's 960px width cap so it now fills the browser; folded the starting-address input into the "Filters & address" collapsible panel (previously its own always-visible box) and moved the tab bar above that panel. - v5 — widened scope beyond Renaissance faires to also track LARP/roleplay campaigns and immersive experience events; added an
eventTypefield (🏰 Ren Faire / ⚔️ LARP / 🎭 Immersive) to every entry, defaulting existing festivals to Ren Faire; added a corresponding Event Type filter, colored badges everywhere an event's name appears, and colored map pins (plus a map legend) keyed to type; added four LARP/Immersive events as a first pass — Alliance LARP – Wisconsin, Knight Realms, Hynafol (The Grand Gathering), and Wasteland Weekend. - v4 — collapsed the filter panel behind a "Filters & address (…)" toggle (closed by default) summarizing the active distance setting and date range; fixed a bug where a currently-happening weekend could disappear when only a forward-looking "Also show" toggle was on (now uses date-range overlap, not just a weekend's start date); added an "Upcoming 3 months" toggle; hid the Country filter (single-country dataset for now — reappears automatically once a second country is added); added a favicon-based thumbnail (with a generated placeholder fallback) to the festival detail pop-up, plus distance-from-address and a pricing summary line; reworded documentation that implied hand-verification to be explicit that the list was initially AI-seeded and may be inaccurate.
- v3 — added a persistent filter panel (year/date-range, country, distance, camping) with Settings-adjustable defaults; added Map and Sources tabs; added a Settings tab with per-festival show/hide, a filter reset, and JSON export/import; added a click-to-open detail pop-up for every festival and themed weekend, with a "Last updated / Sourced by" footer; pricing now shows adult price only with a "($c)" marker (full adult+child detail moved into the pop-up); bumped font sizes and gave headers their own accent color; removed the calculated-counts subheadline (moved to Settings); nearly doubled festival coverage (18 → 36) by cross-referencing TheRenList.com's nationwide listing.
- v2 — expanded from 3 to 18 festivals (Midwest-to-Texas corridor); added estimated 2027 seasons for festivals without confirmed next-year dates; added the Ren Faire Prep resource tab; festival names and website mentions are now clickable (new-tab) links with an external-link icon; Grid view highlights the current/next weekend's column; renamed the "Cards" tab to "Festivals".
- v1 — initial toolbox migration from prototype: ported to a single-file vanilla app, added past/upcoming/"next up" weekend awareness relative to today, and location caching to avoid repeat geocoding lookups.