GigScenes

GigScenes site map

Every page in the prototype, in one tree. Click any node to open it.

Legend:Newpage added·Updatedmaterial change·Datewhen it shipped

★ What's new — 21 Jun 2026

Next.js port live — one site, two render paths fixed
  • New sub-genres feature — pick a parent at /genres/:slug (Alternative, Rock, EDM, …), filter by sub-genre chips (Indie Rock, Garage Rock, Drum & Bass, …). Every gig card carries its tag pills, and the matching tag flips to gold when a chip is active so it's obvious WHY each result appears.
    • Demo: open /genres/alternative → click the Indie Rock chip → see only 'Hackney Diaries live at The Windmill'.
    • Or /genres/rock → click Garage Rock → see the two Lowlight Kids gigs.
  • Role-based dashboards updated for all 5 roles (Super Fan, Band, Venue, Promoter, Service) — same layout for everyone: hero + 4 stat cards (Saved gigs / Followed venues / Followed bands / Genre watchlist) that scroll to inline sections with cards for each saved/followed item. Click a stat card and you actually see your saved gigs, not the public directory.
  • Inbox-notify email is now CC-able + editable from the admin — when a fan submits the Contact / Newsletter / Membership-interest forms, Rupert gets an email. The destination address lives in /admin/settings (was env-var only) and accepts multiple comma-separated addresses, so anyone on Rupert's team can be added without a redeploy.
  • Profile editor — fans can update display name, location, short bio and avatar from /edit-profile. Drag-and-drop image upload goes straight to R2 and surfaces back on their Super Fan / Band / Venue dashboard.
  • Better Google + Bing visibility — every page now shows all its content (FAQ answers, gig listings, genre tiles, plan details) the moment it loads, so search engines can index everything reliably without waiting for the page to finish opening.
  • Pages are now labelled in a way search engines understand — gigs as events, bands as music groups, venues as places, FAQ as questions and answers, etc. This makes GigScenes eligible for richer search-result treatments (event carousels, pricing cards, expandable FAQ entries).
  • Site map for search engines refreshes itself hourly — when you publish a new gig, band or venue in the admin, Google + Bing pick it up automatically without anyone needing to redeploy.

⤵ Current page tree

Every route on the site today
/  (Home — What's On)
│
├─ Discovery (header nav)
│  ├─ /calendar — Gig Calendar
│  ├─ /bands — Band directory
│  │   └─ /bands/:slug — Band detail
│  ├─ /venues — Venue directory
│  │   └─ /venues/:slug — Venue detail
│  ├─ /promoters — Promoter directory
│  │   └─ /promoters/:slug — Promoter detail
│  ├─ /genres — Genre gallery
│  │   └─ /genres/:slug — Genre directory + sub-genre filter (e.g. /genres/jazz)
│  ├─ /services — Service categories
│  │   └─ /services/:slug — Service provider detail
│  ├─ /artists — Artist directory  (footer-only)
│  │   └─ /artists/:slug — Artist detail
│  ├─ /labels — Record labels  (footer-only)
│  │   └─ /labels/:slug — Label detail
│  ├─ /media — Press & coverage  (footer-only)
│  │   └─ /media/:slug — Media article detail
│  └─ /gigs/:slug — Gig detail  (linked from gig cards)
│
├─ Marketing / Info
│  ├─ /how-it-works
│  ├─ /faq
│  ├─ /contact
│  ├─ /membership — Join / List your venue / Membership
│  ├─ /sitemap — Internal site map (this page)
│  ├─ /sitemap.xml — XML sitemap for search engines (auto-refreshed hourly)
│  └─ /robots.txt — Crawler rules
│
├─ Auth (signed-out)
│  ├─ /login
│  ├─ /register
│  ├─ /verify-email
│  ├─ /forgot-password
│  └─ /reset-password
│
├─ Dashboards (signed-in, role-routed)
│  ├─ /superfan — Fan dashboard
│  ├─ /edit-profile
│  ├─ /band-dashboard
│  ├─ /venue-dashboard
│  ├─ /promoter-dashboard
│  └─ /service-dashboard
│
├─ Legal
│  ├─ /privacy
│  ├─ /terms
│  ├─ /gdpr
│  └─ /cookies
│
└─ /admin  (Cloudflare Access protected)
   ├─ /admin — Admin dashboard
   ├─ /admin/gigs
   │   ├─ /admin/gigs/new
   │   ├─ /admin/gigs/bulk-import
   │   └─ /admin/gigs/:id — Edit
   ├─ /admin/bands       ├─ /new   └─ /:id
   ├─ /admin/artists     ├─ /new   └─ /:id
   ├─ /admin/venues      ├─ /new   └─ /:id
   ├─ /admin/promoters   ├─ /new   └─ /:id
   ├─ /admin/labels      ├─ /new   └─ /:id
   ├─ /admin/media       ├─ /new   └─ /:id
   ├─ /admin/services    ├─ /new   └─ /:id
   ├─ /admin/fans        ├─ /new   └─ /:id
   ├─ /admin/inbox — Contact / newsletter / membership-interest submissions
   ├─ /admin/ratings — Light moderation
   ├─ /admin/cms — CMS content editor
   ├─ /admin/cms/schema — CMS schema editor (super-admin only)
   └─ /admin/settings

★ What's new — 16 Jun 2026

Fan ratings live + social handles wired
  • Fan ratings — Super Fans who attended a gig can now rate the band (4 dimensions: performance, crowd energy, professionalism, originality) and the venue (7 dimensions: sound, atmosphere, accessibility, staff, pricing, stage view, toilets). Aggregates roll up onto Band and Venue pages as read-only star averages with a total-count chip. Rating is one row per fan / gig / dimension, so revisiting the same gig updates the existing rating rather than stacking duplicates.
    • Surfaces touched: Gig detail page (rate CTA + combined band/venue form), Band detail (aggregate display), Venue detail (aggregate display), Admin → Ratings (new moderation queue at /admin/ratings with filters, hide / unhide, clear report, delete).
    • Prerequisites — sign in as a fan. Use the existing test account email phase1-smoke@example.com / password brand-new-pass-99, or register a new Fan / Super Fan at /register.
    • Test 1 — submit a rating from a gig page:
    • 1) Sign in at /login.
    • 2) Find a past gig — go to / and pick any gig dated June or earlier (most seed gigs are 7 Jun – 22 Jul 2026, so they should all read as past today).
    • 3) Click the gig card → lands on /gigs/<slug>.
    • 4) You should see a panel at the top of the page titled 'Rate this gig' with a yellow Rate this gig button.
    • 5) Click it → an inline form opens with two sections: 'How was [band name]?' — 4 rows (Performance, Crowd energy, Professionalism, Originality), each with 5 white stars; and 'How was [venue name]?' — 7 rows (Sound, Atmosphere, Accessibility, Staff, Pricing, Stage/view, Toilets).
    • 6) Click stars to set scores — they turn gold as you click. Click the same star again to clear it.
    • 7) Tick the 'I attended this gig' checkbox (required).
    • 8) Click 'Submit rating' → form shows 'Thanks — your rating has been saved', then closes.
    • 9) The prompt now reads 'Thanks — you've already rated this gig. Update rating?' — clicking Update rating re-opens the form with your existing stars pre-filled.
    • Test 2 — see the aggregate appear on Band + Venue pages:
    • 10) Navigate to the band you just rated — click any band tile on /bands or use the URL /bands/<slug>.
    • 11) Below the bio you should see a 'Band ratings' panel with a 'Based on 1 rating' counter and each of the 4 dimensions with their star average (e.g. 'Performance · 5.0 ★★★★★', 'Crowd energy · 4.0 ★★★★☆').
    • 12) Navigate to the venue of that gig (/venues/<slug>).
    • 13) Below the hero there's a 'Venue ratings' panel with the 7 dimension averages.
    • Test 3 — admin moderation:
    • 14) Open /admin/ratings (Cloudflare Access PIN if not already authenticated).
    • 15) You should see 11 rows from your submission — 4 band rows + 7 venue rows, each showing target name, dimension, score, when.
    • 16) Filters work: 'All types' dropdown → Band ratings / Venue ratings; search by entity name; 'Reported only' toggle (empty unless you've used the report flow); 'Include hidden' toggle (shows admin-hidden rows).
    • 17) Per-row actions: click the eye icon to hide a row (it stops counting toward the public aggregate), click trash to hard-delete.
    • Test 4 — negative cases:
    • 18) Sign out and visit the same gig page → the prompt changes to 'Sign in or join GigScenes to rate the band and the venue'.
    • 19) Try to submit without ticking 'I attended' → form blocks with the error 'Please confirm you attended this gig'.
    • 20) Try to rate a future gig → the prompt doesn't render at all (it's only shown when event_date has passed).
    • Outstanding (not in this drop): a 'Rate (Band Name)' / 'Rate (Venue Name)' button on the entity pages themselves, a 'gigs to rate' nudge inside /superfan, a public report icon on the aggregate display, and promoter / multi-band ratings — all parked for a later round.
  • Social handles wired across the site — Instagram, Facebook, TikTok, X and YouTube buttons in the SiteFooter (visible on every page) and the Contact page's 'Follow' panel now point at the real GigScenes accounts and open in a new tab. TikTok added (wasn't in the previous icon set).

★ What's new — 4 Jun 2026

Your 3rd June feedback — applied
  • Top menu buttons reordered: What's On, Calendar, Bands, Venues, Promoters, Genres, Services.
  • City picker filters Bands / Venues / Promoters / Services tabs too.
  • 'Free Gigs' card on Scene Snapshot now filters the Local Gig Calendar to free-entry gigs.
  • Date pills show the month (e.g. 'Fri 13 Jun') across all gig cards.
  • Genres rebuilt to 12 (Pop added per follow-up): Alternative, Blues, Classical, Country, EDM, Jazz, Pop, Rap, R&B, Reggae, Rock, World.
  • Genre tile descriptions line up evenly. Genre filter buttons moved into the Local Gig Calendar panel.
  • Services directory on Home reshaped into a single strip of all 9 category buttons.

★ What's new — 2 Jun 2026

Public forms wired, admin polish, IA cleanup, new public surfaces
  • Test data seed of ~158 records across London + Manchester.
  • Public Contact / Newsletter / Membership-interest forms wired end-to-end; submissions land in admin Inbox.
  • Admin Inbox built — unified the three public form kinds with tabs, unread badges, archive / reply.
  • Home page Snapshot counts, ListLinks across tabs, and Genre tile counts wired to live admin data.
  • Admin Dashboard + Settings replaced 'Coming soon' stubs with live D1-backed widgets.
  • Per-row Archive / Unarchive on every admin entity list; client-side column sort everywhere.
  • Services IA aligned — admin service_type collapsed from 13 fine-grained values to the public 9 categories.
  • Two new public profile pages (Service provider, Press coverage) + three new list pages (Artists, Labels, Press).

★ What's new — 30 May 2026

Foundation — admin portal, cross-link graph, auth boundary
  • 9 admin entity sections — Gigs, Bands, Artists, Venues, Promoters, Labels, Media, Services, Fans — each with full create/edit/list.
  • Cloudflare Access auth gating /admin and /api at the edge.
  • 6 public profile-page types with cross-linked associations.
  • AI gig import — paste any event-page URL and the form auto-fills via Firecrawl + OpenRouter / Claude.
  • City dropdown with localStorage persistence + mobile hamburger menu.
  • Drag-and-drop image upload to R2 across every entity form.

Public website

Marketing surface at /, with everything reachable from the site header.

Public profile pages

Detail pages with cross-linked associations. Click any card on the public site (gig card, band card, venue card etc.) to drill in. Every string-name association on these pages becomes a clickable link to that entity's own detail page.

Admin portal

Cloudflare Access gated — accessible only to Rupert + Girish via email PIN. Two-zone visual design: dark sidebar/header matches the public chrome, light content area for dense data work. Every form supports drag-and-drop image upload to R2.

Account & onboarding

Real fan authentication. Email + password on D1 + Postmark for transactional email. Sessions via HTTP-only signed JWT cookies (30-day expiry). Email verification + password reset flows are live.

Information & legal

Dev / reference